Trying to dual boot OpenSUSE and Ubuntu

I am new to all this:

I installed Ubuntu 10.x (latest version) first on partition 1, and installed OpenSUSE on partition2 and it didn’t give me option for Ubuntu in boot menu.

So I attempted to add it to menu.lst and here is how it is:

# Modified by YaST2. Last modification on Tue Feb  7 19:26:50 EST 2012
# THIS FILE WILL BE PARTIALLY OVERWRITTEN by perl-Bootloader
# For the new kernel it try to figure out old parameters. In case we are not able to recognize it (e.g. change of flavor or strange install order ) it it use as fallback installation parameters from /etc/sysconfig/bootloader

default 0
timeout 8
##YaST - generic_mbr
gfxmenu (hd0,2)/boot/message
##YaST - activate

###Don't change this comment - YaST2 identifier: Original name: linux###
title Desktop -- openSUSE 12.1 - 3.1.0-1.2
    root (hd0,2)
    kernel /boot/vmlinuz-3.1.0-1.2-desktop root=/dev/disk/by-id/ata-HTS541040G9AT00_MPB2LAX2H0295M-part3 resume=/dev/disk/by-id/ata-HTS541040G9AT00_MPB2LAX2H0295M-part5 splash=silent quiet showopts vga=0x314
    initrd /boot/initrd-3.1.0-1.2-desktop

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 12.1 - 3.1.0-1.2
    root (hd0,2)
    kernel /boot/vmlinuz-3.1.0-1.2-desktop root=/dev/disk/by-id/ata-HTS541040G9AT00_MPB2LAX2H0295M-part3 showopts apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe vga=0x314
    initrd /boot/initrd-3.1.0-1.2-desktop

###Don't change this comment - YaST2 identifier: Original name: Ubuntu###
title Failsafe -- Ubuntu - main
    root (hd0,1)
    kernel /boot/vmlinuz-2.6.32-38-generic root=UUID=0a1f19c7-6fe9-47ba-887d-1cc96d4c6c7d ro   quiet splash
    initrd /boot/initrd.img-2.6.32-38-generic

I took info from grub.cfg on the Ubuntu partition:

menuentry 'Ubuntu, with Linux 2.6.32-38-generic' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	insmod ext2
	set root='(hd0,1)'
	search --no-floppy --fs-uuid --set 0a1f19c7-6fe9-47ba-887d-1cc96d4c6c7d
	linux	/boot/vmlinuz-2.6.32-38-generic root=UUID=0a1f19c7-6fe9-47ba-887d-1cc96d4c6c7d ro   quiet splash
	initrd	/boot/initrd.img-2.6.32-38-generic

But i get an:
Error 1: Cannot mount selected partition.

So not sure what to do next. Any help would be great!

That’s very bad. This two Grub versions use a totally different syntax.
This is what you need:

###Don't change this comment - YaST2 identifier: Original name: Ubuntu###
title  Ubuntu, with Linux 2.6.32-38-generic
	root (hd0,0)
	kernel /boot/vmlinuz-2.6.32-38-generic root=UUID=0a1f19c7-6fe9-47ba-887d-1cc96d4c6c7d ro   quiet splash
	initrd	/boot/initrd.img-2.6.32-38-generic
  • notice that (hd0,0) for Legacy Grub (openSUSE) is (hd0,1) for grub2 (Ubuntu).

Or you can install updategrub for openSUSE, which will add other distros boot entries for you.

su -l
zypper ar [noparse]http://download.opensuse.org/repositories/home:/please_try_again/openSUSE_12.1/[/noparse]  PTA
zypper refresh -r PTA
zypper in updategrub
updategrub -i

http://forums.opensuse.org/english/get-technical-help-here/how-faq-forums/advanced-how-faq-read-only/458238-updategrub-opensuse-legacy-grub-not-update-grub.html#post2329167

Thanks that did the trick. hehe yea i noticed the differences between the two and thought hmmm not good.

