TechSpot

hda and hdb,GRUB to boot windows

By zillah
Jan 8, 2006
Topic Status:
Not open for further replies.
  1. 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
    Code:
    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
    Code:
    # 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 ([B]hd0[/B],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 ([B]hd1[/B] ,0)-----I said it should be hd0,0
        chainloader +1
    
  2. Mictlantecuhtli

    Mictlantecuhtli TS Evangelist Posts: 4,916   +9

    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.
  3. zillah

    zillah TS Rookie Topic Starter Posts: 87

    I am going to follow what you suggested, but could you please explain to me what is the map command here ?
  4. zillah

    zillah TS Rookie Topic Starter Posts: 87

    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 ?

    How can I go to grub command ? from Rescue CD or from Terminal ?
  5. Mictlantecuhtli

    Mictlantecuhtli TS Evangelist Posts: 4,916   +9

    GRUB manual

    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.
  6. zillah

    zillah TS Rookie Topic Starter Posts: 87

    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 ?
  7. Mictlantecuhtli

    Mictlantecuhtli TS Evangelist Posts: 4,916   +9

    Yes.
    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.
Topic Status:
Not open for further replies.


Add New Comment

TechSpot Members
Login or sign up for free,
it takes about 30 seconds.
You may also...


Get complete access to the TechSpot community. Join thousands of technology enthusiasts that contribute and share knowledge in our forum. Get a private inbox, upload your own photo gallery and more.