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

Bug#613200: linux-base: lilo.conf not updated to UUIDs for kernels not in /



Package: linux-base
Version: 2.6.32-30

I upgraded my Debian box to squeeze today, and after the initial
"install new kernel and udev" the system didn't boot because
linux-base hadn't correctly updated lilo.conf to use UUIDs rather
than /dev/hd*.

My lilo.conf had a stanza for the kernel like this:
# Linux kernel options:
image=/boot/vmlinuz       # where to find it...
  initrd=/boot/initrd.img
  label=Linux             # name to type to boot it
  alias=l 
  root=/dev/hdb2          # Linux partition is D: 2nd partition
  read-only               # don't allow writes until it's been checked

...and linux-base's postinst didn't update the root= parameter.

This appears to be because _lilo_update() decides whether
to update an image= stanza using this regex:

           $in_generic = ($value =~ m|^/vmlinuz(?:\.old)?$|);

...which will only match if you were keeping your kernels
in /, not if they're in /boot/ as mine are.

Given that once you're running the new kernel lilo will
fail to handle the stanzas with /dev/hd* in them:
 Fatal: Illegal 'root=' specification: /dev/hdb2

it seems to me that the best approach would be to rewrite
them in all image= stanzas.

-- PMM



Reply to: