Yesterday I updated my SLES 11 SP1 servers to SP2 via wagon. Things seemed to go just fine, until it rebooted. It only got partially through the boot process then failed when trying to mount my partitions similar the issue that emanuele_lombardi had. When starting up, I would get the following error:
Waiting for device /dev/disk/by-id/ata-Virtual_HD-part2 to appear: ...................Could not find /dev/disk/by-id/ata-Vritual_HD-part2
I took a look at what the new system thought things should be named and got this:
mkm@mx2:~> ls -l /dev/disk/*
/dev/disk/by-id:
total 0
lrwxrwxrwx 1 root root 9 Mar 30 04:00 edd-int13_dev80 -> ../../sda
lrwxrwxrwx 1 root root 10 Mar 30 03:59 edd-int13_dev80-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Mar 30 03:59 edd-int13_dev80-part2 -> ../../sda2
lrwxrwxrwx 1 root root 9 Mar 30 04:00 scsi-14d53465420202020b55ea4cb396d4f479b0d96f7d7d3752e -> ../../sda
lrwxrwxrwx 1 root root 10 Mar 30 03:59 scsi-14d53465420202020b55ea4cb396d4f479b0d96f7d7d3752e-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Mar 30 03:59 scsi-14d53465420202020b55ea4cb396d4f479b0d96f7d7d3752e-part2 -> ../../sda2
/dev/disk/by-path:
total 0
lrwxrwxrwx 1 root root 9 Mar 30 04:00 scsi-0:0:0:0 -> ../../sda
lrwxrwxrwx 1 root root 10 Mar 30 03:59 scsi-0:0:0:0-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Mar 30 03:59 scsi-0:0:0:0-part2 -> ../../sda2
/dev/disk/by-uuid:
total 0
lrwxrwxrwx 1 root root 10 Mar 30 03:59 0a3ba838-c9c2-4c9c-8c0e-f941ff31ec2d -> ../../sda1
lrwxrwxrwx 1 root root 10 Mar 30 03:59 cf563634-01fa-4684-95ee-53a361074009 -> ../../sda2
Pretty ugly, no? No sigh of ata-Virtual_HD anywhere.
Anyway, to fix this, I gleaned some clues from emanuele_lombardi’s post and did the following:
mkdir mkm
mount /dev/sda2 mkm
cd /mkm/boot/grub
I then edited device.map, replacing the line that said
(hd0) /dev/disk/by-id/ata-Virtual_HD
with
(hd0) /dev/sda
and changed menu.lst thusly:
kernel /boot/vmlinuz-3.0.13-0.27-default root=/dev/disk/by-id/ata-Virtual_HD-part2 resume=/dev/disk/by-id/ata-Virtual_HD-part1 splash=silent crashkernel=128M-:64M@16M showopts vga=0x31a
to
kernel /boot/vmlinuz-3.0.13-0.27-default root=/dev/sda2 resume=/dev/sda1 splash=silent crashkernel=128M-:64M@16M showopts vga=0x31a
After that it booted up fine. I’m posting so if anyone else has a similar issue they have an easy way to fix it. I spent way too much time on it!
A couple of other quick notes: there is no editor (that I could find) when I was dropped to the $ prompt after the partitions failed to load. After I mounted the sda2 manually I was able to edit the files with vim but had to pass the whole path, i.e. /mkm/bin/vim-normal FILENAME. vim was in ‘dumb as a beach-rock’ mode, but it worked. Naturally I copied the target files to a safe location before editing them, just in case.
Also, I’m running my host as a virtual client on Hyper-V. Not sure if that makes a difference or not, but there it is.
It would have been nice if the process had changed the partition references automatically, but oh well. Things seem to be back up and running. It may be that I should change the /dev/sda to /dev/disk/by-uuid, I don’t know.