timtipple
June 17th, 2008, 10:55 PM
Summary:
Upgrade from 6.10 dapper (running kernel 2.6.15-51-server) to 8.04 hardy (2.6.24-18-server) failed on reboot: dropped to initramfs shell because could not find/mount root.
Details:
My server has two IDE hard disks (hda, hdb) each with a single Linux raid autodetect partition. These partitions are combined using mdadm to form a raid1 device /dev/md0. The raid1 device is used to create an LVM physical volume which is added to an LVM volume group. Seven logical volumes are created in the volume group. All logical volumes contain ext3 filesystems. My boot loader is lilo.
As this was a fairly non-standard configuration, I setup a dapper test server with a similar configuration to try out the upgrade to hardy. As this was a server installation I used the recommended upgrade procedure:
# apt-get install update-manager-core
# do-release-upgrade -d
Not unsurprisingly, the upgrade failed. On the first reboot, I was dropped into an initramfs shell. The last successfull boot message was
raid1: raid set md0 active with 2 out of 2 mirrors
Done.
followed by these error/info messages:
Check root= bootarg cat /proc/cmdline
or missing modules, devices: cat /proc/modules ls /dev
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=.....:......:......:......
Reading all physical volumes. This may take a while...
Found volume group "vg00" using metadata type lvm2
ALERT! /dev/root does not exist. Dropping to a shell!
BusyBox v1.1.3 (Debian.......(ash)
Enter 'help' for ...
(initramfs) _
The first error message was a big clue. I cannot remember exactly what /proc/cmdline contained but there was something about the "root" that made me think of my lilo configuration.
Luckily I could still boot using the previous kernel (2.6.15-51-server) and made some changes to /etc/lilo.conf. Before (excerpt):
boot=/dev/md0
root=/dev/mapper/vg00-root
raid-extra-boot=mbr-only
map=/boot/map
default=Linux
image=/vmlinuz
label=Linux
read-only
initrd=/initrd.img
image=/vmlinuz.old
label=LinuxOLD
read-only
initrd=/initrd.img.old
And after:
boot=/dev/md0
#root=/dev/mapper/vg00-root # <=== commented out
raid-extra-boot=mbr-only
map=/boot/map
default=Linux
image=/vmlinuz
label=Linux
read-only
initrd=/initrd.img
append="root=/dev/mapper/vg00-root" # <=== new line here
After these changes I ran
# update-initramfs -u -a
and rebooted. This time the test server started up just fine.
Thinking that I had things under control, I upgraded my main server. On the first reboot I ended up in the initramfs shell as before. I rebooted to the previous kernel, modified my lilo.conf, updated my initrd.img and rebooted again thinking all would be fine. But I ended up in the initramfs shell with this message:
md: md0 stopped.
md: md0 stopped.
Done.
Check root= bootarg cat /proc/cmdline
or missing modules, devices: cat /proc/modules ls /dev
Reading all physical volumes. This may take a while...
ALERT! /dev/mapper/vg00-root does not exist. Dropping to a shell!
BusyBox v1.1.3 (Debian.......(ash)
Enter 'help' for ...
(initramfs) _
So, similar result to my test server, but this time it seems that the problem occurs earlier: the raid1 array is not being found/assembled. Where to go from here?
Any advice will be much appreciated. Please be gentle, this is my first post to the Ubuntu forums :-)
Upgrade from 6.10 dapper (running kernel 2.6.15-51-server) to 8.04 hardy (2.6.24-18-server) failed on reboot: dropped to initramfs shell because could not find/mount root.
Details:
My server has two IDE hard disks (hda, hdb) each with a single Linux raid autodetect partition. These partitions are combined using mdadm to form a raid1 device /dev/md0. The raid1 device is used to create an LVM physical volume which is added to an LVM volume group. Seven logical volumes are created in the volume group. All logical volumes contain ext3 filesystems. My boot loader is lilo.
As this was a fairly non-standard configuration, I setup a dapper test server with a similar configuration to try out the upgrade to hardy. As this was a server installation I used the recommended upgrade procedure:
# apt-get install update-manager-core
# do-release-upgrade -d
Not unsurprisingly, the upgrade failed. On the first reboot, I was dropped into an initramfs shell. The last successfull boot message was
raid1: raid set md0 active with 2 out of 2 mirrors
Done.
followed by these error/info messages:
Check root= bootarg cat /proc/cmdline
or missing modules, devices: cat /proc/modules ls /dev
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=.....:......:......:......
Reading all physical volumes. This may take a while...
Found volume group "vg00" using metadata type lvm2
ALERT! /dev/root does not exist. Dropping to a shell!
BusyBox v1.1.3 (Debian.......(ash)
Enter 'help' for ...
(initramfs) _
The first error message was a big clue. I cannot remember exactly what /proc/cmdline contained but there was something about the "root" that made me think of my lilo configuration.
Luckily I could still boot using the previous kernel (2.6.15-51-server) and made some changes to /etc/lilo.conf. Before (excerpt):
boot=/dev/md0
root=/dev/mapper/vg00-root
raid-extra-boot=mbr-only
map=/boot/map
default=Linux
image=/vmlinuz
label=Linux
read-only
initrd=/initrd.img
image=/vmlinuz.old
label=LinuxOLD
read-only
initrd=/initrd.img.old
And after:
boot=/dev/md0
#root=/dev/mapper/vg00-root # <=== commented out
raid-extra-boot=mbr-only
map=/boot/map
default=Linux
image=/vmlinuz
label=Linux
read-only
initrd=/initrd.img
append="root=/dev/mapper/vg00-root" # <=== new line here
After these changes I ran
# update-initramfs -u -a
and rebooted. This time the test server started up just fine.
Thinking that I had things under control, I upgraded my main server. On the first reboot I ended up in the initramfs shell as before. I rebooted to the previous kernel, modified my lilo.conf, updated my initrd.img and rebooted again thinking all would be fine. But I ended up in the initramfs shell with this message:
md: md0 stopped.
md: md0 stopped.
Done.
Check root= bootarg cat /proc/cmdline
or missing modules, devices: cat /proc/modules ls /dev
Reading all physical volumes. This may take a while...
ALERT! /dev/mapper/vg00-root does not exist. Dropping to a shell!
BusyBox v1.1.3 (Debian.......(ash)
Enter 'help' for ...
(initramfs) _
So, similar result to my test server, but this time it seems that the problem occurs earlier: the raid1 array is not being found/assembled. Where to go from here?
Any advice will be much appreciated. Please be gentle, this is my first post to the Ubuntu forums :-)