I used yum to update from kernel 2.6.32-220 to 2.6.32-200.23.1 on my CentOS 6 x64 system. I now receive the following message on the console at boot:
mknod: '/dev/null' : File exists
mknod: '/dev/console: File exists
/init: 102: cannot open /proc/cmdline: No such file
mkdir: cannot create directory '/dev/pts': File exists
dracut: FATAL: No or empty root= argument
dracut: Refusing to continue
Kernel panic - not syncing: Attempted to kill init!
Selecting the older kernel version at boot allows me to boot normally. This problem is reproducible across all four of the VMs I've tried the upgrade on. They're all CentOS 6.2 x64 guests on the same CentOS 6.2 x64 host. The filesystem for each VM lives on a iSCSI SAN volume. Here is the VM's /etc/grub.conf
file:
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-220.23.1.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-220.23.1.el6.x86_64 ro root=/dev/mapper/vg_main-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_main/lv_swap rd_NO_MD quiet SYSFONT=latarcyrhe
b-sun16 rhgb crashkernel=auto rd_LVM_LV=vg_main/lv_root rhgb crashkernel=auto quiet KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM
initrd /initramfs-2.6.32-220.23.1.el6.x86_64.img
title CentOS (2.6.32-220.7.1.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-220.7.1.el6.x86_64 ro root=/dev/mapper/vg_main-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_main/lv_swap rd_NO_MD quiet SYSFONT=latarcyrheb
-sun16 rhgb crashkernel=auto rd_LVM_LV=vg_main/lv_root rhgb crashkernel=auto quiet KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM
initrd /initramfs-2.6.32-220.7.1.el6.x86_64.img
title CentOS (2.6.32-220.4.2.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-220.4.2.el6.x86_64 ro root=/dev/mapper/vg_main-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_main/lv_swap rd_NO_MD quiet SYSFONT=latarcyrheb
-sun16 rhgb crashkernel=auto rd_LVM_LV=vg_main/lv_root rhgb crashkernel=auto quiet KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM
initrd /initramfs-2.6.32-220.4.2.el6.x86_64.img
title CentOS (2.6.32-220.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-220.el6.x86_64 ro root=/dev/mapper/vg_main-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_main/lv_swap rd_NO_MD quiet SYSFONT=latarcyrheb-sun
16 rhgb crashkernel=auto rd_LVM_LV=vg_main/lv_root rhgb crashkernel=auto quiet KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM
initrd /initramfs-2.6.32-220.el6.x86_64.img
And here is the VM configuration file on the host:
<domain type='kvm' id='117'>
<name>test1</name>
<uuid>6b783832-bb85-6a8e-2dad-5898d3c87259</uuid>
<memory>1048576</memory>
<currentMemory>1048576</currentMemory>
<vcpu>1</vcpu>
<os>
<type arch='x86_64' machine='rhel6.2.0'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='none' io='native'/>
<source dev='/dev/disk/by-path/ip-192.168.200.1:3260-iscsi-iqn.2012-02.net.mydomain.storage1:test1-lun-1'/>
<target dev='vda' bus='virtio'/>
<alias name='virtio-disk0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</disk>
<interface type='bridge'>
<mac address='52:54:00:5b:71:43'/>
<source bridge='br0'/>
<target dev='vnet5'/>
<model type='virtio'/>
<alias name='net0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<serial type='pty'>
<source path='/dev/pts/6'/>
<target port='0'/>
<alias name='serial0'/>
</serial>
<console type='pty' tty='/dev/pts/6'>
<source path='/dev/pts/6'/>
<target type='serial' port='0'/>
<alias name='serial0'/>
</console>
<input type='tablet' bus='usb'>
<alias name='input0'/>
</input>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='5905' autoport='yes' listen='127.0.0.1'>
<listen type='address' address='127.0.0.1'/>
</graphics>
<video>
<model type='cirrus' vram='9216' heads='1'/>
<alias name='video0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video>
<memballoon model='virtio'>
<alias name='balloon0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</memballoon>
</devices>
</domain>
That looks like a problem with the initrd, try rebuilding it with this while booted with an older kernel: