On Fri, May 11, 2007 at 12:15:57PM -0300, Otavio Salvador wrote: > Robert Millan <[EMAIL PROTECTED]> writes: > > > On Fri, May 11, 2007 at 11:06:12AM -0300, Otavio Salvador wrote: > >> Robert Millan <[EMAIL PROTECTED]> writes: > >> > >> >> > After upgrading to the newer version of Grub2, postinst runs > >> >> > update-grub which > >> >> > uses hooks in /etc/grub.d/. If /boot is mounted on separate partition > >> >> > the > >> >> > grub.cfg still retains /boot/vmlinuz-* as the location for the kernel > >> >> > and > >> >> > similarly for initrd. This renders the system unbootable. > >> >> > >> >> This bug has already been fixed on development version. > >> > > >> > Are you sure? I don't see any updates in SVN or CVS that indicate this > >> > is > >> > fixed. > >> > >> I said that since you said you have spoted it out. That's why. > > > > I spotted it, but since it's not trivial I left it for later. Sorry :-) > > Can you explain what you've found?
Sure. 10_linux adds linux / initrd images with absolute paths, just as they're found. However, when /boot is a separate partition, the path relative to grub's root will not contain "/boot". So instead of: linux /boot/vmlinuz-2.6.18-4-amd64 ... we should have: linux /vmlinuz-2.6.18-4-amd64 ... To do this portably, I think the best is a C program that, for a given path, climbs to its parent directory iteratively untill a directory that belongs to another filesystem is found. If we reach / and this didn't happen, then we can use absolute paths. grub-probe (or the biosdisk functions it uses) already has code to check which filesystem does a file belong to. Maybe the same interfaces can be shared. -- Robert Millan My spam trap is [EMAIL PROTECTED] Note: this address is only intended for spam harvesters. Writing to it will get you added to my black list. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]