Обновление Debian · 5 min read · Dec 05, 2025

Как обновить Debian Lenny (Debian 5.0) до Squeeze (Debian 6.0) на Xen VPS

Как обновить Debian Lenny (Debian 5.0) до Squeeze (Debian 6.0) на Xen VPS

Этот учебник показывает, как обновить установку Debian Lenny (Debian 5.0) на виртуальном частном сервере (VPS) на базе Xen до Squeeze (Debian 6.0), включая обновление ядра, последовательность загрузки на основе зависимостей и преобразование в UUID.

Если вы сделаете это обычным способом Debian с помощью apt-get dist-upgrade, вы, скорее всего, получите неработающую систему. Это в основном связано с тем, что обновление grub не удается.

Ограничение: Вы не сможете обновить grub. Вам придется остаться с вашей старой версией grub; этот учебник показывает, как это сделать. Если кто-то нашел решение этой проблемы, пожалуйста, оставьте комментарий. Однако комментарии и критика всегда приветствуются!

Отказ от ответственности: Даже если все шаги в этом руководстве были тщательно протестированы, я не даю никаких гарантий, что это сработает для вас! Делайте это на свой страх и риск. Не пытайтесь делать это в рабочей среде, не пытайтесь делать это, если у вас нет доступа к последовательной консоли, чтобы вы могли отменить шаги, и заранее создайте резервную копию ваших данных или сделайте снимок! Вы можете получить неработающую систему!

0 Некоторые дополнительные шаги

Следующие шаги не обязательны для обновления до Squeeze, но могут быть полезны для некоторых из вас.

0.1 Добавление файла подкачки (по желанию)

Для тех, кто использует VPS с очень небольшим объемом ОЗУ и пространства подкачки (<512 МБ), как я, может быть приятно или даже необходимо увеличить пространство подкачки.

Следующие команды создадут файл подкачки размером 2 ГБ с именем swapfile в корневом каталоге, отформатируют его и активируют:

dd if=/dev/zero of=/swapfile bs=1024 count=2097152 && mkswap /swapfile && swapon /swapfile

Это добавляет строку в ваш /etc/fstab для автоматической активации файла подкачки во время загрузки:

echo “/swapfile none swap sw 0 0” >> /etc/fstab

0.2 Сделать цветной приглашение оболочки (по желанию)

Эта команда добавляет запись в ваш /root/.bashrc, которая даст вам цветное приглашение, например root@host: /etc # после вашего следующего входа:

echo "PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '" >>/root/.bashrc

1 Обновление системы до Debian Squeeze (Debian 6.0)

Пожалуйста, убедитесь, что вы внимательно следуете всем шагам. Не делайте ничего другого, пока не завершите это руководство до конца. Особенно, не перезагружайте до тех пор, пока не закончите!

1.1 Обновление sources.list

Используйте следующие записи в вашем /etc/apt/sources.list:

vi /etc/apt/sources.list

Вы должны заменить us на зеркало, близкое к вам. Вы можете включить дополнительные источники для ваших нужд после этих строк.

#squeeze
deb http://ftp.us.debian.org/debian/ squeeze main contrib non-free
deb-src http://ftp.us.debian.org/debian/ squeeze main contrib non-free
# зеркала замены для источников volatile

deb     http://mirrors.kernel.org/debian squeeze-updates main contrib
deb-src http://mirrors.kernel.org/debian squeeze-updates main contrib
#security-squeeze
deb http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free

Запустите

apt-get update

1.2 Установить / обновить / настроить локали

Мы делаем этот шаг заранее, чтобы избавиться от раздражающих сообщений об ошибках, таких как “не удается установить локаль”; убедитесь, что $LC_* и $LANG правильные во время установки:

apt-get install locales

Сервисы для перезапуска после обновления библиотеки GNU libc: […]
<Ок>

dpkg-reconfigure locales

Выберите локаль(и), подходящую для вашего использования, в этом примере это en_DK.UTF-8:

Локали, которые будут сгенерированы: […]
[*] en_DK.UTF-8
[…]

Установите локаль по умолчанию:

Локаль по умолчанию для системной среды: en_DK.UTF-8

1.3 Предотвращение автоматического обновления grub

Следующие команды настроят apt так, чтобы не обновлять grub, grub-common и grub-pc (если установлен):

