Especially in virtual environments (VMware) booting SLES VMs can cause issues.
By the usage of many VMDKs and an unforeseeable boot order, the name of the boot device can change and the server will not boot !
Initial the entry in /etc/fstab looks like this:
/dev/sda1 /boot ext3 acl,user_xattr 1 2
On the problematic servers the device of the /boot filesystem had for example the name /dev/sdc1 and so the server was not able to boot cleanly.
First attempt to solve this is to use a File System Label in /etc/fstab instead of the (boot) device name.
In this case by working with the label of the filesystem /boot – by default the label is the name of the mountpoint (“/boot”)
Now the /boot is referenced in /etc/fstab:
LABEL=/boot /boot ext3 acl,user_xattr 1 2
Unfortunately this is not working all the time, when new kernel patches get installed then in /boot/grub/menu.lst the reference to the root disk is wrong.
On server installations the server gets the most current patches. Those patches often include a kernel patch.
The kernel patch creates a new entry in /boot/grub/menu.lst. Unfortunately this entry has this:
which means /dev/sda (or /dev/sdc… or)
But correct is this
which means /dev/sda1
and the server was not able to boot anymore, because it couldn’t find the kernel.
Simple solution was to fix the menu.lst and the server boots fine again. But this only works until the next kernel patch.
It turned out, that the slash (“/”) is a problem for creating the bootloader entry. The scripts who do it fail to map it cleanly and create the wrong entry.
The solution to that is to change the label of the filesystem /boot to “boot” and also to change the fstab entry from “LABEL=/boot” to “LABEL=boot”.
e2label /dev/XXX <label> ,
tune2fs -L <label> /dev/XXX or use YAST (Edit Partition -> /dev/sda1 -> Mounting Option -> Fstab options)
- in /etc/fstab use: LABEL=boot /boot ext3 acl,user_xattr 1 2