Как стать автором
Обновить

Обновляем Squeeze до Wheezy под XenServer 6.2

Время на прочтение5 мин
Количество просмотров8.2K
Всем привет, под катом приведен мой путь обновления со Squeeze до Wheezy.
Надеюсь, вам понравится в моем обществе.

C начала на нашем Squeeze дообавим репозитарии Wheezy:

~# nano /etc/apt/sources.list


в /etc/apt/sources.list мы должны увидеть нечто похожее:

# deb http://mirror.yandex.ru/debian/ squeeze main
#squeeze
deb http://mirror.yandex.ru/debian/ squeeze main
deb-src http://mirror.yandex.ru/debian/ squeeze main
deb http://security.debian.org/ squeeze/updates main
deb-src http://security.debian.org/ squeeze/updates main
# squeeze-updates, previously known as 'volatile'
deb http://mirror.yandex.ru/debian/ squeeze-updates main
deb-src http://mirror.yandex.ru/debian/ squeeze-updates main
deb http://backports.debian.org/debian-backports/ squeeze-backports main
 
#wheezy
deb http://mirror.yandex.ru/debian wheezy main
deb-src http://mirror.yandex.ru/debian wheezy main
deb http://mirror.yandex.ru/debian wheezy-updates main
deb-src http://mirror.yandex.ru/debian wheezy-updates main
deb http://security.debian.org/ wheezy/updates main
deb-src http://security.debian.org/ wheezy/updates main
deb http://ftp.debian.org/debian/ wheezy-backports main


далее нам необходимо обновить список пакетов

~# apt-get update


И теперь можно апгрейдится. Вообще-то говоря это неверно, стоило бы сделать по другому, но я делал так. Сначала стоило бы сделать apt-get update — apt-get upgrade, без добавления репов wheezy, и только после того как всё обновится до последней версии squeeze обновляться до следующего дистра. Но я не искал легких путей, и запилил всё сразу, да и к тому же реверт к снапшоту занимает пару секунд, а это развращает. Правда, всё же жалко времени на саму операцию, но всё не так плохо.

~# apt-get dist-upgrade


Тут будет много-много пакетов, и это достаточно долго. Тем временем видим в логе:

........
Replacing config file /etc/default/grub with new version
Installation finished. No error reported.
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.2.0-4-686-pae
Found initrd image: /boot/initrd.img-3.2.0-4-686-pae
Found linux image: /boot/vmlinuz-2.6.32-5-686-bigmem
Found initrd image: /boot/initrd.img-2.6.32-5-686-bigmem
done
........


Так, идем дальше. В процессе настройки вас будут спрашивать об изменившихся конфигах. Я обычно выбираю вариант Z, делаю копию .bak, и устанавливаю новый конфиг, а затем ручками мержу старый и новый. Естественно этим надо страдать только в случае, если в конфиге есть ваши изменения.
И наконец процесс заканчивается.

Running mktexlsr. This may take some time... done.


Ну что-ж, время перезагрузить машинку.

~# shutdown -r now
Broadcast message from support@obelisk (pts/1) (Tue Oct 15 05:53:44 2013):
The system is going down for reboot NOW!


А тут на нас поджидает тоска-печаль:

Oct 15, 2013 6:36:54 AM Error: Starting VM 'obelisk' - The bootloader for this VM returned an error -- did the VM installation succeed?  Unable to find partition containing kernel


Xenserver рапортует о том, что всё сломалось… Виной всему Grub, он обновился на вторую версию и, соответственно, поменял свой конфиг, как обычно, не лучшим образом.
Ну что поделать-то, будем лечить. Лечить будем командой xe-edit-bootloader. Подключаемся к нашему XenServer, и начинаем колдовать.
Для начала нам необходимо узнать UUID нашей машинки:

[root@madoka ~]# xe vm-list name-label=obelisk
uuid ( RO)           : ab1b73d5-7ac1-7334-ace2-5f944672d5f5
     name-label ( RW): obelisk
    power-state ( RO): halted


Далее начинаем угадывать номер раздела, в котором установлен наш грубый загрузчик:

[root@madoka ~]# xe-edit-bootloader -u ab1b73d5-7ac1-7334-ace2-5f944672d5f5 -p 0
Creating dom0 VBD: 985b9cde-76be-4e87-a455-0b3c526e0982
Plugging VBD:
add map 118425d6-c09d-4f60-8d1e-8478ae1e7803<b>p1</b> (252:46): 0 15986688 linear /dev/sm/backend/ccf550d5-fbc8-d8ec-ce5e-013de789ec9a/118425d6-c09d-4f60-8d1e-8478ae1e7803 2048
add map 118425d6-c09d-4f60-8d1e-8478ae1e7803<b>p2</b> (252:47): 0 2 linear /dev/sm/backend/ccf550d5-fbc8-d8ec-ce5e-013de789ec9a/118425d6-c09d-4f60-8d1e-8478ae1e7803 15990782
add map 118425d6-c09d-4f60-8d1e-8478ae1e7803<b>p5</b> (252:48): 0 784384 linear /dev/sm/backend/ccf550d5-fbc8-d8ec-ce5e-013de789ec9a/118425d6-c09d-4f60-8d1e-8478ae1e7803 15990784
Waiting for /dev/mapper/118425d6-c09d-4f60-8d1e-8478ae1e7803p0: .....Device /dev/mapper/118425d6-c09d-4f60-8d1e-8478ae1e7803p0 not found.
You must specify the correct partition number with -p
Unplugging VBD: . done


Жирным помечены номера разделов, которые есть на диске. Дальше наша задача упрощается.

[root@madoka ~]# xe-edit-bootloader -u ab1b73d5-7ac1-7334-ace2-5f944672d5f5 -p 1
Creating dom0 VBD: 99c695fa-62b5-f2e5-f534-12ee8f3750f7
Plugging VBD:
add map 118425d6-c09d-4f60-8d1e-8478ae1e7803p1 (252:46): 0 15986688 linear /dev/sm/backend/ccf550d5-fbc8-d8ec-ce5e-013de789ec9a/118425d6-c09d-4f60-8d1e-8478ae1e7803 2048
add map 118425d6-c09d-4f60-8d1e-8478ae1e7803p2 (252:47): 0 2 linear /dev/sm/backend/ccf550d5-fbc8-d8ec-ce5e-013de789ec9a/118425d6-c09d-4f60-8d1e-8478ae1e7803 15990782
add map 118425d6-c09d-4f60-8d1e-8478ae1e7803p5 (252:48): 0 784384 linear /dev/sm/backend/ccf550d5-fbc8-d8ec-ce5e-013de789ec9a/118425d6-c09d-4f60-8d1e-8478ae1e7803 15990784
Waiting for /dev/mapper/118425d6-c09d-4f60-8d1e-8478ae1e7803p1: . done
Mounting filesystem:  done


Тут откроется текстовый редактор ( по умолчанию nano, но его можно изменить на любой, по вашему выбору через переменную EDITOR ), в котором будет конфиг Grub. Его-то мы и будем фиксить. Немного поэксперементировав я понял что в новом конфиге вместо hd* у нас стоит /dev/xvda. ( например: set root='(/dev/xvda,msdos1)', в то время как должно бы быть set root='(hd1,msdos1)' ). Соответственно тут же и сделаем серч-анд-дестройреплэйс (в nano это контрол + /). Будем заменять /dev/xvda ( /dev/xvda*, если у вас /dev/xvda1 например, или что у вас там нашлось ) на hd0 ( в моём случае это было hd1, т.к. у меня в системе было два винта изначально, один я удалил ). Вуаля! всё работает.

Если ты был терпелив, и сначала хотя-бы пробежал глазами статью, то ты увидишь то, что я напишу здесь, и вероятно не наступишь на мои грабли:

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


не позволит Дебиану обновить пакеты Grub, и у тебя, дорогой читатель, не возникнет необходимости решать проблему, т.к. она не возникнет…

Кстати, с изменениями загрузчика другой машинки у меня возникли проблемы:

[root@madoka ~]# xe-edit-bootloader -u 797840f1-8c18-d202-6b5f-1b834a33128a -p1
Creating dom0 VBD: 6d115a71-c22d-4e4f-23ae-9e223272c701
Plugging VBD:
add map fa3c691b-dc18-4d8b-b54b-d81e4f5dc1ee<b>1</b> (252:20): 0 15986688 linear /dev/sm/backend/ccf550d5-fbc8-d8ec-ce5e-013de789ec9a/fa3c691b-dc18-4d8b-b54b-d81e4f5dc1ee 2048
add map fa3c691b-dc18-4d8b-b54b-d81e4f5dc1ee<b>2</b> (252:21): 0 2 linear /dev/sm/backend/ccf550d5-fbc8-d8ec-ce5e-013de789ec9a/fa3c691b-dc18-4d8b-b54b-d81e4f5dc1ee 15990782
add map fa3c691b-dc18-4d8b-b54b-d81e4f5dc1ee<b>5</b> (252:22): 0 784384 linear /dev/sm/backend/ccf550d5-fbc8-d8ec-ce5e-013de789ec9a/fa3c691b-dc18-4d8b-b54b-d81e4f5dc1ee 15990784
Waiting for /dev/mapper/fa3c691b-dc18-4d8b-b54b-d81e4f5dc1eep1: .....Device /dev/mapper/fa3c691b-dc18-4d8b-b54b-d81e4f5dc1eep1 not found.
You must specify the correct partition number with -p
Unplugging VBD: . done


Тут, почему-то, разделы помечаются не как p* в добавок к uuid нашего хранилища, а просто как цифра. Мне не удалось отредактировать загрузчик в этих разделах, я ищу решение этой проблемы.

Удачи в эксеприментах!
И если кого-то задел фамильярностью — прошу меня извинить.
Правки — в личку, обсуждения/осуждения — в каменты. Исправить могу не сразу, но если грамматика не повлечет за собой ничьей казни, то технические ошибки могут повлечь.
Теги:
Хабы:
Всего голосов 4: ↑2 и ↓20
Комментарии7

Публикации

Работа

DevOps инженер
30 вакансий

Ближайшие события