Or you can install updategrub for openSUSE, which will add other distros boot entries for you.

Thanks that sounds good too.

#corrections:
Error 17: Cannot mount selected partition.

I typically use this

###Don't change this comment - YaST2 identifier: Original name: Ubuntu###
title Ubuntu
    root (hd0,0)
    kernel /vmlinuz root=/dev/sda1 ro quiet splash
    initrd /initrd.img

Hum… Syntax is not a matter of taste (unlike I read in some howtos) …except maybe in poetry. But poems don’t have to boot in any situation. In system files, device names should be avoided until the Linux kernel has found a consistent way to name devices.

I used updategrub, but when I select the other Linux distribution, I get the following error message after it tries to boot:

root (hd0,1)
 Filesystem type is ext2fs, partition type 0x83
kernel /boot/vmlinuz-2.6.37-netbook-lp-HR
ro root=/dev/sda2 quiet vga = current fastboot acpi_osi=Linux
i8042.noloop=1 i8042.reset loglevel=0 acpi_sleep=s3_bios acpi_backlight=vendor ...]

Error 23: Error while parsing number

It may have something to do with the mountpoint, but I don’t know. I read that it wasn’t a good idea to give both partitions root as a mount point, and the partioner wouldn’t allow it anyway. So I made /linpus the mountpoint.

How can I get the other distribution - Linpus Lite Meego, it came pre-installed with the computer, and I didn’t take a good look at it before installing openSUSE - to boot?

If you installed updategrub from repo, you will have findgrub as well. You can run findgrub as root in a terminal and post the output here. If you mean that you mounted the other distro in the mountpoint /linpus during openSUSE setup, it’s OK. You didn’t have to mount this partition at all, but this is not the problem.

Open a terminal, type the following commands and post the output here:


su -l
findgrub
fdisk -l
cat /boot/grub/menu.lst

Something that noone has mentioned yet. You said this

I installed Ubuntu 10.x (latest version)

I am assuming you mean Ubuntu 10.10, but 10.10 is not the latest version; in fact, 10.10 is no longer supported. I suggest downloading an iso of the current latest version, 11.10 oneiric, if you still wish to continue trying Ubuntu.

Okay, here’s the output from findgrub:

Find Grub Version 3.7.2 - Written for openSUSE Forums

 - reading MBR on disk /dev/sda                       ... --> SUSE Generic MBR (Sig: 0x31d41f2e)
 - reading bootsector  /dev/sda1      (LINUX)         ...
 - reading bootsector  /dev/sda2   *  (LINUX)         ... --> Legacy GRUB  found in /dev/sda2   => sda6   0x83 (openSUSE)
 - reading bootsector  /dev/sda3      (Extended)      ... --> Legacy GRUB  found in /dev/sda3   => sda6   0x83 (openSUSE)
 - skipping partition  /dev/sda5      (swap)         
 - reading bootsector  /dev/sda6      (LINUX)         ...
 - reading bootsector  /dev/sda7      (LINUX)         ...

And the output for fdisk -l:

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x1f2e31d4

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048     7839719     3918836   83  Linux
/dev/sda2   *     7839720    28804543    10482412   83  Linux
/dev/sda3        28805120   976773119   473984000    f  W95 Ext'd (LBA)
/dev/sda5        28807168    33013759     2103296   82  Linux swap / Solaris
/dev/sda6        33015808    74958847    20971520   83  Linux
/dev/sda7        74960896   976752639   450895872   83  Linux

and the output from cat /boot/grub/menu.lst

# Modified by YaST2. Last modification on Mon Mar 12 16:19:50 CET 2012
# THIS FILE WILL BE PARTIALLY OVERWRITTEN by perl-Bootloader
# For the new kernel it try to figure out old parameters. In case we are not able to recognize it (e.g. change of flavor or strange install order ) it it use as fallback installation parameters from /etc/sysconfig/bootloader

