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

от автора

Всем привет, под катом приведен мой путь обновления со 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 нашего хранилища, а просто как цифра. Мне не удалось отредактировать загрузчик в этих разделах, я ищу решение этой проблемы.

Удачи в эксеприментах!
И если кого-то задел фамильярностью — прошу меня извинить.

ссылка на оригинал статьи http://habrahabr.ru/post/197552/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *