Jump to content

Booting OS,s XP, Vista, Linux with Grub4Dos


Recommended Posts

Posted (edited)

Spacesurfer's widely referenced post really got me going.

That post: http://www.msfn.org/board/Multiboot-Vista-...enu-t95537.html

Post #1.

Unfortunately that method did not work, because I use System Commander to boot multiple OS's and System Commander uses it's own MBR. The method above replaces that MBR and loses the ability to boot the many OS's on my boot HDD.

The boot HDD has 1 primary partition and 1 extended partition with multiple logical drives. The primary partition (system drive) C: is only 900 MB and holds only system commander and the various OS startup files and DOS 6.2

OS's in the extended partitioninclude XPhome, XP pro, Win2000, Vista32, Vista64, PCLinuxOS.

After a week of intense trial and error I found a way that works for me and here is the HOWTO:

Download grub4dos and unzip to a new folder.

Copy grldr.mbr and grldr to the boot © drive

Note: we are NOT installing an MBR, merely copying grldr.mbr to the boot (system) drive. The current boot drive MBR is not touched or replaced.

Edit boot.ini and add: C:\grldr.mbr="Grub4Dos" to it

My boot.ini looks like this:

[boot loader]

timeout=30

Default=multi(0)disk(0)rdisk(0)partition(11)\windows

[operating systems]

C:\grldr.mbr="Grub4Dos"

multi(0)disk(0)rdisk(0)partition(11)\windows="Windows XP on L ECS" /NoExecute=OptIn /fastdetect /usepmtimer

multi(0)disk(0)rdisk(0)partition(8)windows="XP Home on I ECS" /fastdetect /NoExecute=OptIn /usepmtimer

multi(0)disk(0)rdisk(0)partition(14)\windows="XP on O ECS" /fastdetect /NoExecute=OptIn /usepmtimer

multi(0)disk(0)rdisk(0)partition(13)\winnt="MS Windows 2000 Prof-N" /fastdetect

C:\BOOTSECT.DOS="MS-DOS 6.22" /win95dos

C:\mixboot.dos="PCLinuxOS"

C:\grldr.mbr="Grub4Dos"

The 2 copies of Grub4Dos are just for convenience.

When you see the boot menu select Grub4Dos and take it from there. I have not been able to make the Grub4Dos entry the default in boot.ini. So select it manually. Anyone have a suggestion here ?.

Note that I also boot PCLinuxOS from this. You will have been told the XP bootmgr cannot load non-windows OS's. Not true. If you have a flavor of linux installed, boot to linux and open a terminal.

type dd if=/dev/hdaxx bs=512 count=1 of=/mnt/floppy/mixboot.dos

where xx is your linux boot partition (hda7) for me and /mnt/floppy is where your floppy is mounted and where the bootsector is temporarily saved.

Copy that bootsector (mixboot.dos) to the C drive and add C:\mixboot.dos="PCLinuxOS" to boot.ini

Credit for this method goes here: http://www.vsubhash.com/writeups/multiboot_os.asp

If that is not enough, one can use bcdedit to add linux to Vista's BCD as well.

With easybcd go to add/remove entries, select linux name it and enter the hard drive

and partition. That is the tricky part. My linux has separate boot partition located between logical drives D and E. It turns out that HD0 and Partition 4 does the trick.

A Linux entry now appears in the Vista boot menu along with Vista, and 'earlier versions of windows'.

BTW I don't like that designation so used easybcd to rename it to XP

Linux itself is on hda19. It may be possible to go to hda19 directly but have not tried this

You can also format a floppy in XP or Vista (do NOT make an MSDOS boot disk)

and copy to following to the floppy:

folder boot/BCD (create a folder named boot and copy bcd to it)

grldr.mbr

boot.ini

bootmgr

grldr

mixboot.dos

ntdetect.com

ntldr

This floppy will boot and present the XP boot manager. Select Grub4Dos from the boot menu and take it from there.

The floppy boot process is obviously slow and method 1 above is preferred. But do make the floppy.

It makes a great recovery disk if the boot HDD is corrupted somehow as Spacesurfer has suggested in his post on how to make that boot floppy

Edited by catmother

Posted (edited)
Anyone have a suggestion here ?.

You can have only one entry in BOOT.INI like (if I remember correctly two of them will "confuse" the loader):

C:\grldr.mbr="Grub4Dos"

then an entry like this:

Default=C:\grldr.mbr

will work.

Also, if you want to get grub4dos as default, you can change the invoked loader in the bootsector of the active partition to GRLDR:

http://www.boot-land.net/forums/?showtopic=2362

and then add to grub4dos menu.lst an entry chainloading NTLDR.

jaclaz

Edited by jaclaz
Posted (edited)

then an entry like this:

Default=C:\grldr.mbr

will work.

Yes, the obvious thing to try and I tried this with variations but it did not work

The boot menu comes up with: windows(default) and results in:

%systemroot%\ntoskrnl.exe is missing or corrupt.

But, having seen many of your posts on this and other forums, and come to respect your

expertise, I felt you had to know what you were talking about so I dug deeper.

The simple answer: System Commander, on every boot was making subtle changes to boot.ini. Sys Cmdr 'knows' when changes are made and copies the changed version to the C:\SC\subdir where the startup files for that Sys Cmdr menu entry are stored. But for some weird reason the copy was altered and on the next boot the altered version was copied back to C:\. Rather than waste time chasing this weird effect I just edited the stored copy of boot.ini and then it all woked properly

Also at your suggestion I deleted the second instance of c:\grldr.mbr in boot.ini.

Success, the default boot is indeed grldr.mbr.

Thanks

Edited by catmother

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...