Find some way to make grub know which BIOS disk numbers (0x80, 0x81, etc.) correspond to which Linux whole-disk block devices (/dev/hda, /dev/sda, etc.), or make this information not be required in order to boot.

Problem description

Currently many people's systems cannot boot reliably, or break randomly during updates, because of a combination of these factors:

This means that the use of Linux device names in grub for the boot disk and various other things breaks.


There are I think four possible solutions to this:

Use Cases

Users with multiple disk controllers would like their systems to boot.


grub2 would be nice of course but I don't think it will solve this problem.


The kernel team will enable the Linux kernel module which fetches this information from the BIOS EDD and makes it available via sysfs. This ought to be sufficient for grub provided it doesn't (a) make lots of machines break and (b) EDD is implemented in a big enough proportion of BIOSes.

Failing that we will see about putting a checksum or magic identifier in the boot sector (mbr or /boot partition).

Failing that we will change the grub configuration to make more use of device paths so that at the very least if you don't move your boot disk it will still work the next time.

Outstanding Issues

This spec is essentially "what if". The first attempt - EDD - is underway.

Release Note

It is not possible at this time to write a coherent release note as we don't yet know which approach is to be chosen.

Test plan

Alternatively, if the test system exhibits unpredictable device discovery order under Linux, simply install a working setup using multiple disks check that it boots every time, and that update-grub always works and leaves a booting system.


GrubDiskMapSanity (last edited 2008-08-06 16:21:49 by localhost)