Please bear with me as I describe my set up first so you can clearly understand my problem.
Using NTLDR and failing to Boot Linux
I am attempting to install Linux on my system such that I boot all my OSes under
control of the NT Boot Loader (NTLDR).
For various reasons that I will not go into I cannot (and do not want to) use GRUB (or LILO)
as the Main Boot Loader (in the MBR). So please do not suggest this as the answer as I know
how to achieve that outcome.
So far I have attempted the following with 3 distros (Fedora Core 6, Mandriva 2007 & openSUSE 10.2)
My Config is as follows:
Drive 1 (hd0 / hda) - 2 partitions:
Windows98SE on Primary (11 gb), 2nd FAT32 data Partition (29 gb)
Drive 2 (hd1 / hdb) - 2 partitions:
Windows XP SP2 (11 gb), 2nd Free partition for Linux (29 gb)
On install I use the default partitioning suggested in all three cases:
Fedora Core 6 creates an Extended partition with 4 logical partitions:
1. hdb5 - swap
2. hdb6 - /boot
3. hdb7 - / (slash)
4. hdb8 - /home
Mandriva 2007 and openSUSE 10.2 creates an Extended partition with 3 logical partitions:
1. hdb5 - swap
2. hdb6 - / (slash) (includes boot)
3. hdb7 - /home
On each of the distros above I declined the suggestion to load GRUB in the MBR and opted
instead to load GRUB in the partition containing the boot directory (i.e. hdb6).
On completion of install I boot into Linux (using a GRUB boot CD / floppy).
I then wrote the resulting boot sector to my windows partition using:
dd if=/dev/hdb6 bs=512 count=1 of=/windows/C/Linux.lnx
I then added the following line at the end of my boot.ini file on drive C:
C:\Linux.lnx="My Linux OS"
On attempting to boot into Linux using the NT Boot Loader and selecting Linux,
I get one the following two errors:
Error 1:
Windows cannot start because the following file is missing or corrupt : <Windows
root>\System32\hal.dll
please reinstall a copy of this file.
Error 2:
Sometimes I get a single line with the text string
GRUB and then the installation stops.
In both case there is noting at all wrong with my windows as I can boot up and
run Win98SE or WinXP without any problems.
Moreover I can also boot my installed Linux (using a grub boot floppy, grub boot CD,
Linux Live CD or My Linux install CD/DVD) by using the following commands at
the GRUB prompt.
root (hd1,5) { (hd1,6) for Fedora Core 6 }
chainloader +1
boot
Finally
In desperation I have even attempted make Linux chainloadable by doing the following
after booting into GRUB and then recreate a new boot sector with similar failure:
(Saikee's grub booting tips came in quite handy here).
root (hd1,5)
setup (hd1,5)
root (hd1,5)
setup (hd1,5)
root (hd1,5)
setup (hd1,0)
On my website
http://homepage.ntlworld.com/mosaddique/ I have a method that details
how to do something similar using LILO. I am trying to move towards using GRUB with NTLDR
rather than LILO as the Linux community seems to be moving away from LILO.
My question is:
Where am I going wrong?
Is there a problem with GRUB not booting from Logical partitions?
The GRUB manual is not very helpful in this regard and most of the postings on the forum
have the standard reply of use GRUB in the MBR which I cannot use as an option. It has
to be used with NTLDR as the primary Boot loader.
Can anybody help?