Dwight can't chainload worth diddley!

I’m trying to setup existing Linux partitions to boot using chainloader following instructions from here:

Cool Solutions: Install Linux Frequently, Without the Hassle

and here:

Error Loading Operating System after 11.3 fresh install

Here’s fdisk -l:

# fdisk -l

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0002e10d

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        2039    16378236   83  Linux
/dev/sda2            2040        5992    31744000   83  Linux
/dev/sda3            5992        6514     4200825   82  Linux swap / Solaris
/dev/sda4            6515      121601   924436297    5  Extended
/dev/sda5            6515        8554    16386268+  83  Linux
/dev/sda6            8555       12506    31744408+  83  Linux
/dev/sda7           12507       14546    16386268+  83  Linux
/dev/sda8           14547       18498    31744408+  83  Linux
/dev/sda9           18499       20538    16386268+  83  Linux
/dev/sda10          20539       24618    32772568+  83  Linux
/dev/sda11          24619       26658    16386268+  83  Linux
/dev/sda12          26659       30738    32772568+  83  Linux
/dev/sda13          30739       32778    16386268+  83  Linux
/dev/sda14          32779       36858    32772568+  83  Linux
/dev/sda15          55821      121601   528385851   83  Linux

Disk /dev/sdb: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000001

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

Current usage is:

/dev/sda1 openSuSE 11.3 x86_64 /
/dev/sda2 openSuSE 11.3 x86_64 /home
/dev/sda5 Fedora 13 Goddard x86_64 /
/dev/sda6 Fedora 13 Goddard x86_64 /home
/dev/sda7 Mandriva 2001.1 x86_64 /
/dev/sda8 Mandriva 2001.1 x86_64 /home

Partitions /dev/sda9 through /dev/sda15 are empty currently though /dev/sda15 is mounted in all 3 as /data1. /dev/sdb1 is a data partition mounted in all 3 distros as /data2. I created a /data2/boot directory and copied from openSuSE partiton /dev/sda1 /boot/grub/stage1 /boot/grub/stage2 and /boot/grub/menu.lst.

This is the contents of /data2/boot/menu.lst:

# Modified by YaST2. Last modification on Sat Jul 24 13:31:11 CDT 2010
# THIS FILE WILL BE PARTIALLY OVERWRITTEN by perl-Bootloader
# Configure custom boot parameters for updated kernels in /etc/sysconfig/bootloader

default 0
timeout 10
gfxmenu (hd0,0)/boot/message

###Don't change this comment - YaST2 identifier: Original name: linux###
title Desktop -- openSUSE 11.3 - 2.6.34-12
    root (hd0,0)
    kernel /boot/vmlinuz-2.6.34-12-desktop root=/dev/disk/by-id/ata-WDC_WD1001FALS-00J7B1_WD-WMATV3570743-part1 resume=/dev/disk/by-id/ata-WDC_WD1001FALS-00J7B1_WD-WMATV3570743-part3 splash=silent quiet nomodeset showopts vga=0x317
    initrd /boot/initrd-2.6.34-12-desktop

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 11.3 - 2.6.34-12
    root (hd0,0)
    kernel /boot/vmlinuz-2.6.34-12-desktop root=/dev/disk/by-id/ata-WDC_WD1001FALS-00J7B1_WD-WMATV3570743-part1 showopts apm=off noresume edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe vga=0x317
    initrd /boot/initrd-2.6.34-12-desktop

###Don't change this comment - YaST2 identifier: Original name:  Fedora (2.6.33.6-147.fc13.x86_64) (/dev/sda5)###
title Fedora 13 (Goddard) (x86_64) (/dev/sda5)
    root (hd0,4)
    configfile /boot/grub/menu.lst

###Don't change this comment - YaST2 identifier: Original name:  linux (/dev/sda7)###
title Mandriva Linux 2010.1 (x86_64) (/dev/sda7)
    root (hd0,6)
    configfile /boot/grub/menu.lst

title openSuSE chainloader on (/dev/sda1)
    chainloader (hd0,0)+1

title Fedora chainloader on (/dev/sdb5) 
    chainloader (hd0,4)+1

title Mandriva chainloader on (/dev/sda7) 
    chainloader (hd0,6)+1

It is the chainloader entries that do not work. The other entries do work.

BIOS is currently set to boot from /dev/sda or hd0. I used suse 11.3 x86_64 install DVD in rescue mode to run these commands:

# grub

>grub
install (hd1,0)/boot/stage1 d (hd0) (hd1,0)/boot/stage2 (hd1,0)/boot/menu.lst

find /boot/grub/menu.lst
(hd0,0)
(hd0,4)
(hd0,6)

root (hd0,6)

setup (hd0,6)

root (hd0,4)

setup (hd0,4)

root (hd0,0)

setup (hd0,0)

and nothing chainloads. The openSuSE and Mandriva chainload entries result in black screen with:

chainloader (hd0,0)+1
GRUB_
chainloader (hd0,6)+1
GRUB_

the Fedora chainloader simply does nothing and reboots. Obviously I’m not doing this right. How do I set up current Linux partitions to boot using chainloader? Were the instructions I used outdated? Can I even do this? Or did I somewhere along the way get syntax wrong?:’( This is admittedly a little complex but I attempted to copy and paste as much as possible for this post to be as accurate as possible.

Fedora uses GRUB 2. I believe openSuSE and Mandriva use what is now called by some as “legacy GRUB”.

The chainloader statements belong WITH the entries they are to activate with not in a separate define I think such as when you switch to window partition to continue the boot.

Thusly, Don’t chainload openSUSE or Failsafe as they are already set to run right.

###Don’t change this comment - YaST2 identifier: Original name: Fedora (2.6.33.6-147.fc13.x86_64) (/dev/sda5)###
title Fedora 13 (Goddard) (x86_64) (/dev/sda5)
root (hd0,4)
configfile /boot/grub/menu.lst
** Modify here with chainload statement

###Don’t change this comment - YaST2 identifier: Original name: linux (/dev/sda7)###
title Mandriva Linux 2010.1 (x86_64) (/dev/sda7)
root (hd0,6)
configfile /boot/grub/menu.lst
** Modify here with chainload statement

not sure but I think it follows the same as for windows 7 as just
chainloader +1

Not sure if I understand your point. If what you say is true then why don’t these entries work?

/data2/boot/menu.lst:

title Fedora chainloader on (/dev/sda5) 
    chainloader (hd0,4)+1

title Mandriva chainloader on (/dev/sda7) 
    chainloader (hd0,6)+1

If this is your menu for suse:

# Modified by YaST2. Last modification on Sat Jul 24 13:31:11 CDT 2010
# THIS FILE WILL BE PARTIALLY OVERWRITTEN by perl-Bootloader
# Configure custom boot parameters for updated kernels in /etc/sysconfig/bootloader

default 0
timeout 10
gfxmenu (hd0,0)/boot/message

###Don't change this comment - YaST2 identifier: Original name: linux###
title Desktop -- openSUSE 11.3 - 2.6.34-12
    root (hd0,0)
    kernel /boot/vmlinuz-2.6.34-12-desktop root=/dev/disk/by-id/ata-WDC_WD1001FALS-00J7B1_WD-WMATV3570743-part1 resume=/dev/disk/by-id/ata-WDC_WD1001FALS-00J7B1_WD-WMATV3570743-part3 splash=silent quiet nomodeset showopts vga=0x317
    initrd /boot/initrd-2.6.34-12-desktop

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 11.3 - 2.6.34-12
    root (hd0,0)
    kernel /boot/vmlinuz-2.6.34-12-desktop root=/dev/disk/by-id/ata-WDC_WD1001FALS-00J7B1_WD-WMATV3570743-part1 showopts apm=off noresume edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe vga=0x317
    initrd /boot/initrd-2.6.34-12-desktop

###Don't change this comment - YaST2 identifier: Original name:  Fedora (2.6.33.6-147.fc13.x86_64) (/dev/sda5)###
title Fedora 13 (Goddard) (x86_64) (/dev/sda5)
    root (hd0,4)
    configfile /boot/grub/menu.lst

###Don't change this comment - YaST2 identifier: Original name:  linux (/dev/sda7)###
title Mandriva Linux 2010.1 (x86_64) (/dev/sda7)
    root (hd0,6)
    configfile /boot/grub/menu.lst

I edited out the other stuff that is not necessary.
Those configfile entries look correct.

This is what I would do:
Switch my bootflag to sda4 using Parted
Then with live cd and su - terminal do:

grub
find /boot/grub/menu.lst

the entry we want is (hd0,0), so we do:

root (hd0,0)

Computer returns like this ---- Filesystem type is ext2fs, partition type 0x83

Now we do:

setup (hd0)

caf4926
Then with live cd and su - terminal do:

grub
find /boot/grub/menu.lst

the entry we want is (hd0,0), so we do:

root (hd0,0)

Computer returns like this ---- Filesystem type is ext2fs, partition type 0x83

Now we do:

setup (hd0)

Thanks caf4926 and all of you for your help. As mentioned in 1st post I did that from 11.3 DVD in Rescue mode:

BIOS is currently set to boot from /dev/sda or hd0. Grub stage1, stage2, and menu.lst are on hd1,0 aka /data2. I used suse 11.3 x86_64 install DVD in rescue mode to run these commands:

# grub

>grub
install (hd1,0)/boot/stage1 d (hd0) (hd1,0)/boot/stage2 (hd1,0)/boot/menu.lst

grub> find /boot/grub/menu.lst
(hd0,0)
(hd0,4)
(hd0,6)

grub> root (hd0,0)
 Filesystem type is ext2fs, partition type 0x83

grub> setup (hd0,0)
 Checking if "/boot/grub/stage1" exists... yes
 Checking if "/boot/grub/stage2" exists... yes
 Checking if "/boot/grub/e2fs_stage1_5" exists... yes
 Running "embed /boot/grub/e2fs_stage1_5 (hd0,0)"... failed (this is not fatal)
 Running "embed /boot/grub/e2fs_stage1_5 (hd0,0)"... failed (this is not fatal)
 Running "install /boot/grub/stage1 (hd0,0) /boot/grub/stage2 p /boot/grub/menu.lst "... succeeded
Done.

grub> root (hd0,4)
 Filesystem type is ext2fs, partition type 0x83

grub> setup (hd0,4)
 Checking if "/boot/grub/stage1" exists... yes
 Checking if "/boot/grub/stage2" exists... yes
 Checking if "/boot/grub/e2fs_stage1_5" exists... yes
 Running "embed /boot/grub/e2fs_stage1_5 (hd0,4)"... failed (this is not fatal)
 Running "embed /boot/grub/e2fs_stage1_5 (hd0,4)"... failed (this is not fatal)
 Running "install /boot/grub/stage1 (hd0,4) /boot/grub/stage2 p /boot/grub/menu.lst "... succeeded
Done.

grub> root (hd0,6)
 Filesystem type is ext2fs, partition type 0x83

grub> setup (hd0,6)
 Checking if "/boot/grub/stage1" exists... yes
 Checking if "/boot/grub/stage2" exists... yes
 Checking if "/boot/grub/e2fs_stage1_5" exists... yes
 Running "embed /boot/grub/e2fs_stage1_5 (hd0,6)"... failed (this is not fatal)
 Running "embed /boot/grub/e2fs_stage1_5 (hd0,6)"... failed (this is not fatal)
 Running "install /boot/grub/stage1 (hd0,6) /boot/grub/stage2 p /boot/grub/menu.lst "... succeeded
Done.

grub> quit

That all works. I was writing the chainloader entries wrong. This [/data2/boot/menu.lst] is working:

# Modified by YaST2. Last modification on Sat Jul 24 13:31:11 CDT 2010
# THIS FILE WILL BE PARTIALLY OVERWRITTEN by perl-Bootloader
# Configure custom boot parameters for updated kernels in /etc/sysconfig/bootloader

default 0
timeout 10
gfxmenu (hd0,0)/boot/message

title openSuSE on (/dev/sda1) 
    root (hd0,0)
    chainloader +1

title Fedora on (/dev/sda5) 
    root (hd0,4)
    chainloader +1 

title Mandriva on (/dev/sda7) 
    root (hd0,6)
    chainloader +1

title Linux on (/dev/sda9) 
    root (hd0,8)
    chainloader +1

title Linux on (/dev/sda11) 
    root (hd0,10)
    chainloader +1

title Linux on (/dev/sda13) 
    root (hd0,12)
    chainloader +1

The goal was to set up a system so that I can install freely to any one of 6 separate root and 6 /home partitions without worrying about one of the others getting left out because of something on the MBR. The MBR is linked to a separate partition [/data2] which never gets formatted. So for each install I just install boot or grub to it’s own / partition and it just boots. In other words it just works. You know. Like Windows.

That last part was humor. But you knew that. Right? Well I do know it is working for the 3 systems I have active now.