default 0
timeout 8
##YaST - generic_mbr
gfxmenu (hd0,5)/boot/message
##YaST - activate

###Don't change this comment - YaST2 identifier: Original name: linux###
title openSUSE 12.1
    root (hd0,5)
    kernel /boot/vmlinuz-3.1.9-1.4-desktop root=/dev/disk/by-id/ata-Hitachi_HTS547550A9E384_J2150050GZZZKC-part6    resume=/dev/disk/by-id/ata-Hitachi_HTS547550A9E384_J2150050GZZZKC-part5 splash=silent quiet showopts vga=0x317
    initrd /boot/initrd-3.1.9-1.4-desktop

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 12.1
    root (hd0,5)
    kernel /boot/vmlinuz-3.1.9-1.4-desktop root=/dev/disk/by-id/ata-Hitachi_HTS547550A9E384_J2150050GZZZKC-part6 showopts apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset  x11failsafe vga=0x317
    initrd /boot/initrd-3.1.9-1.4-desktop

###Don't change this comment - YaST2 identifier: Original name: linpus###
#title Linpus Meego
#    rootnoverify (hd0)
#    rootnoverify(hd0,1)
#    makeactive
#    chainloader +1
###Don't change this comment - Added by updategrub Sat Mar 17 05:11:35 CET 2012###

###Don't change this comment - YaST2 identifier: Original name: meego###
title Linpus Lite for MeeGo (2.6.37-netbook-lp-HR)
    root (hd0,1)
    kernel /boot/vmlinuz-2.6.37-netbook-lp-HR ro root=/dev/sda2 quiet vga=current fastboot acpi_osi=Linux i8042.noloop=1 i8042.reset loglevel=0 acpi_sleep=s3_bios acpi_backlight=vendor

###Don't change this comment - YaST2 identifier: Original name: meego Legacy Grub on /dev/sda2###
title meego Legacy Grub in /dev/sda2
    rootnoverify (hd0,1)
    chainloader +1

###Don't change this comment - YaST2 identifier: Original name: openSUSE Legacy Grub on /dev/sda3###
title openSUSE Legacy Grub in /dev/sda3
    rootnoverify (hd0,2)
    chainloader +1

I should probably add that the third entry in menu.lst was added by me before I checked the forums and tried updategrub. The line ‘rootnoverify (hd0)’ was added automatically when I tried to boot after changing the file. Everything else was from updategrub.

Hope you’re still there. Thanks for your help!

Did you try

###Don't change this comment - YaST2 identifier: Original name: Ubuntu###
title Ubuntu
    root (hd0,1)
    kernel /vmlinuz root=/dev/sda2 ro quiet splash
    initrd /initrd.img

Sometimes (but not always) updategrub doesn’t find other (Grub2 based) distros kernels if the partitions are not mounted (usually they won’t be). Bizarrely once the partition has been mounted, it will work, even after it is unmounted. I keep having this problem from time to time while using updategrub on openSUSE and ArchLinux (both using Legacy grub) to add Fedora and Ubuntu kernels (both using Grub2). It is an os-prober bug and I’m still waiting for it to get fixed.
Since you installed updategrub, it will have installed os-prober. What is the output of os-prober then?


su -l
os-prober

If it doesn’t find the other distro, try to mount the other partitions one by one.

  • I should say that I never heard about “Linpus Meego”.

The output from os-prober is:

os-prober
  No volume groups found
/dev/sda2:MeeGo release 1.0 (MeeGo):MeeGo:linux

As far as I know, if you get an Acer with Linux as an operating system, it’s usually Linpus, which is taiwanese. My last Acer (may it rest in peace) also had Linpus on it, but I deleted it completely. MeeGo seems to have been an experimental operating system which several companies - including Novell - were working on. It was meant for mobile devices. I don’t know the current status; I think most of the companies pulled out.

I also tried

