grub: Device map

 
 4.3 The map between BIOS drives and OS devices
 ==============================================
 
 If the device map file exists, the GRUB utilities ('grub-probe', etc.)
 read it to map BIOS drives to OS devices.  This file consists of lines
 like this:
 
      (DEVICE) FILE
 
    DEVICE is a drive specified in the GRUB syntax (⇒Device
 syntax), and FILE is an OS file, which is normally a device file.
 
    Historically, the device map file was used because GRUB device names
 had to be used in the configuration file, and they were derived from
 BIOS drive numbers.  The map between BIOS drives and OS devices cannot
 always be guessed correctly: for example, GRUB will get the order wrong
 if you exchange the boot sequence between IDE and SCSI in your BIOS.
 
    Unfortunately, even OS device names are not always stable.  Modern
 versions of the Linux kernel may probe drives in a different order from
 boot to boot, and the prefix ('/dev/hd*' versus '/dev/sd*') may change
 depending on the driver subsystem in use.  As a result, the device map
 file required frequent editing on some systems.
 
    GRUB avoids this problem nowadays by using UUIDs or file system
 labels when generating 'grub.cfg', and we advise that you do the same
 for any custom menu entries you write.  If the device map file does not
 exist, then the GRUB utilities will assume a temporary device map on the
 fly.  This is often good enough, particularly in the common case of
 single-disk systems.
 
    However, the device map file is not entirely obsolete yet, and it is
 used for overriding when current environment is different from the one
 on boot.  Most common case is if you use a partition or logical volume
 as a disk for virtual machine.  You can put any comments in the file if
 needed, as the GRUB utilities assume that a line is just a comment if
 the first character is '#'.