Обновляем Debian Lenny 5.0 до Squeeze 6.0.
Мой первейший совет - по возможности сделайте полную резервную копию системы. Если это виртуальная машина - скопируйте файл виртуального жесткого диска куда-нибудь перед началом обновления. Потратьте это время для того, чтобы в будущем избежать полной переустановки в случае неудачи. Здесь речь идет даже не о неудачи обновления, а о неудаче, связанной с несовместимостью некоторых пакетов с Вашим контентом сервера (например, у меня такое произошло, когда оказалось, что несколько сайтов наших веб-мастеров не соответствуют требованиям PHP 5.3 и пришлось резко откатываться назад на Lennny с PHP 5.2.17 - чтобы дать возможность эти сайты перевести в нормальный вид).
В этой статье, в конце, присутствуют заметки на тему "а если у меня это домен-ноль для гипервизора Xen - как мне обновлять". Смысл всего - обновляете систему как обычно, а после этого выполняете эти заметки.
Итак, начнем.
Подготовка1) Проверьте, что у Вас с пакетами все хорошо и всем пакетам разрешено обновляться:
# dpkg --audit
2) Фиксированные пакеты
Debian рекомендуют снять фиксацию со всех фиксированных пакетов (т.е. с пакетов, которым обновляться запретили Вы сами по причине нежелательности этих обновлений). Следовать или нет этим инструкциям - Ваше дело, Вы лучше знаете причину, по которой когда-то заморозили версию того или иного пакета (да того-же PHP на версии 5.2, например, из-за косяков с сайтами, не работающими с 5.3).
Посмотреть фиксированные пакеты можно двумя командами (одна для aptitude, другая - для apt-get, они НЕ взаимозаменяемы - пакет может быть заморожен в aptitude и не заморожен в apt-get, и наоборот, поэтому выполнить надо обе):
# aptitude search "~ahold"
# dpkg --get-selections | grep hold
3) Обновляем все что есть перед апгрейдом системы
# aptitude update
# aptitude -f install
Обновляем Lenny --> Squeeze4) В файле /etc/apt/sources.list все слова 'lenny' меняем на слова 'squeeze'.
5) Обновляем список репов
# aptitude update
6) Обновляем пакеты dpkg, aptitude и apt
# aptitude install apt dpkg aptitude
В процессе обновления система несколько раз задаст вопросы вида "у меня тут несоответствие, решением является обновление того-то и удаление версий пакетов таких-то". Соглашаемся.
Если система начинает нас донимать вопросами "Конфигурационный файл такой-то имеет более новую версию, чем у Вас, но Ваш файл был изменен... че делаем" - предлагается несколько вариантов. Смысл в том, что системе нужно от нас ответ - заменить наш конфиг более новым, но С ПОТЕРЕЙ всех наших изменений в старом, либо же оставить старый, который, возможно, не будет совместим с новой версией пакета. Тут решать исключительно Вам. Если старый конфиг Вам дороже - жмем на N или просто Enter (ответ "нет" стоит по-умолчанию), если же Вы готовы заново настроить указанные конфиг - жмем Y.
7) Обновляем систему
# aptitude full-upgrade
Во время обновления система Вас спросит - ставить ли командный интерпретатор dash (sh) в приоритет (т.е. пользовать ли его вместо bash). Выбирайте как Вам удобнее (если не уверены - жмите Да, да и все).
Далее последует вопрос - устанавливать ли новый grub (grub 2) вместо старого? Если не уверены - отвечайте "Нет" - в дальнейшем его можно будет обновить из командной строки:
# upgrade-from-grub-legacy
Если Вы используете Xen - я все-таки рекомендую обновить grub - сборка Xen 4.0.1-2 проверялась на последней версии загрузчика, а не старой.
Далее Вас спросят про перезапуск служб, работающих с NSS (и приведут редактируемый список этих служб). Отвечайте "Да", иначе некоторые службы могут "повеситься" из-за смены реквизитов доступа. То же самое касается служб, перезапускаемых из-за работы этих сервисов с PAM.
На вопрос "Перевести ли процесс запуска на процесс, основанный на зависимостях" отвечаем "Да".
Начнет спрашивать про различия в версиях конфигурационных файлов - тут я уже писал выше как поступать (н Ваше усмотрение, я везде оставлял старые конфиги - в моих конфигурациях все работало).
8) Оно закончило работу
После обновления возможны 2 варианта:
а) Все прошло успешно, инсталлер обновил ядро до версии 2.6.32-5 (2.6.32-5-xen если у Вас машина паравиртуализирована или является доменом-0).
б) Исталлер закончил работу, но ядро оставил старым.
В случае (б) продолжаем (оно на самом деле ничего еще не закончило и дебиан у нас все еще ленни).
Ставим ядро ручками
# aptitude install linux-image-2.6.32-5-amd64
Здесь есть вариации:
linux-image-2.6.32-5-686 если у Вас 32-битная система
linux-image-2.6.32-5-xen-686 если у Вас 32-битная Xen-система
linux-image-2.6.32-5-xen-amd64 если у Вас 64-битная Xen-система
Запускаем процесс обновления еще раз:
# aptitude full-upgrade
Со второй стадии оно доставит все, что не доставило.
ЗЫ. Вариант (б) у меня случился 1 раз, обычно все прекрасно уже в варианте (а).
9) Окончание
Если у Вас это система на "голом железе" или HVM - перезагружаемся:
# reboot
Если у Вас это паравиртуальная система Xen или даже домен-0 - продолжаем (НЕ перезагружайтесь!)
А у нас Xen10) А мы с Xen'ом
Если это не домен-0, а гостевая система и загрузка происходит не с PyGRUB (и не с PV-GRUB) - то Вам нужно скопировать новое ядро в домен 0 и подставить вместо старого.
Если же это домен-0 - обязательно проверьте, что Xen будет загружен при запуске системы. Смертельного не случится, если не загрузится - просто Вы не сможете запустить виртуальные машины, т.ч. все равно лезть в GRUB придется.
Итак, у нас это домен-0 Xen. Идем в /etc/grub.d (загрузчик то обновляли, я надеюсь, до 2й версии) и глядим - что нам пишет ls:
# cd /etc/grub.d
# ls
00_header 10_linux 30_os-prober 41_custom
05_debian_theme 20_linux_xen 40_custom README
Если все так, как в примере - т.е. модуль "linux_xen" имеет приоритет выше, чем "linux" - то нам придется еще поработать (а так оно и будет, скорее всего). При таком раскладе - Xen в меню выбора загрузки операционной системы будет ниже, чем предложение по-умолчанию простого Linux. И загрузится просто Linux.
Но нам то надо, чтобы грузился по-умолчанию Xen. Правим это недоразумение:
# mv 20_linux_xen 09_linux_xen
# grub-mkconfig --output=/boot/grub/grub.cfg
Теперь у нас загрузится Xen.
Ну, в общем-то, все. Еще хотелось бы посоветовать в случае с обновлением Dom0 - находится все-же где-то рядом с физической консолью сервера - процедура тонкая и хуже будет, если где-то какая-то тонкость с Xen не пройдет и Вам все равно придется выезжать на место.
Ответы на вопросы для самопроверки пишите в комментариях,
мы проверим, или же задавайте свой вопрос по данной теме.
Комментарии
Оставить комментарий
Операционная система LINUX
Термины: Операционная система LINUX