###Don't change this comment - YaST2 identifier: Original name: meego###
title Linpus Lite for MeeGo (2.6.37-netbook-lp-HR)
    root (hd0,1)
    kernel /boot/vmlinuz-2.6.37-netbook-lp-HR ro root=/dev/sda2 quiet vga=current fastboot acpi_osi=Linux i8042.noloop=1 i8042.reset loglevel=0 acpi_sleep=s3_bios acpi_backlight=vendor
    initrd /initrd.img

but I get the same error message when I try to boot the mysterious MeeGo.

OK. Next, what’s the output of linux-boot-prober?

linux-boot-prober /dev/sda2

And further, if you mount /dev/sda2, do you see a grub menu or something

su -l
mount -t ext4 /dev/sda2 /mnt
find /mnt/boot/grub* -name "menu.lst" -exec cat "{}" ";" -o -name "grub.cfg" -exec cat "{}" ";" 

The output of linux boot prober is as follows:

/dev/sda2:/dev/sda2:Linpus Lite for MeeGo (2.6.37-netbook-lp-HR):/boot/vmlinuz-2.6.37-netbook-lp-HR::ro root=/dev/sda2 quiet vga=current fastboot acpi_osi=Linux i8042.noloop=1 i8042.reset loglevel=0 acpi_sleep=s3_bios acpi_backlight=vendor
/dev/sda2:/dev/sda2:Linpus Recovery Lite:/boot/bzImage.grub:/boot/initrd.bin:rw root=/dev/ram0 ramdisk_size=128000 vga=0x314 init=/linuxrc quiet loglevel=0 root_lp=/dev/sda2 d2d_lp=/dev/sda1 speed_lp=/dev/sda3 swap_lp= i8042.nokbd

And in the boot directory there doesn’t seem to be much. There’s no menu.lst or anything similar, there are lots of files with “stage” in the name and a device.map, but there is a grub.conf and this is the output:

default=0
timeout=0
hiddenmenu
silent

title Linpus Lite for MeeGo (2.6.37-netbook-lp-HR)
        rootnoverify (hd0,1)
        kernel /boot/vmlinuz-2.6.37-netbook-lp-HR ro root=/dev/sda2 quiet vga=current fastboot acpi_osi=Linux i8042.noloop=1 i8042.reset loglevel=0 acpi_sleep=s3_bios acpi_backlight=vendor

title Linpus Recovery Lite
        rootnoverify (hd0,1)
        kernel /boot/bzImage.grub rw root=/dev/ram0 ramdisk_size=128000 vga=0x314 init=/linuxrc quiet loglevel=0 root_lp=/dev/sda2 d2d_lp=/dev/sda1 speed_lp=/dev/sda3 swap_lp= i8042.nokbd
        initrd /boot/initrd.bin

Like I said
Did you try?

I took you linux-os-prober output and parsed it with updategrub, and here’s what I got:

title Linpus Lite for MeeGo (2.6.37-netbook-lp-HR)
    root (hd0,1)
    kernel /boot/vmlinuz-2.6.37-netbook-lp-HR ro root=/dev/sda2 quiet vga=current fastboot acpi_osi=Linux i8042.noloop=1 i8042.reset loglevel=0 acpi_sleep=s3_bios acpi_backlight=vendor

The latest version - that I updated yesterday - would have replaced sda2 with its UUID, because it is usually better. But it wouldn’t have made a difference here. I bet the entry added by updategrub is correct - or at least matches the one you have in Linpus. There must be another problem.

@caf4926,
It doesn’t seem to use an initrd to boot the regular kernel.

Thanks for your help. I’m going to reinstall the system and try updategrub again, since last time I changed the menu files before I thought to check the forum. I won’t be able to do it right away, though, since I’ve really been pressed for time the last few weeks and it doesn’t appear to be letting up. It’s a shame I can’t figure it out; I would have liked to see how Meego works.

And I did try initrd /initrd.img. I posted the output in post #14.