OpenSUSE 11 Vista and EasyBCD

I am attempting to add OpenSUSE to an existing Windows Vista Ultimate home computer. On paper it seemed simple but… I’m lost now.

Computer has three physical drives

Drive 0: Vista, two partitions, NTFS
Drive 1: NTFS for Vista
Drive 2: OpenSUSE 11.0

Using EasyBCD 1.7.2

I installed OpenSUSE on physical drive 2 with three partitions, swap (sdc1), root (sdc2), and home (sdc3).

I installed GRUB to /dev/sdc2 /boot (and /, and just plain ol /dev/sdc2 - multiple times - to no avail) At least I have avoided the MBR of windows.

I selected flags to write generic boot code and set flag in partition manager under boot loader configuration.

Everytime I fire up and select OpenSUSE from multiboot i get the same message “Cannot load from harddisk.
Insert Systemdisk and press any key.”

I press any key and I am back at multiboot selection.

In EasyBCD I selected to add entry, selected linux, type grub, and drive 2 partition 1.

What am I missing? Right now if I want to run OpenSUSE I get to run Windows instead.

Grub is best on MBR of Drive 2 (as you call it)
set BIOS to boot from that disk first

Install guide:Partitioning/Install Guide - openSUSE Forums

I would probably just run the install again and make sure I set the mount points properly for all the other partitions.
You will need to use custom partitioning and make SURE grub goes to MBR ,not /boot

“You will need to use custom partitioning and make SURE grub goes to MBR ,not /boot”

So I am selecting the root or boot partition on sdc3 when given a choice?


If the drive is listed as sdc
grub goes to MBR of sdc
Not sdc2 /boot

Don’t get confused - In your install you will have a directory /boot/grub

but this is not all there is to grub
In the suse install setup you can manually work on the bootloader and make sure it is installed as I describe.

You will probably have to fiddle later with the boot of Vista from grub, as it may not work at first. But you can easily switch to boot your vista install first in bios - until we get grub sorted

EasyBCD adds an entry to Vista’s bcd registry to chainload to the boot sector installed in the Partition Boot Record of the specified drive/partition. Consequently, installing generic MBR bootstrap code or setting the bootable (active) flag, have no effect.

But EasyBCD does not validate the entry (nor does Vista bcdedit, for that matter). It either works or not.

You indicate you are telling EasyBCD to use drive 2 and partition 1. Shouldn’t that be drive 2 and partition 2?

If that isn’t the problem, how are you installing grub? If with YaST, post this back (must be done as root) -

cat /etc/grub.conf
cat /boot/grub/

If you are installing grub via its shell, what are the commands that you are using?

How is the 3rd drive physically connected in the machine? Is this drive available to the bios boot set up?

I gave wrong information in the first post.

I am installing OpenSUSE to the third physical drive in the system, sdc2, and I am pointing EasyBCD to drive 2 partition 2 based on the information that the first physical drive is 0.

GRUB is installed by YaST during install to the /boot drive of sdc2.

Drive is available to the BIOS at startup.

Let me run your request and I will post it back to you.

OK, posting back the results and got the following

cat /etc/grub.conf
setup --stage2=/boot/grub/stage2

cat /boot/grub/
(hd0) /dev/sda
(hd2) /dev/sdc
(hd1) /dev/sdb

Open a terminal window, switch (su) to root, and do:


Now in the grub shell, do this exactly:

root (hd2,1)
setup --stage2=/boot/grub/stage2 (hd2,1) (hd2,1)

Now try booting again from Vista.

I use a simpler approach. I have Vista on one drive and Suse on another. I installed the Suse bootloader to the MBR of sda2 and left Vista alone. When my computer boots it prompts me to press F10 to display the boot menu and I choose which drive I want to boot to. In BIOS I set Secondary Master (the Suse drive) as the first boot device.

Thanks mingus725,

I’ll give it a whirl tonight and report back.

Presumably you mean sdb. In any event, many bios’s do not offer the on-the-fly boot menu option.


Almost there -

I ran the commands

root (hd2,1)
setup --stage2=/boot/grub/stage2 (hd2,1) (hd2,1)

and this was returned

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 (hd2,1) failed (this is not fatal)
running "embed /boot/grub/e2fs_stage1_5 (hd2,1) failed (this is not fatal)

running “install --stage2=/boot/grub/stage2 /boot/grub/stage1 (hd2,1) /boot/grub/stage2 p /boot/grub/menu.lst” failed

error 15: file not found

Did I do something / type something wrong?

I don’t see any problem with what you did. There must be something we aren’t seeing yet.

When you typed “root (hd2,1)” in the grub shell, did grub return this?:

Filesystem type is ext2fs, partition type 0x83

Please post back all the output from these commands:

fdisk -l -u
ls -l -g /boot
ls -l -g /boot/grub

And try this, run the grub shell again but this time just do:

setup (hd2,1) (hd2,1)

If you get a “failed” error message again, then try this as root:

grub-install /dev/sdc2

OK - here is what I found tonight

Yes, when I type root (hd2,1) it returns filesystem type ext2fs and partition type 0x83

fdsk -l -u returns the following

Disk /dev/sda
Device Boot Start End Blocks ID System
/dev/sda1 63 112454 56196 de Del Utility
/dev/sda2 112640 21084159 10485760 7 HPFS/NTFS
/dev/sda3 21084160 1465145343 722030592 7 HPFS/NTFS

