Extensive Ubuntu Dual-Boot Testing

mqudsi

Mostly Harmless
Staff member
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)
  • 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
  1. Installing Ubuntu to the system drive will always work.
  2. To boot Ubuntu on another disk, you'll need to manually configure NeoGrub to use (hdx,y) syntax to boot into Ubuntu.
  3. 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!
 
  • 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)

What about if you leave that box unchecked, and you have uuid lines? :wink: I don't think you clarified what happens in that case...
And also, are you strictly referring to the main UUID lines (i.e. the ones that are replaced with the "root (hdx,y)" notations), or does this also apply to the mention of UUID in the kernel lines of the GNU Grub menu.lst as well? That's been a question in the back of my mind for quite a while now, since my menu.lst still has the UUID in the kernel lines, but I didn't (previously) think it was a problem, but its possible that it might explain why the method of booting Ubuntu with that box unchecked didn't work in my case, and I only got a blank screen when selecting the entry at boot time.

-Coolname007

Addendum:

Here's what I meant:

## ## End Default Options ##

title Ubuntu 8.10, kernel 2.6.27-7-generic
root (hd0,3)
kernel /boot/vmlinuz-2.6.27-7-generic root=UUID=dd4f326a-2165-40f6-aed4-2b44b15b71a5 ro quiet splash
initrd /boot/initrd.img-2.6.27-7-generic

title Ubuntu 8.10, kernel 2.6.27-11-generic
root (hd0,3)
kernel /boot/vmlinuz-2.6.27-11-generic root=UUID=dd4f326a-2165-40f6-aed4-2b44b15b71a5 ro quiet splash
initrd /boot/initrd.img-2.6.27-11-generic

title Ubuntu 8.10, kernel 2.6.27-11-generic (recovery mode)
root (hd0,3)
kernel /boot/vmlinuz-2.6.27-11-generic root=UUID=dd4f326a-2165-40f6-aed4-2b44b15b71a5 ro single
initrd /boot/initrd.img-2.6.27-11-generic

title Ubuntu 8.10, memtest86+
root (hd0,3)
kernel /boot/memtest86+.bin

### END DEBIAN AUTOMAGIC KERNELS LIST

See those whole UUID sections that I bolded in the kernel lines of my menu.lst? what I'm asking is should I replace them with root (hd0,3) ones, or is the main UUIDs the only ones that dont work with EasyBCD?

-Coolname007
 
Last edited:
If you boot into Linux with the box unchecked, there's no problem with UUID.
And there shouldn't be an issue with the the root=UUID=**************** portion, either.
 
If you boot into Linux with the box unchecked, there's no problem with UUID.
And there shouldn't be an issue with the the root=UUID=**************** portion, either.

Ok...so now I'm really confused why its not working then! :lol: I just tried replacing that whole (=UUID etc.) portion with the "(hd0,3)" notation without the quotes, but got to the busybox terminal when attempting to boot that way from BING's boot menu...and still blank screen when I select the entry in the Vista bootloader menu for Ubuntu. So I guess that UUID can not be removed (and replaced with the (hdxy) notation) at all! :brows: I now know THAT wont work!

So the issue with UUID is only with NeoGrub, and not Bootpart in EasyBCD then? hmm...

-Coolname007

EDIT: Here's what I changed it to, and it didn't work:

From:

## ## End Default Options ##

title Ubuntu 8.10, kernel 2.6.27-7-generic
root (hd0,3)
kernel /boot/vmlinuz-2.6.27-7-generic root=UUID=dd4f326a-2165-40f6-aed4-2b44b15b71a5 ro quiet splash
initrd /boot/initrd.img-2.6.27-7-generic

title Ubuntu 8.10, kernel 2.6.27-11-generic
root (hd0,3)
kernel /boot/vmlinuz-2.6.27-11-generic root=UUID=dd4f326a-2165-40f6-aed4-2b44b15b71a5 ro quiet splash
initrd /boot/initrd.img-2.6.27-11-generic

title Ubuntu 8.10, kernel 2.6.27-11-generic (recovery mode)
root (hd0,3)
kernel /boot/vmlinuz-2.6.27-11-generic root=UUID=dd4f326a-2165-40f6-aed4-2b44b15b71a5 ro single
initrd /boot/initrd.img-2.6.27-11-generic

title Ubuntu 8.10, memtest86+
root (hd0,3)
kernel /boot/memtest86+.bin

### END DEBIAN AUTOMAGIC KERNELS LIST
To:

## ## End Default Options ##

title Ubuntu 8.10, kernel 2.6.27-7-generic
root (hd0,3)
kernel /boot/vmlinuz-2.6.27-7-generic root (hd0,3) ro quiet splash
initrd /boot/initrd.img-2.6.27-7-generic

title Ubuntu 8.10, kernel 2.6.27-11-generic
root (hd0,3)
kernel /boot/vmlinuz-2.6.27-11-generic root=UUID=dd4f326a-2165-40f6-aed4-2b44b15b71a5 ro quiet splash
initrd /boot/initrd.img-2.6.27-11-generic

title Ubuntu 8.10, kernel 2.6.27-11-generic (recovery mode)
root (hd0,3)
kernel /boot/vmlinuz-2.6.27-11-generic root=UUID=dd4f326a-2165-40f6-aed4-2b44b15b71a5 ro single
initrd /boot/initrd.img-2.6.27-11-generic

title Ubuntu 8.10, memtest86+
root (hd0,3)
kernel /boot/memtest86+.bin

### END DEBIAN AUTOMAGIC KERNELS LIST
Notice I only changed the top kernel, since I wanted to be able to boot with the 11 kernel, if the other one failed after replacing the UUID, as I suspected it might...and it turns out I was right!
 
Last edited:
Same for GRUB, IIRC.

hmm...ok. :smile: I guess I'll try that then, and see if it works! Keep your fingers crossed! :tongueout:

-Coolname007

Addendum:

hmm...well, I just changed the kernel line to:

kernel /boot/vmlinuz-2.6.27-7-generic ro root=/dev/sda4
and it booted fine from BING (sort of...), though it scrolled off several lines of text first, and took a bit longer than usual to boot Ubuntu. I tried booting it with the entry created by EasyBCD in the Vista boot menu, but still got a blank screen. No more luck there. I guess I'm going to change it back to what it was before, since I don't want it to scroll off those lines every single time I boot, and it was faster before. :wink:

I guess the UUID was indeed not the cause of the problem...but I wouldn't have known that for sure until I tried it, so it wasn't a complete waste of time. :frowning:

-Coolname007
 
Last edited:
I disagree

If it is repeatable it is a bug in easybcd 1.7.2
After two weeks of beating my head against the wall this weekend I started from scratch

All hard drives wiped clean using a DOD wiping mechanism four passes
I installed a fully working copy of ubuntu 8.10 from scratch installed on hd2.
I can boot directly into unbuntu no problem grub is installed properly and it works
I did a whole new install from scratch of XP on hd0 did all updates no other software installed besides motherboard drivers and OS
I then installed from scratch Vista on a clean hard drive hd1 installed drivers and all updates no other software installed. I can now dual boot vista and XP yea!
Everything is SATA even the DVD drive and is attached to the SB600 southbridge.
Promise raid is turned off in the BIOS.
I now installed easybcd.

I added a linux entry and it showed my linux drive as hd0 (which is wrong)
EasyBCD failed to show it in the manage existing entries window (that is a bug! )
View settings window shows entry so I reboot machine.
when I choose linux from the boot menu it enters the bootmenu again ( no surprise)
ran Vista and easybcd this time when I go to add another linux entry it shows my linux drive in the correct spot hd2 this time when I reboot and pick Iinux I get line that says grub butnothing else and have to reboot.
so I add a couple of linux entries trying different switches. still no joy.
So I tried something I did in desperation last week and it worked AGIAN.

I deleted the NST directory.
I then ran easybcd and deleted all linux entries.
added a linux entry which failed to work I got this message
"Bootpart 2.60. Bootsector (c) 1993-2005 Gilles Vollant http"//www.winimage.com,b
ootpart.htm
Loading new boot partition
Bootsector from C.H Hochstatter

BOOTMGR is missing
Press Ctrl + Alt + Del to restart"

I then booted into vista and ran easybcd and again added a linux entry not deleting the first exactly the same way I added the first entry. This time however I get
"
Bootpart 2.60. Bootsector (c) 1993-2005 Gilles Vollant http"//www.winimage.com,b
ootpart.htm
Loading new boot partition
Bootsector from C.H Hochstatter

Cannot load from Harddisk
Insert System disk and press any key "

Now if I press any key my Grub menu loads from my HD2 and I can load ubuntu.

What kills me is this all worked perfectly no problems or errors easy as pie for me in the past using easybcd. No problems until a linux reinstall wiped my XP drive (ubuntu grub installer bug )
the hardware is the same the only difference is in the past I used an earlier version of EASYBCD and 8.04 instead of 8.10 ubuntu.

THING TO NOTICE IS WIPING THE NST DIRECTORY AND ADDING TWO ENTRIES POINTING TO THE SAME HARDDRIVE THE SAME EXACT WAY!!!!
Gets me into grub with a strange error message but I can now boot linux.

Now if you want to help find this problem in EasyBCD
tell me how to wipe out all traces of EasyBCD and get me EASYBCD 1.6 or 1.5
Cause I really don't want to waste another whole weekend reinstalling windows and linux
I will do a reinstall of 8.04 and see if all works perfectly if so that proves the problem is with as I suspect 1.7

Kgrach
 
Last edited:
Hello there!

Like kgrach and possibly many others, I went thru difficult time with the installation of Ubuntu 8.10 (Intrepid Ibex) in dual boot with a pre-installed Vista. But... I happened to be successful!
So I am hereby humbly reporting the successful procedure of mine.
Good luck!

1.[FONT=&quot] [/FONT]Get before starting :

-[FONT=&quot] [/FONT]a Ubuntu live CD that match your PC architecture (32 or 64 bits)
(burn the .iso image downloaded from http://www.ubuntu.com/getubuntu/download or
http://www.ubuntu-fr.org/telechargement with Nero burning ROM or gburner)
-[FONT=&quot] [/FONT]EasyBCD 1.7.2 from http://neosmart.net/
-[FONT=&quot] [/FONT]a USB flash drive (USB stick) to be able to copy some file (part of the MBR installed with Vista) on a safe place (not the PC drive that is being processed)

2.[FONT=&quot] [/FONT]Launch the Ubuntu CD and select Live User (not Installation)
In a command window (Applications/Accessories/Terminal) type the following to save the first 446 bytes of the Master Boot Record (512 bytes altogether), the remaining allowing for a re-installation of Vista thanks to a conserved tattooing) :
sudo dd if=/dev/sda of=~/Desktop/mbr446.img bs=446 count=1

(Remark : sda means that your first drive (= a) is of s-ata type, older disk drives are described as hda, hdb…)
Save then the copied file (mbr446.img) from your desktop to your USB drive.
Next select gparted (System/Administration/Disk Partition) to manage the partitioning of your drive and create the dedicated partition for Ubuntu.
In a command window, type the following to manually format the dedicated partition (here = /dev/sda4) using i-nodes of 128 octets.
According to the French Ubuntu community (http://doc.ubuntu-fr.org/tutoriel/comment_amorcer_ubuntu_avec_bootmgr ), referring to the LinuxPlanet community (http://www.linuxplanet.com/linuxplanet/tutorials/6480/1/ , http://www.linuxplanet.com/linuxplanet/tutorials/6480/2/
http://www.linuxplanet.com/linuxplanet/tutorials/6480/3/ ), the graphical mode of partitioning uses by default i-nodes of 256 octets to format a ext3 partition, which GRUB (the Ubuntu load manager) does not recognize. Hence the need to use a command line to format the partition in the right way.
The quoted tutorial mentions:
[FONT=&quot]sudo mkfs.ext3 -I 128 /dev/sda4[/FONT]
[FONT=&quot] [/FONT]
Personally I could not go far with this command line, but I was successful with:
[FONT=&quot]sudo mke2fs –L ext3 -I 128 /dev/sda4[/FONT]

Finally ask gparted to create a mounting point (= /) on the freshly formatted partition, before quitting the Ubuntu live mode.

3.[FONT=&quot] [/FONT]Relaunch the Ubuntu CD and select Installation
At the last step (7 out of 7), clic on ‘Advanced’ and indicate that the boot loader (GRUB) should be located on the Ubuntu partition (here = /dev/sda4).
4.[FONT=&quot] [/FONT]Reboot on the PC hard drive
The GRUB selector allows you to choose, under ‘Other Operating Systems’, your Windows Vista/Longhorn.
In Vista, launch EasyBCD, and add an entry (named Ubuntu or whatever you like), using the tab GRUB and selecting the option ‘GRUB isn’t installed to the Bootsector’, as re-explained in Computer Guru’s recent post ‘Extensive Ubuntu Dual-Boot Testing) (http://neosmart.net/forums/showthread.php?t=3334 )
When you next reboot, the modified ‘Windows Boot Manager’ should grant you with the choice between Vista and Ubuntu. The selection of Ubuntu will pass down the loading management to GRUB.
There may be some refinements to add, but I am not a computer specialist, and I am just trying here to help out.

Anyway, EasyBCD and the tutorials available on NST (http://neosmart.net ) are definitely of great value!
Thanks, Mr Guru!
 
Hi Greg, welcome to NeoSmart Technologies.

Thanks for sharing your advice on the matter, your insight is much appreciated.

Recent versions of GRUB (not the one that ships with EasyBCD 1.7.2 though) have support for 256-byte inodes.

However, even with the instructions in your helpful post, you won't be able to boot into an Ubuntu on a second or third hard drive - you stilll have the original problem with not being able to boot off non-primary disks.

At any rate, EasyBCD 2.0 should address all these problems and then some :smile:

If you'd like to test it, drop me a private message with your email address + agreement not to redistribute the build and I'll send some dual-boot love your way.

In the meantime, drop by and introduce yourself, and welcome to the community.

Addendum:

Unstickied with the public availability of EasyBCD 2.0 Beta.

Anyone having Linux dual-boot problems should try EasyBCD 2.0 Beta: EasyBCD 2.0 Beta Builds - The NeoSmart Forums
 
Last edited:
Hey I have a problem.

When I installed Ubuntu about a month ago, it failed the first time, so I reinstalled it, but I hit Install Along Side other system, not advanced to overwrite the first installation.

So now I have 2 installations of Ubuntu and one of Windows 7 Ultimate, but with only one Ubuntu and Windows 7 working.

And just today I did this: http://neosmart.net/wiki/display/EBCD/Ubuntu and after this, it started using the old installation of Ubuntu where I don't have ANY files, because they are all on the other installation of Ubuntu.

Basically what I'm asking is if there's a way that I can either:
A. point the MBR to the new installation of Ubuntu with all the files
or
B. ...just pick the first one!

Thanks in advance!
Gage Henry

P.S.: Here's some of my statistics:
Acer Aspire One D260 with 2gb stick of ram, and dual- (tri- :tongueout:)booting Windows 7 and Ubuntu (2 times!!)
Using EasyBCD 2.0.2
 
Back
Top