Find the answer to your Linux question:
Results 1 to 9 of 9
Greeting! Noobish question on multibooting multiple Linux distros. I have four of the current major Linux distributions. Each has been installed and run individually (no other Linux distribution installed) in ...
Enjoy an ad free experience by logging in. Not a member yet? Register.
  1. #1
    Just Joined!
    Join Date
    Mar 2010
    Posts
    5

    Multibooting multiple Linux distros


    Greeting!

    Noobish question on multibooting multiple Linux distros.

    I have four of the current major Linux distributions. Each has been installed and run individually (no other Linux distribution installed) in a dual-boot configuration with Windoze. No problem.

    What I want to do is install all four Linux distributions and multiboot them. Reading the internet it would seem this is a simple task with GRUB. The short version being - install a Linux distro with a separate /boot partition for GRUB and use GRUB to boot the other Linux distros from the GRUB boot menu.

    So I installed one of the Linux distros with a separate partition for /boot. The distro installer installed GRUB in /boot and correctly setup a dual-boot configuration with Windoze. GRUB was installed to the MBR.

    Next I installed a second Linux distro in its own root partition and told the distros installer NOT to install GRUB to the MBR, but rather, to the boot sector of the root partion of the second Linux distro. Installation was uneventful (and I could access the second Linux partition from the first installed Linux distro, things looked ok).

    Then I added to following to the installed (MBR - /boot) GRUB's menu.lst:

    Code:
    title lixux distro 2
    root (hd0,7)
    chainloader +1
    After which I rebooted the system and the new entry for the second Linux distro now appears in the GRUB boot menu. I selected the second Linux distro from the boot menu and got the following GRUB error:

    Error 5 : Partition table invalid or corrupt

    Hmmm...fdisk, GParted, and Super GRUB Disk don't think the partition table is toast and I can still boot to the first Linux distro and Windoze from GRUB.

    Next I check the menu.lst created by the installer of the second Linux distro which is as follows:

    Code:
    # grub.conf generated by anaconda
    #
    # 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,7)
    #          kernel /boot/vmlinuz-version ro root=/dev/hde8
    #          initrd /boot/initrd-version.img
    #boot=/dev/hde8
    default=0
    timeout=5
    splashimage=(hd0,7)/boot/grub/splash.xpm.gz
    hiddenmenu
    title Scientific Linux (2.6.18-164.2.1.el5)
    	root (hd0,7)
    	kernel /boot/vmlinuz-2.6.18-164.2.1.el5 ro root=LABEL=/ rhgb quiet
    	initrd /boot/initrd-2.6.18-164.2.1.el5.img
    title Other
    	rootnoverify (hd1,0)
    	chainloader +1
    Okay, it is different, so let's copy the relevant part to the installed menu.lst and try again. So the following was added to the installed GRUB's menu.lst (of course removing the original chainloader entry attempt):

    Code:
    splashimage=(hd0,7)/boot/grub/splash.xpm.gz
    hiddenmenu
    title Scientific Linux (2.6.18-164.2.1.el5)
    	root (hd0,7)
    	kernel /boot/vmlinuz-2.6.18-164.2.1.el5 ro root=LABEL=/ rhgb quiet
    	initrd /boot/initrd-2.6.18-164.2.1.el5.img
    Upon rebooting the system the boot menu shows the change. Selecting the second Linux distro from the boot menu results in the same GRUB Error 5 and I can still boot to the first Linux distro and Windoze.

    Checking and rechecking I cannot find the problem. I suspect there is something I missed in the multiboot configuration but have no clue as to what it might be.

    For yuks, here is the output from fdisk:

    Code:
    linux-xqyj:~ # fdisk -l
    
    Disk /dev/sda: 120.0 GB, 120034123776 bytes
    255 heads, 63 sectors/track, 14593 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Disk identifier: 0x2b072b07
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1       14593   117218241    7  HPFS/NTFS
    
    Disk /dev/sdb: 500.1 GB, 500107862016 bytes
    255 heads, 63 sectors/track, 60801 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Disk identifier: 0x000e0a41
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1               1         262     2104483+  83  Linux
    /dev/sdb2             263        1306     8385930   82  Linux swap / Solaris
    /dev/sdb3            1307       60801   477893587+   f  W95 Ext'd (LBA)
    /dev/sdb5            1307       16971   125829081   83  Linux
    /dev/sdb6           16972       22193    41945683+  83  Linux
    /dev/sdb7           22194       32636    83883366   83  Linux
    /dev/sdb8   *       32637       37735    40957686   83  Linux
    Note that sdb above is actually the boot disk where GRUB is installed in the MBR, boot order is selected in the BIOS and works correctly.

    Any help?

    TIA

  2. #2
    Linux Guru Jonathan183's Avatar
    Join Date
    Oct 2007
    Posts
    3,043
    Welcome to the forums dkwilson

    You are unlikely to need to create a separate boot partition, but on the basis you already have it lets see if we can get things to work the way you want ...
    you are using label=... to identify partitions, have you created more than one partition with the same label? can you post the output of
    Code:
    ls /dev/disk/by-label -l

  3. #3
    Just Joined!
    Join Date
    Mar 2010
    Posts
    5
    Quote Originally Posted by Jonathan183 View Post
    Welcome to the forums dkwilson

    You are unlikely to need to create a separate boot partition, but on the basis you already have it lets see if we can get things to work the way you want ...
    you are using label=... to identify partitions, have you created more than one partition with the same label? can you post the output of
    Code:
    ls /dev/disk/by-label -l
    Jonathan183: here's the labels, no duplicates:

    Code:
    cosmic@linux-xqyj:~> ls /dev/disk/by-label -l
    total 0
    lrwxrwxrwx 1 root root 10 2010-03-26 16:33 DRV1_VOL1 -> ../../sda1
    lrwxrwxrwx 1 root root 10 2010-03-26 16:33 SUSE -> ../../sdb6
    lrwxrwxrwx 1 root root 10 2010-03-26 16:33 \x2f -> ../../sdb8
    cosmic@linux-xqyj:~>

  4. #4
    Linux Guru Jonathan183's Avatar
    Join Date
    Oct 2007
    Posts
    3,043
    What is the output of
    Code:
    mount
    and
    Code:
    cat /boot/grub/menu.lst

  5. #5
    Just Joined!
    Join Date
    Mar 2010
    Posts
    5
    Jonathan183:

    Since last here I have reinstalled the two Linux distros a few times to try to resolve the problem. Alas, no change.

    Although the distro should not matter since this is an issue of multibooting any distro with GRUB, I will mention the distros. The two distros that I am working with are openSUSE 11.2 and Scientific Linux 5.4. openSUSE is installed first with its GRUB (legacy) installed to the MBR. Scientific Linux is installed second. On the last install of SL I did not make custom partitions but instead let Anaconda create default partitions from free disk space. Anaconda created a /boot partition (sd8 ) for SL and an LVM partition (sd9). Letting Anaconda do its thing did not alter the boot problem.

    Since I reinstalled everything some previous info changed, so I'll just update everything to be clear.

    The partitions are:
    Code:
    linux-zx2q:~ # fdisk -l
    
    Disk /dev/sda: 120.0 GB, 120034123776 bytes
    255 heads, 63 sectors/track, 14593 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Disk identifier: 0x2b072b07
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1       14593   117218241    7  HPFS/NTFS
    
    Disk /dev/sdb: 500.1 GB, 500107862016 bytes
    255 heads, 63 sectors/track, 60801 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Disk identifier: 0x00008ec3
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1               1         262     2104483+  83  Linux
    /dev/sdb2             263        1306     8385930   82  Linux swap / Solaris
    /dev/sdb3            1307       60801   477893587+   f  W95 Ext'd (LBA)
    /dev/sdb5            1307       16971   125829081   83  Linux
    /dev/sdb6           16972       22193    41945683+  83  Linux
    /dev/sdb7           22194       32636    83883366   83  Linux
    /dev/sdb8   *       32637       32649      104391   83  Linux
    /dev/sdb9           32650       60801   226130908+  8e  Linux LVM
    Labels are:
    Code:
    linux-zx2q:~ # ls /dev/disk/by-label -l
    total 0
    lrwxrwxrwx 1 root root 10 Mar 27 20:23 DRV1_VOL1 -> ../../sda1
    lrwxrwxrwx 1 root root 10 Mar 27 20:23 SUSE -> ../../sdb6
    lrwxrwxrwx 1 root root 10 Mar 27 20:23 \x2fboot -> ../../sdb8
    Mounts are:
    Code:
    linux-zx2q:~ # mount
    /dev/sdb6 on / type ext4 (rw,acl,user_xattr)
    proc on /proc type proc (rw)
    sysfs on /sys type sysfs (rw)
    debugfs on /sys/kernel/debug type debugfs (rw)
    udev on /dev type tmpfs (rw)
    devpts on /dev/pts type devpts (rw,mode=0620,gid=5)
    /dev/sdb1 on /boot type ext4 (rw,acl,user_xattr)
    /dev/sdb5 on /home type ext4 (rw,acl,user_xattr)
    /dev/sdb7 on /tmp type ext4 (rw,acl,user_xattr)
    fusectl on /sys/fs/fuse/connections type fusectl (rw)
    securityfs on /sys/kernel/security type securityfs (rw)
    gvfs-fuse-daemon on /home/cosmic/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=cosmic)
    The menu.lst of the MBR GRUB (openSUSE) is:
    Code:
    # Modified by YaST2. Last modification on Sat Mar 27 20:40:27 EDT 2010
    # THIS FILE WILL BE PARTIALLY OVERWRITTEN by perl-Bootloader
    # Configure custom boot parameters for updated kernels in /etc/sysconfig/bootloader
    
    default 0
    timeout 8
    gfxmenu (hd0,0)/message
    
    ###Don't change this comment - YaST2 identifier: Original name: linux###
    title openSUSE 11.2 - 2.6.31.5-0.1
        root (hd0,0)
        kernel /vmlinuz-2.6.31.5-0.1-default root=/dev/disk/by-id/ata-WDC_WD5000AAKB-00H8A0_WD-WCASY8802778-part6 resume=/dev/disk/by-id/ata-WDC_WD5000AAKB-00H8A0_WD-WCASY8802778-part2 splash=silent quiet showopts vga=0x31a
        initrd /initrd-2.6.31.5-0.1-default
    
    ###Don't change this comment - YaST2 identifier: Original name: failsafe###
    title Failsafe -- openSUSE 11.2 - 2.6.31.5-0.1
        root (hd0,0)
        kernel /vmlinuz-2.6.31.5-0.1-default root=/dev/disk/by-id/ata-WDC_WD5000AAKB-00H8A0_WD-WCASY8802778-part6 showopts apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 x11failsafe vga=0x31a
        initrd /initrd-2.6.31.5-0.1-default
    
    ###Extracted from grub.conf created by Anaconda installer###
    splashimage=(hd0,7)/grub/splash.xpm.gz
    hiddenmenu
    title Scientific Linux (2.6.18-164.2.1.el5)
    	root (hd0,7)
    	kernel /vmlinuz-2.6.18-164.2.1.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
    	initrd /initrd-2.6.18-164.2.1.el5.img
    
    ###Don't change this comment - YaST2 identifier: Original name: windows###
    title Windows
        map (hd1) (hd0)
        map (hd0) (hd1)
        rootnoverify (hd1,0)
        makeactive
        chainloader +1
    The device.map of the MBR GRUB (openSUSE) is:
    Code:
    (hd0)	/dev/disk/by-id/ata-WDC_WD5000AAKB-00H8A0_WD-WCASY8802778
    (hd1)	/dev/disk/by-id/ata-WDC_WD1200JB-00GVA0_WD-WCALA2021057
    Note that I set the BIOS boot order so I can leave Windoze on a separate drive and boot via chainloading from GRUB rather than muck around with the MBR of the Windoze drive.

    The menu.lst (grub.conf) created by SL Anaconda is:
    Code:
    # grub.conf generated by anaconda
    #
    # Note that you do not have to rerun grub after making changes to this file
    # NOTICE:  You have a /boot partition.  This means that
    #          all kernel and initrd paths are relative to /boot/, eg.
    #          root (hd0,7)
    #          kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
    #          initrd /initrd-version.img
    #boot=/dev/hde8
    default=0
    timeout=5
    splashimage=(hd0,7)/grub/splash.xpm.gz
    hiddenmenu
    title Scientific Linux (2.6.18-164.2.1.el5)
    	root (hd0,7)
    	kernel /vmlinuz-2.6.18-164.2.1.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
    	initrd /initrd-2.6.18-164.2.1.el5.img
    title Other
    	rootnoverify (hd1,0)
    	chainloader +1
    To recap, from the GRUB menu list I can boot to either openSUSE or Windoze with no problem. When I select SL, I get the following error from GRUB:
    Code:
    root (hd0,7)
    Error 5: Partition table invalid or corrupt
    Press any key to continue...
    Again, thanks for your help!

  6. #6
    Linux Guru Jonathan183's Avatar
    Join Date
    Oct 2007
    Posts
    3,043
    I think this may be a grub/BIOS issue, and the problems may be due to 1024 cylinder limit ... in some instances grub is not able to boot from a partition above 1024 cylinders. You could test this out by placing your boot partition on the hard drive around the same place you currently have swap. Make sure it does not exceed 1024 cylinder limit and see if you are able to boot both versions of Linux.

    btw if you install scientific linux grub to the MBR will the system boot?

  7. #7
    Just Joined!
    Join Date
    Mar 2010
    Posts
    5
    Jonathan183,

    Ouch! I was hoping you would see some error in my ways!!!

    I think this may be a grub/BIOS issue, and the problems may be due to 1024 cylinder limit ... in some instances grub is not able to boot from a partition above 1024 cylinders. You could test this out by placing your boot partition on the hard drive around the same place you currently have swap. Make sure it does not exceed 1024 cylinder limit and see if you are able to boot both versions of Linux.
    I doubt that the BIOS is an issue as it is ACPI and EDD 3.0 compliant (newer machine) and does support LBA and so large drives. (BTW, in a former life I designed motherboards for a major industry player.)

    The large hard drive is connected via a PCI ATA card (Sil680 based) so I really don't suspect any problem there - vanilla stuff.

    GRUB? Maybe, but my system is very plain jane common.

    btw if you install scientific linux grub to the MBR will the system boot?
    Yes, did that before attempting multiboot. In fact, I installed Fedora, Mint, openSUSE, Scientific Linux, and Ubuntu individually. All distros installed an booted fine. In fact, all distro installers correctly setup the dual-boot with Windoze.

    In the off chance that somehow the old 8Gb limit is the problem I will put SL boot in the /boot partition at sdb1 (the boot partition for SUSE) and see it that makes a difference.

    If I can take the GRUB error at face value, that implies that Anaconda is barfing. Dunno.

    Another option is to install some other distro in place of SL to see what happens. Have not changed the distro mix yet because I'm not sure where the problem is (and I'm new to Linux so it could easily be moi).

    Any case, I'll move the boot below 8Gb and if that doesn't work replace SL with another distro and report my findings.

  8. #8
    Just Joined!
    Join Date
    Mar 2010
    Posts
    5
    Jonathan183:

    Got it working!

    What I did was to create the directory /boot/sl in the SUSE /boot partition, sdb1 (the SUSE installed GRUB is on the MBR of the drive). Then I copied the kernel files from the SL /boot partition ( sdb8 ) to /boot/sl in the SUSE /boot partition and modified menu.lst as follows:

    Code:
    # Modified by YaST2. Last modification on Sun Mar 28 22:19:16 EDT 2010
    # THIS FILE WILL BE PARTIALLY OVERWRITTEN by perl-Bootloader
    # Configure custom boot parameters for updated kernels in /etc/sysconfig/bootloader
    
    default 0
    timeout 8
    gfxmenu (hd0,0)/message
    
    ###Don't change this comment - YaST2 identifier: Original name: linux###
    title openSUSE 11.2 - 2.6.31.12-0.2
        root (hd0,0)
        kernel /vmlinuz-2.6.31.12-0.2-default root=/dev/disk/by-id/ata-WDC_WD5000AAKB-00H8A0_WD-WCASY8802778-part6 resume=/dev/disk/by-id/ata-WDC_WD5000AAKB-00H8A0_WD-WCASY8802778-part2 splash=silent quiet showopts vga=0x31a
        initrd /initrd-2.6.31.12-0.2-default
    
    ###Don't change this comment - YaST2 identifier: Original name: failsafe###
    title Failsafe -- openSUSE 11.2 - 2.6.31.12-0.2
        root (hd0,0)
        kernel /vmlinuz-2.6.31.12-0.2-default root=/dev/disk/by-id/ata-WDC_WD5000AAKB-00H8A0_WD-WCASY8802778-part6 showopts apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 x11failsafe vga=0x31a
        initrd /initrd-2.6.31.12-0.2-default
    
    title Scientific Linux (2.6.18-164.2.1.el5)
    	root (hd0,0)
    	kernel /boot/sl/vmlinuz-2.6.18-164.2.1.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
    	initrd /boot/sl/initrd-2.6.18-164.2.1.el5.img
    
    ###Don't change this comment - YaST2 identifier: Original name: windows###
    title Windows
        map (hd1) (hd0)
        map (hd0) (hd1)
        rootnoverify (hd1,0)
        makeactive
        chainloader +1
    Now SL boots when selected from the GRUB menu. This is how I wanted to do this to begin with - I must have screwed something up in my earlier attempts.

    I could not chainload SL which implies that Anaconda did not write GRUB stage1 to the boot sector of the selected partition or that GRUB choked. Dunno.

    Why SL could not boot from /boot in sdb8 is a mystery. I am certain there is no issue with 1024 cylinders so GRUB may be the culprit.

    Stuff to look at later...in the meantime gonna install more distros.

    Thanks for your input, it was quite helpful!

  9. #9
    Linux Guru Jonathan183's Avatar
    Join Date
    Oct 2007
    Posts
    3,043
    Quote Originally Posted by dkwilson View Post
    Code:
    title Scientific Linux (2.6.18-164.2.1.el5)
        root (hd0,0)
        kernel /boot/sl/vmlinuz-2.6.18-164.2.1.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
        initrd /boot/sl/initrd-2.6.18-164.2.1.el5.img
    ... I am certain there is no issue with 1024 cylinders so GRUB may be the culprit.
    I think the 1024 cylinder may be the issue, what you have done is moved the kernel to SUSE boot partition which is within 1024 cylinder limit.

    Anyway ... glad you got things sorted

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •