hello mika, thanks a lot for your report.
On Mon, 05 Feb 2007, Michael Prokop wrote: > > Inside the mbr_check function in /usr/sbin/update-initramfs we have: > > dd if="${boot}" bs=512 skip=0 count=1 2> /dev/null | grep -q LILO \ > && run_lilo && return 0 > > This does not work reliable in the following scenario: > > * lilo is installed first > * grub is installed afterwards > > It does not work in that case because grub does *not* clear lilo's > signature. So the string LILO might be found even though grub is the > used and present bootmanager. With the above code we install lilo > in the MBR wheras we want to use grub. => The system might not even > boot anymore after upgrading and executing update-initramfs. i would prefer another solution: what about if we check _before_ for GRUB, does lilo overwrite that string? that would mean to put the grub section of mbr_check in front. could you please test the following patch, i'm currently away and not very keen on testing bootloader stuff on my laptop.. thanks === modified file 'update-initramfs' --- update-initramfs 2006-12-14 22:16:15 +0000 +++ update-initramfs 2007-02-14 09:41:16 +0000 @@ -146,6 +148,16 @@ # check if lilo is on mbr mbr_check() { + # try to discover grub and be happy + [ -r /boot/grub/menu.lst ] \ + && groot=$(awk '/^root/{print substr($2, 2, 3); exit}' \ + /boot/grub/menu.lst) + [ -e /boot/grub/device.map ] && [ -n "${groot}" ] \ + && dev=$(awk "/${groot}/{ print \$NF}" /boot/grub/device.map) + [ -n "${dev}" ] && [ -r ${dev} ] \ + && dd if="${dev}" bs=512 skip=0 count=1 2> /dev/null \ + | grep -q GRUB && return 0 + # check out lilo.conf for validity boot=$(awk -F = '/^boot=/{ print $2}' /etc/lilo.conf) [ -z "${boot}" ] && return 0 @@ -162,16 +174,6 @@ dd if="${boot}" bs=512 skip=0 count=1 2> /dev/null | grep -q LILO \ && run_lilo && return 0 - # try to discover grub and be happy - [ -r /boot/grub/menu.lst ] \ - && groot=$(awk '/^root/{print substr($2, 2, 3); exit}' \ - /boot/grub/menu.lst) - [ -e /boot/grub/device.map ] && [ -n "${groot}" ] \ - && dev=$(awk "/${groot}/{ print \$NF}" /boot/grub/device.map) - [ -n "${dev}" ] && [ -r ${dev} ] \ - && dd if="${dev}" bs=512 skip=0 count=1 2> /dev/null \ - | grep -q GRUB && return 0 - # no idea which bootloader is used echo echo "WARNING: grub and lilo installed." -- maks -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]