Chainload other disk MBR?

#1
I have 2 disks - one of which is dedicated to Vista and the other uses OpenSolaris to host grub and chainload Vista or select Solaris or Ubuntu (and eventually FreeBSD, probably, but I haven't loaded it yet).

I was pretty much forced to do it that way because the Linux grubs don't understand UFS or ZFS.

This worked fine for a while but I eventually ran foul of some Vista updates (for the MBR) that would not install with that setup - installed OK when I made the system boot Vista's drive first.

I'm quite happy with the grub setup I had before, but I'm concerned that Solaris is quite a lot different to Linux (and the wiki page for Solaris just redirects to the Linux one) and I don't so much want to boot Solaris directly as to chain to the boot system I had on that drive (I just changed which the BIOS goes to first).

What's the most effective way to do this?

Neogrub and set up a chainload maybe?

James
 

mqudsi

Mostly Harmless
Staff member
#2
Hi James, welcome to NeoSmart Technologies!

The MBR cannot be chainloaded, only bootsectors can.

So my recommendation would be to use Solaris to run grub-install on the partition then chainload that from EasyBCD.
 

JustinW

Super Moderator
Staff member
#3
CG is correct in saying that only bootsectors can be chainloaded.

Does Solaris use grub by default or something else? Use EasyBCD and neogrub to chainload the first bootsector on a OS partition on the other drive. Though I think it can be any bootsector (if you have more then one OS on the other drive), I have only managed to chainload the first available Linux install on the disk. I added entries to that grubs menu.lst file that allow me to boot the others or even chainload back to my first hard drive :smile: If you can select any bootsector on the disk, I'd use Ubuntus' and grub to chainload Solaris and BSD.
 
Last edited:

mqudsi

Mostly Harmless
Staff member
#4
OpenSolaris uses GRUB by default.

However, you cannot use Ubuntu's GRUB (or any other, including NeoGrub for that matter) to boot into OpenSolaris since it installs to a ZFS partition and ZFS is only supported in the copy of GRUB that ships with OpenSolaris (as a result of non-GPL licensing on the ZFS components).

The only way to boot into OpenSolaris & the rest of the entries would be to use OpenSolaris to install GRUB to its own bootsector (either by entering a GRUB console and issuing the setup() command as shown in the documentation at Linux - NeoSmart Technologies Wiki in the reinstalling GRUB section or by issuing grub-install from within the OS) and then having EasyBCD chainload that entry.

All entries can be put on a single menu by having EasyBCD chainload the GRUB partition for each Linux OS seperately (via multiple nst_grub.mbr configurations); or you can have Vista and one GRUB on the top-most bootmenu with an option of booting into the multiple *nix OSes on OpenSolaris's boot menu.
 

JustinW

Super Moderator
Staff member
#5
Good to know. I have wanted for some time to give Solaris a try. If Ubuntu's GRUB can't load Solaris, what about Fedora? Or do they both use the same version? When I chainload using neogrub from the local hard drive on my laptop I am actually using Fedoras' and not Ubuntus' to do the job.
 

mqudsi

Mostly Harmless
Staff member
#6
No GRUB except OpenSolaris's own will boot OpenSolaris. The problem is that GRUB is GPL and ZFS (the OpenSolaris filesystem) is CDDL which cannot be distributed in a GPL package. In order to boot into a ZFS partition, GRUB needs the ZFS driver, and that's not shipped under a Linux-compatible license.

Only OpenSolaris is legally free to use the different drivers in its own package; so only it will be able to boot into a ZFS partition.