echo "grub hold" | dpkg --set-selections && echo "grub-common hold" | dpkg --set-selections && echo "grub-pc hold" | dpkg --set-selections

1.4 Запуск dist-upgrade

Теперь мы готовы загрузить и установить фактическое обновление. В зависимости от вашего последнего обновления, будет довольно много для загрузки и установки. Вам будут заданы несколько важных вопросов во время установки, пожалуйста, внимательно читайте все. Запустите:

apt-get dist-upgrade

Просто убедитесь, что все из шага 1.3 работает правильно, проверив наличие этих строк:

Расчет обновления… Готово
Следующие пакеты будут УДАЛЕНЫ:
[…]
Следующие НОВЫЕ пакеты будут установлены:
[…]
Следующие пакеты были удержаны:
grub grub-common
Следующие пакеты будут обновлены:
[…]
Вы хотите продолжить [Y/n]? Y

Используйте dash или нет, как вам удобно, это не влияет на процесс обновления:

Использовать dash в качестве оболочки по умолчанию системы (/bin/sh)?
<Да>

Сервисы для перезапуска после обновления библиотеки PAM: […]
<Ок>

Перейти на последовательность загрузки на основе зависимостей:

Перейти с устаревшей последовательности загрузки на последовательность на основе зависимостей?
<Да>

Использовать UUID вместо имен устройств:

Обновить идентификаторы дисковых устройств в системной конфигурации?
<Да>

Применить изменения конфигурации к идентификаторам дисковых устройств?
<Да>

1.5 Редактирование /etc/fstab

vi /etc/fstab

Закомментируйте /dev/pts и /dev/shm в /etc/fstab, иначе система не сможет загрузиться:

[...]
# none             /dev/pts      devpts   gid=5,mode=620 0 0
# none             /dev/shm      tmpfs    defaults       0 0
[...]

1.6 Настройка grub

Наконец, нам нужно настроить grub для использования UUID вместо имен устройств.

cat /etc/fstab

Найдите и скопируйте UUID вашего / раздела. Важно: Скопируйте UUID из вашего fstab, а не из этого примера:

[...]
# /dev/sda1        /             ext3     defaults       1 1
UUID=your-uuid-here        /             ext3     defaults       1 1
[...]

Создайте резервную копию текущего menu.lst:

mv /boot/grub/menu.lst /boot/grub/menu.lst.backup

Пересоздайте menu.lst:

update-grub

Редактируйте /boot/grub/menu.lst:

vi /boot/grub/menu.lst

Замените все вхождения root=/dev/… на root=UUID=…, используя строку UUID, которую вы скопировали из вашего /etc/fstab ранее:

[...]
## ## Конец параметров по умолчанию ##
title       Debian GNU/Linux, kernel 2.6.32-5-xen-amd64
root        (hd0)
kernel      /boot/vmlinuz-2.6.32-5-xen-amd64 root=UUID=your-uuid-here ro 
initrd      /boot/initrd.img-2.6.32-5-xen-amd64
title       Debian GNU/Linux, kernel 2.6.32-5-xen-amd64 (однопользовательский режим)
root        (hd0)
kernel      /boot/vmlinuz-2.6.32-5-xen-amd64 root=UUID=your-uuid-here ro single
initrd      /boot/initrd.img-2.6.32-5-xen-amd64
[...]

Дважды проверьте, что вы включили слово UUID=, за которым следует номер, а не просто UUID сам по себе!

1.7 Очистка (по желанию)

Вы можете удалить автоматически установленные и больше не требуемые пакеты, если вы уверены, что они вам больше не нужны:

apt-get autoremove

2 Перезагрузка в вашу новую систему

Если вы уверены, что внимательно следовали всем шагам выше и не получили никаких сообщений об ошибках, теперь пришло время перезагрузиться в вашу новую систему. Еще раз: я не даю никаких гарантий, что ваша система загрузится, но желаю вам удачи! ;-) Если все остальное не сработает, вам нужно будет получить доступ к эмуляции последовательной консоли вашего VPS и отменить шаги, если вы знаете, что делаете, или восстановить вашу резервную копию или снимок!

reboot

Удачи с Debian 6.0 Squeeze! Комментарии и критика приветствуются!

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.