Need a dual-boot solution.

Hi. I need to make my computer dual-bootable from the GRUB menu. At the moment I use the BIOS’s F8 key during POST, but my sister needs access to programs on the Windows Vista partition.

My device.map:


(fd0)	/dev/fd0
(hd1)	/dev/sda
(hd0)	/dev/sdc
(hd2)	/dev/sdb

I don’t plan on changing the ordering, as it tends to mess up.

My menu.lst:


# Modified by YaST2. Last modification on Sat Apr 18 13:39:24 BST 2009
default 0
timeout 8
##YaST - activate
gfxmenu (hd0,1)/boot/message

###Don't change this comment - YaST2 identifier: Original name: linux###
title openSUSE 11.0 - 2.6.25.20-0.1
    root (hd0,1)
    kernel /boot/vmlinuz-2.6.25.20-0.1-pae root=/dev/disk/by-label/system resume=/dev/sdc1 splash=silent showopts vga=0x31a
    initrd /boot/initrd-2.6.25.20-0.1-pae

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 11.0 - 2.6.25.20-0.1
    root (hd0,1)
    kernel /boot/vmlinuz-2.6.25.20-0.1-pae root=/dev/disk/by-label/system showopts ide=nodma apm=off acpi=off noresume nosmp noapic maxcpus=0 edd=off x11failsafe vga=0x31a
    initrd /boot/initrd-2.6.25.20-0.1-pae

###Don't change this comment - YaST2 identifier: Original name: windows###
title Windows
    rootnoverify (hd0,1)
    chainloader (hd1,0)+1

###Don't change this comment - YaST2 identifier: Original name: floppy###
title Floppy
    rootnoverify (hd0,1)
    chainloader (fd0)+1

My grub.conf


setup --stage2=/boot/grub/stage2 (hd0) (hd0,1)
quit

Output of ‘fdisk -l’



Disk /dev/sda: 320.0 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0007af32

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1       38913   312568641   83  Linux

Disk /dev/sdb: 250.0 GB, 250059350016 bytes
240 heads, 63 sectors/track, 32301 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Disk identifier: 0x3923946c

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1       32302   244196352    7  HPFS/NTFS

Disk /dev/sdc: 73.4 GB, 73407488000 bytes
255 heads, 63 sectors/track, 8924 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0003ef77

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1         784     6297448+  82  Linux swap / Solaris
/dev/sdc2   *         785        8924    65384550   83  Linux

As you’ve probably noticed, YaST made a ‘Windows’ chainloader option during mi initial install. However, it does not work and I need to know how to change it without sending my GRUB into a SNAFUBAR state as I have done before.

Here’s how my Disks look in real life:


SATA-1 -- /dev/sda -- [HITACHI-HDP72503]
|--> /dev/sda1 -- [/home]

SATA-2 -- /dev/sdb -- [Maxtor-7Y250M0]
|-->  /dev/sdb1 -- [/windows/C]

SCSI -- /dev/sdc -- [IBM-ESXS-DTN073C1UCDY10F]
|-->  /dev/sdc1 -- [swap]
|-->  /dev/sdc2 -- /]

edit the windows boot in menu.lst to:

rootnoverify (hd1,0)
chainloader (hd1,0)+1

see if that does it
GRUB Boot Multiboot openSUSE Windows (2000, XP, Vista) using the Grub bootloader.

Thank you for your reply; much appreciated. However, the solution does not work as GRUB changes the entry back to:


    rootnoverify (hd0,1)
    chainloader (hd1,0)+1

I have tried to change it to ‘rootnoverify (hd1,0)’ at the GRUB menu however it throws this back at me:


      Booting Command List

rootnoverify (hd1,0)
chainloader (hd1,0)+1

Error 13: Invalid or unsupported executable format

Press any key to continue..._

GRUB does the same thing even with your solution, as it switches back to ‘rootnoverify (hd0,1)’.

I shall consult swerdna’s website, thank you for the link and reply. :slight_smile:

Just how are you editing the /boot/grub/menu.lst ??

Grub doesn’t just change it back!


map (hd2) (hd0)
map (hd0) (hd2)
rootnoverify (hd2,0)
chainloader +1

Vista doesn’t recognise map function

There’s a bug in one of the openSUSE releases, 11.1 I think, whereby edits of Grub’s config file don’t stick. This is fixed in a patch that’s available via Yast –> software –> Online Update. Use that for a full online update. Might help your edits to stick. (Of course, it might be something else that’s happening too).

Be it as it may, Vista is lying on hd2 if device.map is correct.


(hd2)	/dev/sdb

Disk /dev/sdb: 250.0 GB, 250059350016 bytes
240 heads, 63 sectors/track, 32301 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Disk identifier: 0x3923946c

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1       32302   244196352    7  HPFS/NTFS

I don’t know if the map-command will be ignored then or if it really will prevent Vista from booting, but trying with and without mapping will certainly do no harm.

Vista will ignore the map and cary on with the booting. Having map there does no harm. Well spotted about the hd2.