Having received a number of complaints about dual-booting Ubuntu and Windows Vista, I dedicated a day to testing Linux dual-boots under varying circumstances across multiple EasyBCD builds and different configurations.
Results:
Ubuntu on Drive 0
With Ubuntu on a separate partition on the system drive (drive 0)
Ubuntu on Disk 1+
With Ubuntu installed to a partition on anything but drive 0 (system drive)
With EasyBCD 2.0
Bottom-Line
To make this crystal-clear:
This behavior is NOT due to a bug in EasyBCD. It's because Ubuntu (or whatever distribution you're having trouble with) does NOT properly install GRUB to the bootsector of a non-system drive. They "forget" to tell GRUB to pick the drive before loading the partition, since they assume it's being installed on the boot drive!
Results:
Ubuntu on Drive 0
With Ubuntu on a separate partition on the system drive (drive 0)
- GRUB is correctly installed during setup to the bootsector.
- EasyBCD can automatically boot into Ubuntu by simply selecting its entry from the drop-down list in EasyBCD w/ normal config options.
- EasyBCD can boot into Ubuntu via NeoGrub with the "GRUB is not installed to the bootsector" option (`configfile` NeoGrub command) IF the Ubuntu menu.lst file does NOT use the uuid command. (latest Ubuntu versions use the uuid command)
- NeoGrub can also be configured to boot into Ubuntu by manually creating a Linux entry using "root (hdx,y)" syntax.
Ubuntu on Disk 1+
With Ubuntu installed to a partition on anything but drive 0 (system drive)
- GRUB is installed to the bootsector of the partition, but is incorrectly configured and cannot be loaded by EasyBCD.
- Selecting the Ubuntu partition from the EasyBCD drop-down menu will not work since GRUB on the bootsector isn't properly configured to be aware of the Drive 0/1 MBR differences.
- EasyBCD can boot into Ubuntu via NeoGrub with the "GRUB is not installed to the bootsector" option (`configfile` NeoGrub command) IF the Ubuntu menu.lst file does NOT use the uuid command. (latest Ubuntu versions use the uuid command)
- NeoGrub can also be configured to boot into Ubuntu by manually creating a Linux entry using "root (hdx,y)" syntax.
With EasyBCD 2.0
- EasyBCD has full support for the UUID command. Therefore, the "GRUB is not installed to the bootsector" option will work in all cases. You can also copy-and-paste the Ubuntu menu.lst file without any changes (including uuid commands and everything) and it'll work 100%.
Bottom-Line
- Installing Ubuntu to the system drive will always work.
- To boot Ubuntu on another disk, you'll need to manually configure NeoGrub to use (hdx,y) syntax to boot into Ubuntu.
- Once EasyBCD 2.0 is released, the "GRUB is not installed to the bootsector" option will suffice for non-system disks, too.
To make this crystal-clear:
This behavior is NOT due to a bug in EasyBCD. It's because Ubuntu (or whatever distribution you're having trouble with) does NOT properly install GRUB to the bootsector of a non-system drive. They "forget" to tell GRUB to pick the drive before loading the partition, since they assume it's being installed on the boot drive!