Назад | Перейти на главную страницу

Загрузка более старого ядра в Xen DomU при использовании pvgrub в Dom0

У меня проблемы с последним обновлением ядра в Debian Jessie DomU, и я хочу загрузить его с использованием предыдущего ядра.

Dom0 также работает под управлением Debian Jessie и загружает DomU через PvGrub. Я использую настройку, описанную в Вики Debian для PvGrub, с grub.cfg DomU, созданным в каталоге скелета Dom0.

Эта установка отлично работает при загрузке с самым последним установленным ядром в DomU, но, похоже, не дает возможности выбрать для загрузки более старое установленное ядро, и я еще не нашел какой-либо документации по этой теме.

Итак, при такой настройке, каков рекомендуемый способ загрузки с более старым установленным ядром на DomU?

Конфигурация ядра DomU на Dom0:

kernel          = '/usr/lib/grub-xen/grub-x86_64-xen.bin'
extra           = '(hd1)/boot/grub/grub.cfg'
root            = ''

grub.cfg на DomU:

root='(xen/xvda2)'
insmod xzio
insmod gzio
insmod btrfs
insmod ext4
linux /vmlinuz root=/dev/xvda2 ro
initrd /initrd.img
boot

Не уверен в новых выпусках, но работает xen-create-image из Debian Jessie Dom0 не устанавливает общие пакеты grub на DomU, и, насколько я могу судить, скелет /boot/grub/grub.cfg перечисленные в вопросе просто не предлагают возможности выбрать другое ядро ​​при загрузке.

В конце концов я решил это, выполнив на DomU следующие действия:

  1. mv /boot/grub /boot/grub.orig
  2. apt-get install grub-pc
  3. Установите grub-install для автоматического запуска на загрузочном диске

Затем я выключил DomU, загрузил его с подключенной консоли от Dom0 и выбрал нужное ядро.

Обычно файл grub.cfg создается во время установки системы, и его не нужно создавать вручную. По крайней мере, на моих виртуальных машинах debian buster он работает из коробки.

Grub использует структуру, называемую menuentry, для группировки записей в несколько конфигураций загрузки. Благодаря этому у вас может быть несколько записей с разными ядрами. Например, мой debian buster vm использует следующую конфигурацию ядра:

linux /boot/vmlinuz-4.19.0-6-amd64
initrd /boot/initrd.img-4.19.0-6-amd64

Номера версий должны соответствовать установленному у вас ядру. Если вы удалили предыдущее ядро, попробуйте установить его с помощью диспетчера пакетов.