grub: DOS/Windows

 
 5.4.4 DOS/Windows
 -----------------
 
 GRUB cannot boot DOS or Windows directly, so you must chain-load them
 (⇒Chain-loading).  However, their boot loaders have some critical
 deficiencies, so it may not work to just chain-load them.  To overcome
 the problems, GRUB provides you with two helper functions.
 
    If you have installed DOS (or Windows) on a non-first hard disk, you
 have to use the disk swapping technique, because that OS cannot boot
 from any disks but the first one.  The workaround used in GRUB is the
 command 'drivemap' (⇒drivemap), like this:
 
      drivemap -s (hd0) (hd1)
 
    This performs a "virtual" swap between your first and second hard
 drive.
 
    *Caution:* This is effective only if DOS (or Windows) uses BIOS to
 access the swapped disks.  If that OS uses a special driver for the
 disks, this probably won't work.
 
    Another problem arises if you installed more than one set of
 DOS/Windows onto one disk, because they could be confused if there are
 more than one primary partitions for DOS/Windows.  Certainly you should
 avoid doing this, but there is a solution if you do want to do so.  Use
 the partition hiding/unhiding technique.
 
    If GRUB "hides" a DOS (or Windows) partition (⇒parttool), DOS
 (or Windows) will ignore the partition.  If GRUB "unhides" a DOS (or
 Windows) partition, DOS (or Windows) will detect the partition.  Thus,
 if you have installed DOS (or Windows) on the first and the second
 partition of the first hard disk, and you want to boot the copy on the
 first partition, do the following:
 
      parttool (hd0,1) hidden-
      parttool (hd0,2) hidden+
      set root=(hd0,1)
      chainloader +1
      parttool ${root} boot+
      boot