Read with Formatting | Join TechSpot! (it's free) | Bookmark / Share this



hda and hdb,GRUB to boot windows

zillah
01-08-2006, 03:19 AM
I have got two HDs, Segate and Western Digital, each one 40 GB. Connected to one cable to IDE0 (Segate is master and the Western Digital is slave).


First HD Segate (master or hda) is divided to :

15 GB NTFS for XP, 5 GB FAT32 for Storage, and 20 GB NTFS for win2003,,,,I had already installed both windows (XP and 2003).


Second HD Western Digital (slave or hdb) is divided to :

20 GB Solaris (hdb1,,,to be installed later) , 5 GB NTFS for Storage (hdb2) , 500 MB Linux swap (hdb3), 14.5 GB ext3 Linux (hdb4).

I installed Linux FC4 on hdb4 and chose option for GRUB bootloader to be installed on : " /dev/hda Master Boot Record (MBR) ".

When I finished the installation of Linux, I was greeted by GRUB, but when I tried to boot into windows, I received this error message :

Booting "Windows"

rootnoverify (hd1,0)

chaninloader+1

Why was the partition for windows numbered with hd1,0,,,,it should be hd0 because both windows were installed on first hard disk (i.e hd0, not hd1) ?

Why was the root showing hd(0,3), I had installed Linux on hdb (hd1) not hda (hd0) ?



fdisk -l
Disk /dev/hda: 40.0 GB, 40016019456 bytes
255 heads, 63 sectors/track, 4865 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hda1 1 1824 14651248+ 7 HPFS/NTFS
/dev/hda2 1825 2432 4883760 c W95 FAT32 (LBA)
/dev/hda3 * 2433 4865 19543072+ 7 HPFS/NTFS

Disk /dev/hdb: 40.0 GB, 40020664320 bytes
255 heads, 63 sectors/track, 4865 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hdb1 1 2432 19535008+ af Unknown
/dev/hdb2 * 2433 3040 4883760 7 HPFS/NTFS
/dev/hdb3 3041 3101 489982+ 82 Linux swap / Solaris
/dev/hdb4 3102 4865 14169330 83 Linux






gedit /boot/grub/menu.lst

# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You do not have a /boot partition. This means that
# all kernel and initrd paths are relative to /, eg.
# root (hd0,3)
# kernel /boot/vmlinuz-version ro root=/dev/hdb4
# initrd /boot/initrd-version.img
#boot=/dev/hdb
default=0
timeout=15
splashimage=(hd0,3)/boot/grub/splash.xpm.gz
#hiddenmenu
title Fedora Core (2.6.11-1.1369_FC4)
root (hd0,3)-------I said it should be hd1,3
kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/ rhgb quiet
initrd /boot/initrd-2.6.11-1.1369_FC4.img
title Windows
rootnoverify (hd1 ,0)-----I said it should be hd0,0
chainloader +1

Mictlantecuhtli
01-08-2006, 06:58 AM
If you go to GRUB's command line and type root (hd1,0), does it show the correct partition type for Windows?

If so, you probably need to map the drives the other way around in GRUB, by

map (hd0) (hd1)
map (hd1) (hd0)

Add those before root commands.

Ad
01-08-2006, 06:58 AM

zillah
01-08-2006, 09:55 AM
If so, you probably need to map the drives the other way around in GRUB, by

map (hd0) (hd1)
map (hd1) (hd0)

Add those before root commands.
I am going to follow what you suggested, but could you please explain to me what is the map command here ?

zillah
01-09-2006, 01:08 PM
I checked

#cat /boot/grub/device.map

(fd0) /dev/fd0
(hd1) /dev/hda---------------It should be hdb instead of hda.
(hd0) /dev/hdb---------------It should be hda instaed of hdb.

Drives hav been flipped, what should I do to correct this issue ?

If you go to GRUB's command line and type root (hd1,0), does it show the correct partition type for Windows?
How can I go to grub command ? from Rescue CD or from Terminal ?

Mictlantecuhtli
01-10-2006, 07:09 AM
GRUB manual (http://www.gnu.org/software/grub/manual/grub.html)

Map
Command: map to_drive from_drive

Map the drive from_drive to the drive to_drive. This is necessary when you chain-load some operating systems, such as DOS, if such an OS resides at a non-first drive. Here is an example:

grub> map (hd0) (hd1)
grub> map (hd1) (hd0)


The example exchanges the order between the first hard disk and the second hard disk.


You can get to GRUB's command line by pressing c during its menu.

zillah
01-10-2006, 07:24 AM
Add those before root commands.
Did you mean I have to add them before this command : root hd(1,0) ?

Is case if the above configuration does not help,,,still I will be able to access Linux OS ?,,,or I have to use rescue CD,,,Any precaution you recognise I have to be aware of it ?

Mictlantecuhtli
01-10-2006, 08:31 AM
Did you mean I have to add them before this command : root hd(1,0) ?

Yes.

Is case if the above configuration does not help,,,still I will be able to access Linux OS ?,,,or I have to use rescue CD,,,Any precaution you recognise I have to be aware of it ?
That's what the command line is for, you can test various settings to see which are correct, and then add them to menu.lst file (or whichever config file you use). When testing in command line, you have to enter boot as the last command to boot.

 Top Technology News

 Software Downloads

Copyright © 1998-2008 TechSpot.com. TechSpot is a registered trademark. All Rights Reserved.