[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#521343: Can't repair a lilo+root-on-LVM system

Package: general
Severity: important


Sorry for the general bug, but I can't really say which is the
appropriate package in this case.

Two days ago after upgrading the lenny 2.6.26-1-686 kernel I didn't
shut down the system, I put it in hibernate. The next day, when I
powered the computer, it failed to boot right after loading the kernel
and checking the BIOS with the message:

No setup signature found

I thought that, because of the kernel upgrade, I had to run Lilo and
the problem would go away. I managed to enter the root file system (on
LVM) with the rescue mode of the install CD and ran Lilo. I don't
recall having issues at that point (except finding a proper install CD
with LVM support).

Another failure later I figured I had to regenerate the initrd. I did
it and rerun lilo.

After reboot I was surprised to see the boot process failing and
dropping me in the initrd shell. More investigation and hours later I
realised that inside the initrd /dev/root was created with major
number 253 while the root LVM device
(/dev/mapper/hdapool-rootfilesystem - I know, bad name) had major
number 254.

I observed that the 253 major was the proper one under the rescue
environment, so probably since update-initramfs and lilo were ran from
the rescue environment, the wrong major was somehow passed into the
initrd environment (not sure if via the root=fd00 boot parameter, but
I can check). Note that I didn't have append="root=fd00" in lilo.conf.

In the end I modified /usr/share/initramfs-tools/scripts/local to try
to mount as an ext3 root file system
/dev/mapper/hdapool-rootfilesystem, if the default mount command

After this change, after updating the initrd image, and a lilo run the
system booted.

Note that after I did one more update initrd - lilo - reboot cycle the
hack in the scripts/local wasn't used anymore, which makes me believe
even more that the environment in which the initrd update/lilo run is
done impacts the correct creation of /dev/root in the initrd

"Imagination is more important than knowledge" A.Einstein

Reply to: