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

в 4:11, , рубрики: Debian, linux, squeeze, tutorial, Wheezy, xenserver, виртуализация, метки: , , , ,

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

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

Автор: The_KOPACb

Источник

Поделиться

* - обязательные к заполнению поля