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

Гость CentOS 6 Xen не загружается после 'yum update'. Ядро?

У меня возникла проблема с тем, что гость Xen не загружается после обновления yum.

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

#kernel     = '/boot/solus-vmlinuz'
#ramdisk    = '/boot/solus-initrd.img'
bootloader = '/usr/bin/pygrub'
extra      = ''
memory     = 128
hostname   = 'test.mydomain.com'
cpu_weight = 256
name       = 'vm111'
vif        = ['ip=192.168.0.34, vifname=vifvm111.0, mac=00:16:3e:05:8a:8a, rate=1280KB/s']
vnc        = 0
vcpus      = 1
vncviewer  = 0
serial     = 'pty'
disk       = ['phy:/dev/vg0/vm111_img,xvda1,w', 'phy:/dev/vg0/vm111_swap,xvda2,w']
#root       = '/dev/xvda1 ro'

Гостевая ОС CentOS 6.4 x86_64 отлично загружается с ядром 2.6.32-358.0.1.el6.x86_64.

Однако после;

#yum update

Dependencies Resolved

================================================================================
 Package Arch Version Repository
                                                                           Size
================================================================================
Installing:
 kernel x86_64 2.6.32-358.2.1.el6 updates 26 M
Updating:
 initscripts x86_64 9.03.38-1.el6.centos.1 updates 937 k
 kernel-firmware noarch 2.6.32-358.2.1.el6 updates 11 M
 krb5-libs x86_64 1.10.3-10.el6_4.1 updates 760 k
 selinux-policy noarch 3.7.19-195.el6_4.3 updates 1.8 M
 selinux-policy-targeted noarch 3.7.19-195.el6_4.3 updates 2.8 M
 tzdata noarch 2013b-1.el6 updates 457 k

Transaction Summary
================================================================================
Install 1 Package(s)
Upgrade 6 Package(s)

Total download size: 44 M
#Is this ok [y/N]:y

# cat /boot/grub/grub.conf
default=0
timeout=5
title CentOS (2.6.32-358.2.1.el6.x86_64)
  root (hd0,0)
  kernel /boot/vmlinuz-2.6.32-358.2.1.el6.x86_64 console=hvc0 xencons=tty0 root=/dev/xvda1 ro crashkernel=auto
  initrd /boot/initramfs-2.6.32-358.2.1.el6.x86_64.img
title vmlinuz-2.6.32-358.0.1.el6.x86_64
  root (hd0,0)
  kernel /boot/vmlinuz-2.6.32-358.0.1.el6.x86_64 console=hvc0 xencons=tty0 root=/dev/xvda1 ro
  initrd /boot/initramfs-2.6.32-358.0.1.el6.x86_64.img

Гость Xen не может перезагрузиться. Ниже приведен (частичный) вывод последовательной консоли процесса загрузки:

dracut: dracut-004-303.el6
udev: starting version 147
dracut: Starting plymouth daemon
dracut Warning: No root device "block:/dev/xvda1" found

dracut Warning: Boot has failed. To debug this issue add "rdshell" to the kernel command line.


dracut Warning: Signal caught!

dracut Warning: Boot has failed. To debug this issue add "rdshell" to the kernel command line.
Kernel panic - not syncing: Attempted to kill init!
Pid: 1, comm: init Not tainted 2.6.32-358.2.1.el6.x86_64 0000001
Call Trace:
 [<ffffffff8150d248>] ? panic+0xa7/0x16f
 [<ffffffff81073ae2>] ? do_exit+0x862/0x870
 [<ffffffff81182965>] ? fput+0x25/0x30
 [<ffffffff81073b48>] ? do_group_exit+0x58/0xd0
 [<ffffffff81073bd7>] ? sys_exit_group+0x17/0x20
 [<ffffffff8100b072>] ? system_call_fastpath+0x16/0x1b

Это проблема с обновленным ядром, или мой DomU настроен неправильно?

если ваш domU не находит корневое устройство, попробуйте таким образом

mkinitrd -f -v --preload xenblk /boot/initramfswithxenblk.img $(uname -r)

в вашем гостевом файле конфигурации

kernel = path of your kernel
ramdisk = /boot/initramfswithxenblk.img

Проверить содержимое /etc/modprobe.conf, у вас должно быть:

alias scsi_hostadapter xenblk
alias eth0 xennet 

Вероятно, причиной может быть отсутствие модуля depmod во время обновления ядра. Загрузитесь на старом ядре и попробуйте следующее:

yum upgrade module-init-tools
depmod -ae -F /boot/System.map-2.6.32-358.2.1.el6 2.6.32-358.2.1.el6
dracut --force '' 2.6.32-358.2.1.el6