Disk /dev/sdb
Device Boot Start End Blocks ID System
/dev/sdb 63 976768064 488384001 7 HPFS/NTFS

Disk /dev/sdc
Device Boot Start End Blocks ID System
/dev/sdc1 63 4209029 2104483+ 82 Linux swap / Solaris
/dev/sdc2 4209030 46154744 20972857+ 83 Linux
/dev/sdc3 46154745 3124966379 133170817+ 83 Linux

ls -l -g /boot returns total 0

ls -l -g /boot/grub returns cannot access /boot/grub: no such file

when I type setup (hd2,1) (hd2,1) now menu.lst shows succeeded but “embed /boot/grub/e2fs_stage1_5 (hd2,1)” still show failed (this is not fatal

trie grub-install /dv/sdc2 but was returned
/usr/sbin/grub-install line12: /sbin/yast2: no such file or directory
/usr/sbin/grub-install: line 15: /etc/grub.conf: no such file or directory

And Because I do… so much want to gradually gt away completly from Windows - I keep trying other things.

Tonight I tried this from another post -

Root (hd2,1)
setup (hd0) "yes I know that’s the MBR for Windows

This returned

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 (hd2,1) yes
running "embed /boot/grub/e2fs_stage1_5 (hd2,1) yes 15 sectors embeded

running “install --stage2=/boot/grub/stage2 /boot/grub/stage1 (hd2,1) /boot/grub/stage2 p /boot/grub/menu.lst” succeeded

but on reboot I got

grub loading, please wait
Error 21: missing file

So I restored MBR for Windows and tried this

root (hd2,1)
kernel /boot/vmlinuz
initrd /boot/initrd


I suggest you be cautious with just “trying things” - guessing in a situation like this can be dangerous. Unfortunately, there is a lot of black magic, overlapping, and incompatible things that get done with the partition table, MBR, IPL, PBR, disk signature, boot sector, etc. This is particularly true on a Vista machine, which users are only now discovering uses different different partitioning geometry and disk signatures which are incompatible in some cases even with XP. Few understand how these mechanisms actually work, let alone how the different boot managers do (differently) what they do.

How are you booting into openSUSE now?

What type of disk is openSUSE installed on, and how exactly is it connected to the system? What is the size of the disk?

Were the partitions created by openSUSE in the installation? If not, how?

Was anything previously installed on this disk? With these partitions?

What file system did you use for the openSUSE partitions?

Something is wrong with what you got back when executing the following commands. Please try this again in a terminal:

ls -l /boot

ls -l /boot/grub

That should output a listing of the files in /boot and /boot/grub.

And again, to confirm, when you used the grub shell commands before (i.e., “setup (hd2,1) (hd2,1)”) you got a message at the last line indicating successful?

Also, you posted that you did this:

root (hd2,1)
kernel /boot/vmlinuz
initrd /boot/initrd

Where exactly were you doing that?

OK - I’ll stop guessing.

Right now I boot into OpenSUSE by using the DVD; I select rescue from the main menu.

Disk is SATA, 150g it was in my old PC and I installed it to run OpenSUSE. Computer is Dell XPS 720HTC, so I just popped the case open and plugged it into the next available bay. What I ended up with, as far as drive mapping under Vista was C:=primary drive, D:=partition on primary drive, E:=DVD RW drive, F:=BluRay/DVD drive, G:=NTFS partition for Windows goodies, and finally H:= the 150g I added from old computer.

I used Vista to delete the partion after I installed the new drive and boot computer using openSUSE DVD and let OpenSUSE installer partition the new drive,(sdc) for me with (sdc1)=swap @ 2g, (sdc2)=root @ 20g, and (sdc3)=home @ 127g.

OpenSUSE gave me SWAP file type for the swap drive(sdc1) and ext for root and home(sdc2 & sdc3).

I ran the code

ls -l /boot
ls -l /boot/grub

by typing root at the prompt as soon as rescue completed booting. I will try that again tonight.

Yes - first time setup (hd2,1) (hd2,1) came back with success all the way.

This was run by typing grub at the prompt in rescue. I logged in as root, typed grub then ran these commands.

root (hd2,1)
kernel /boot/vmlinuz
initrd /boot/initrd

I have a full backup of my system so I sometimes get a little dangerous.


If you had a successful install of grub to sdc2, trying deleting the EasyBCD entry you previously created, reboot, re-add that entry in EasyBCD, reboot.

If that doesn’t fix itself, the next step would be to validate that there is a good boot sector in sdc2. That will indicate whether the problem is with what Vista’s boot loader is handing off to (i.e., grub in sdc2) as opposed to something strange with Vista’s bootmgr and/or EasyBCD. This isn’t trivial to do, so let’s try the easier delete/re-add above first. If that doesn’t work, post back and I’ll give you instructions for doing the validation.

I still would like to see the output of the ls -l commands. I realized that if you are doing all this from the DVD Rescue System, then of course you would get no output because the root filesystem is not automatically mounted in this mode. So do this:

mount -t ext3 /dev/sdc2 /mnt
ls -l /mnt/boot
ls -l /mnt/boot/grub

I forgot to task . . . do you by chance have a Live-CD?