Il problema
Il server non si avvia con il kernel più recente con i seguenti errori dai registri della console:
Initializing network drop monitor service md: Waiting for all devices to be available before autodetect md: If you don't use raid, use raid=noautodetect md: Autodetecting RAID arrays. md: Scanned 0 and added 0 devices. md: autorun ... md: ... autorun DONE. VFS: Cannot open root device "UUID=[UUID]" or unknown-block(0,0) Please append a correct "root=" boot option; here are the available partitions: Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) Pid: 1, comm: swapper Not tainted 2.6.39-400.325.1.el6uek.x86_64 #1 Call Trace: [] panic+0xa6/0x1bd [] ? printk+0x41/0x47 [] mount_block_root+0x1ea/0x29e [] mount_root+0x56/0x5a [] prepare_namespace+0x170/0x1a9 [] kernel_init+0x2aa/0x2c0 [] kernel_thread_helper+0x4/0x10 [] ? parse_early_options+0x20/0x20 [] ? gs_change+0x13/0x13
Il server si sta avviando con successo con i kernel precedenti.
La soluzione
L'ultima versione del kernel installata non ha aggiornato la riga initrd nel file /etc/grub.conf
# grep -v "^#" /boot/grub/grub.conf | egrep 'Oracle Linux Server|initrd' title Oracle Linux Server Unbreakable Enterprise Kernel (2.6.39-400.325.1.el6uek.x86_64) <..initrd line missing ..> title Oracle Linux Server Red Hat Compatible Kernel (2.6.32-754.35.1.el6.x86_64) initrd /initramfs-2.6.32-754.35.1.el6.x86_64.img title Oracle Linux Server Unbreakable Enterprise Kernel (2.6.39-400.298.2.el6uek.x86_64) initrd /initramfs-2.6.39-400.298.2.el6uek.x86_64.img
Il file initrd viene creato per l'ultimo kernel
# ls -l /boot/initramfs-2.6.39-400.325.1.el6uek.x86_64.img -rw-r--r-- 1 root root 23940723 Dec 2 06:07 /boot/initramfs-2.6.39-400.325.1.el6uek.x86_64.img
# du -hs /boot/initramfs-2.6.39-400.325.1.el6uek.x86_64.img 23M /boot/initramfs-2.6.39-400.325.1.el6uek.x86_64.img
1. Esegui un backup della configurazione corrente /etc/grub.conf file.
2. Modificare il file /etc/grub.conf e aggiungere la riga mancante. Ad esempio:
initrd /initramfs-2.6.39-400.325.1.el6uek.x86_64.img
3. Riavvia con l'ultimo kernel.
4. Nel caso in cui l'azione di cui sopra non riesca, quindi avviare il kernel più vecchio e reinstallare il kernel più recente, per aggiornare correttamente grub.conf. Ad esempio:
# yum reinstall kernel-uek-2.6.39-400.325.1.el6uek.x86_6