Triple boot Windows 7/Ubuntu/Mac OS X

Coolname007

Distinguished Member
Not really, if I select the first entry in the NeoGrub menu, it boots directly into Linux, completely bypassing the Linux GRUB (or so it seems).
Yes, that is basically what I was saying it does (except for the part about bypassing the Linux Grub)...
What were you expecting it to do?
Present another menu?
What that entry does is basically pass control over to the Linux Grub on the Linux partition.
Here's what happens:

Computer starts up
Windows 7 Bootloader shows up with two options: Windows 7 and NeoGrub
If I select NeoGrub, then the whole array of options we inserted comes up, with Mac OS X as the last one.
If I select the first one (Ubuntu 9.04), Linux loads immediately, bypassing the GRUB which is already installed on its bootsector (or so it seems - at any rate, the options do not show up).
It bypasses the Linux menu.lst, but it still passes control over to the Linux grub bootloader on the Linux partition.
If I select the last option (Mac OS X), then what actually loads is the good old Ubuntu GRUB menu (which at this point is identical to the NeoGrub, the only difference being, I had set up my Linux GRUB to have Mac OS X as default and to time out in 2 seconds, hence I recognise it). I repeat, the old Linux GRUB will not be evoked via any other option from NeoGrub, apart from the last one, which is Mac OS X. All other options boot directly into Linux, as, of course, expected.
The Linux entries (excluding the first entry) in your NeoGrub menu.lst are supposed to boot linux directly, via the Linux bootloader on the Linux partition. In my opinion, having each option call up another menu would kind of defeat the purpose, would it not? :brows: Is that what you want it to do?
They do not (and I repeat, they do NOT) "bypass the old Linux GRUB". What happens is they call up the Linux kernel (not the menu.lst, which presents the linux grub menu; don't confuse the two) on the Linux partition, and basically start the loading process of Ubuntu. Now, if you meant they bypass the Ubuntu menu.lst on the Ubuntu partition, then yes, they do.
Within the Ubuntu /boot/grub folder, I have pasted the "boot" file from the Mac OS X bootloader. Once launched by Grub, this file will start "looking" for the rest of the bootloader in all available partitions. Once it finds it, it will ask for confirmation and, depending on the timeout, it will start loading.
Ok, well as stated previously, I don't know a whole lot about the OS X bootloader, but I can see that what you just said makes sense. The reason the OS X bootloader option calls up the menu.lst on the Ubuntu partition, is because you used the "root (hd2,1)" line which tells it the bootloader (namely, OS X's) it should load is on that partition, and the "kernel /boot/grub/boot" line basically tells it that the bootloader is the "boot" file. Did you add any options to that "boot" file?
If not, then my guess is the reason the Linux menu.lst on the Ubuntu partition is read from, is because you may have added more lines to the OS X entry in the NeoGrub menu.lst than I had, or altered it, so its looking for Grub instead of OS X's bootloader.
Back to EasyBCD 2.0, r. 61:

When I remove NeoGrub and I attempt to add Linux from the menu, I have two options:

1) I can check the "GRUB isn't installed to the MBR/bootsector" option. If I do that, EasyBCD always installs NeoGRUB, which then needs to be configured.
Wrong. The whole point of me telling you to do that is so you don't configure it manually. If you leave it the way it is, NeoGrub will get installed, and its menu.lst will look for the Grub on the Ubuntu partition, and chainload it. The purpose of that part of those instructions is so Ubuntu boots by a single entry in the boot menu (namely, Win 7's), and you don't have multiple entries which serve different purposes, which I gather is what you don't want.
2) I can leave the "GRUB isn't installed to the MBR/bootsector" unchecked. If I do that, and select Linux on startup, the screen just shows "GRUB" and hangs.
That is because when you don't check the box, it will not work if Linux is on a different drive than Windows (as yours is). That is why I stated to check the box. :brows:
Installing Mac OS X via EasyBCD gives the message that it requires NeoGrub to be installed for EFI mode. I can also attempt the MBR mode, but I am not sure what that will give me.
Use the MBR mode.
 
Last edited:

sanctimon

Member
Hello again. Right on most counts! Unfortunately MBR mode does not work for Mac OS X ("Chain loading error"), but the automated NeoGrub works a treat. I just wish I had kept a backup of my Vista MBR, as, I can tell you now, it did not use NeoGrub at all. Selecting Linux, allowed it to boot directly from the Linux GRUB menu.lst (sorry again for the terminological misunderstanding).

I am still happy to be able to chain load Grub off Windows 7 bootloader and to be able to select between Linux and Mac OS X from there.
 

Coolname007

Distinguished Member
Hello again. Right on most counts! Unfortunately MBR mode does not work for Mac OS X ("Chain loading error"), but the automated NeoGrub works a treat. I just wish I had kept a backup of my Vista MBR, as, I can tell you now, it did not use NeoGrub at all. Selecting Linux, allowed it to boot directly from the Linux GRUB menu.lst (sorry again for the terminological misunderstanding).
Did you give the right drive number? It should be 2, if the count begins at 0.
Actually, the reason you lost your old booting setup when you installed Win 7 over the existing Vista installation there, is you erased the Vista bootloader (as well as the rest of its files) on the Vista partition, and replaced it with Win 7's! The MBR was replaced too with Win 7's, but that is not what changed your boot setup. If just the MBR was replaced, you would still have had the existing boot setup before the installation. Basically, what you should have done, if you didn't want to overwrite Vista's bootloader, is changed the "system" partition to a new partition you create, set it to "active", and copied over Vista's BCD and bootmgr files. But all that's water under the bridge now...:wink:
I am still happy to be able to chain load Grub off Windows 7 bootloader and to be able to select between Linux and Mac OS X from there.
Well, you're almost there! :smile: You should be able to boot OS X again relatively soon if you follow my directions.
Which OS did you install first, btw? Ubuntu or OS X? And when you installed OS X, which HDD was first in the boot sequence in the BIOS?

Jake

Addendum:

Another option to use is to follow these steps:

1. Remove the Linux entry.
2. Uninstall NeoGrub.
3. Go to the Mac tab in the Add/Remove Entries section of EasyBCD
4. Select EFI mode (if not already selected).
5. Give the entry a name.
6. Click Add Entry.
7. Go to the NeoGrub tab in the Add/Remove Entries section of EasyBCD
8. Click the Configure button.
9. In the menu.lst that opens, there should be an entry that looks like this:

find --set-root --ignore-floppies /NST/nst_mac.efi
kernel /NST/nst_mac.efi
boot
So replace the whole entry with:

timeout 5
default 0

title OS X
find --set-root --ignore-floppies /NST/nst_mac.efi
kernel /NST/nst_mac.efi
boot

title Ubuntu
find --set-root --ignore-floppies /boot/grub/menu.lst
configfile /boot/grub/menu.lst
Only trouble with that method is there will be a second menu.
 
Last edited:
Top