Win 98 won't boot from hdb0 with GRUB
Hi. I used to have Windows 98 running on a single partitioned 40Gb drive, which was set as the primary master. I have subsequently bought another 40Gb drive onto which I have installed Redhat 9.0.
To keep things simple, I thought I would just set the old drive (with win98 on it) as the primary slave and have RH9.0 on the new drive as the primary master. So I just changed the jumper settings on the old drive and plugged it in as the primary slave, formatted the new drive as the primary master and installed RH9.0 on it with GRUB in the MBR. RH9.0 boots fine, as expected. However, when I try to boot win98 from GRUB, the whole computer just does nothing after "chainloader +1". I've looked in the RH9.0 manual and it just says "chainloader is required for Microsoft windows to boot", or something like that. The whole of the GRUB boot sequence for win98 is as follows: > root (hd1, 0) That's fine I think - Win98 is on the first (and only) partition of hdb, the primary slave. > chainloader +1 > boot The root command returns the following result: "Filesystem is fat, partition type 0xc" I'm happy about the first bit, but I don't know what the "partition type 0xc" bit means! I've tried doing "fdisk /mbr" from a DOS prompt in Win98 (that was suggested by someone) but no joy. Please help if you can! I am now completely flummoxed! |
Try the following:
root (hd1, 0) map (hd0) (hd1) map (hd1) (hd0) chainloader+1 |
The same problem appeared with me when trying to boot WinXP and JDS with uses GRUB.
Solution: Windows requires to be booted from the primary master disk. When Windows is installed on a disk that is not the primary master disk, it refuses to boot. However, using the Grub boot loader the disk labels can be mapped in such a way Windows believes it's started from the primary hard disk. In this next example it is assumed that Sun Java Desktop System is installed on the primary master disk and Windows XP is installed on the primary slave disk. When Sun Java Desktop system is started, the primary master disk is referred to as /dev/hda and the primary slave is referred to as /dev/hdb. The Grub bootloader, however, uses a slightly different naming convention, since it was originally designed to be multiplatform (which it actually is). The primary master disk is hd0 and the primary slave disk is hd1. The first partition on the primary master disk is hd0,0 (/dev/hda1 under Sun Java Desktop system) etcetera. The Grun bootloader configuration file is "/boot/grub/menu.lst". In this file, the entry to boot Sun Java Desktop System is put there by default and may look like this : title linux kernel (hd0,0)/vmlinuz root=/dev/hda2 vga=788 initrd (hd0,0)/initrd This entry very much depends on the way the Sun Java Desktop System hard disk is partitioned and on what video modes are available for the system. To make Windows boot from the primary slave disk, this entry needs to be added to the Grub bootloader configuration file /boot/grub/menu.lst: title winxp map (hd0) (hd1) map (hd1) (hd0) rootnoverify (hd1,0) makeactive chainloader +1 boot The first line is the choice that shows up in the Grub boot list and may be changed at will. the next two lines tell the Grub bootloader to make a virtual swap between the master and slave disks. The next four lines tell Grub to set the root device to the first partition on the primary slave, to set the "active" flag on that partition, to load the bootloader on that prtition and to boot from it. |
(translation) you need to make windows think its on hda. one of those micro$oft things.
|
Thanks muchly!
Thanks guys,
I did the mapping thing and all is now hunky-dory. Thanks in particular to Basel for explaining it to me! I like to understand why I'm doing what I'm doing. They should put that info in the Linux manual seeing as it's pretty fundamental! Mike. |
All times are GMT -5. The time now is 07:01 AM. |