Triple Booting Mac OS X.6, openSUSE, and Windows XP on Macbook Pro 7,1

I am very new to Linux, in fact, computers in general, and I am having problems with triple booting my system. The original Linux OS I started out with was Ubuntu, which I was able to triple boot in the desired configuration (Mac OSX, Unbuntu, and Windows XP) after several tries (the instructions I got weren’t quite right).

I am now trying to install openSUSE instead of Ubuntu. However, if I install openSUSE before Windows XP, Windows XP erases my installation. If I install it afterwards, it seems to erase Windows XP, as it becomes unbootable thereafter. Perhaps this is because I am following the instructions for installing Ubuntu (format partition 3 as Ext3, mount it as /, and install the grub boot loader inside that partition), without modifying much else. I can’t seem to find any good instructions online to tell me what else to do.

And if it helps, the instructions on installing Ubuntu screwed up because it said I had to install Windows XP first, before installing Ubuntu. I found out it was the other way around. Also, while Ubuntu was installed, all three partitions showed up on disk utility (although the Linux partition wasn’t a recognized file system). However, every time I’ve installed openSUSE, where the partition should have been showed up as empty space on disk utility.

The rEFIT]( method is proven to work to dual or tripleboot on Mac hardware. I’ve used it on two iMacs (Leopard and Snow Leopard), one dual and one triple boot. The Windows partition has to be the last one. You should install openSUSE in sda3 with Grub in its partition, sda1 being the EFI partition, sda2 the HFS+ partition and sda4 the Windows partition. Here’s an example (dualboot):

fdisk -l

WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.

Disk /dev/sda: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders, total 488397168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00002652

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1      409639      204819+  ee  GPT
/dev/sda2          409640   352469031   176029696   af  HFS / HFS+
/dev/sda3   *   352731176   488134983    67701904   83  Linux

You have to prevent openSUSE setup to write generic bootcode to MBR]( (which it blindly does by default).

Ubuntu/Grub2 is indeed interesting because it can read GPT and makes it possible to multiboot without the help of rEFIT, AFAIK - but I never tried it.

I’ve tried that before, and it still seems like when I install windows it completely destroys the Linux partition. I have tried following the instructions from this following site: Macbook Pro, Windows 7, Mac OS X and openSuSE 11.3 – Rants inside except using Windows XP rather than 7, however, it doesn’t give me instructions for installing the grub2 menu with the live Ubuntu 10.4. I have tried experimenting with the command grub-install, but I really have no idea how terminal works, and when I ask for help, it gives me a bunch of options, but it’s safe to say I don’t really know what any of them mean. Is there a way I could ‘rip’ the grub menu off the Ubuntu disk, insert it in the openSUSE installation, and then update it?

And I should probably also mention I’m using openSUSE 11.4

No way! These 2 versions of Grub (Grub2 and Legacy Grub) have not very much in common. Installing Grub from the command line is not complicated (and we will tell you how) but can you not just install Windows first? If you get error messages when booting Windows asking you if you want to restore anything, you should ignore them. Is it not just that Windows set the bootflag on its partition - it does that for sure - which makes you thing that your Linux partition is gone? Are you using rEFIT? You should. rEFIT is your boot manager, not Grub (at least not Legacy Grub). You’ll use Legacy Grub only to boot openSUSE. It gets chainloaded by rEFIT.

Yeah, I’ve got the rEFIT installed. It’s just that whenever I’ve tried to triple boot the operating system after installing the windows and then openSUSE, a message pops up that says it is unable to boot the operating system on that partition. If I install it afterward, it seems to completely erase all that was on the /dev/sda3 partition, because I can’t boot it. I don’t know if it’s because with the legacy grub the computer believes the partition to be nothing but empty space, (which is what disk utility tells me), which is why I’d like to add the grub2 bootloader if at all possible. Can that be done from the Ubuntu live CD command line?

Also, when windows is installed first, when I go to edit the partitions it wants to mount the window as C/windows, or windows/C (something like that, I can’t remember). Should I let it mount the windows as such, or just have it left untouched during installation. Also, which Fstab option should I use?

How are you installing openSUSE? You should use the method Create partition setup, never create a /home or swap partition (but set up a swap file later).

I suspect the GPT and MBR get desynchronized. It happens if someone writes to the MBR. So you should prevent the setup from doing that by not creating/resizing any partition. The only thing which is allowed is to change the partition ID (that happens when you format the partition). openSUSE and Windows writes a generic bootcode to the MBR by default. You can prevent openSUSE from doing that by unchecking that option (as explained in post #2). rEFIT should issue a warning when MBR and GPT don’t match.

If you’re using Ubuntu, yes. It’s also possible - in theory - to use Grub2 on openSUSE but I don’t know anyone who does that.

Btw, I just discovered that os-prober is know available in the Factory repo. It wasn’t as I ported it from ArchLinux/Fedora and added it in my repo. os-prober is used by Grub2 to detect other operating systems and refresh the boot menu. I just checked and mine actually detectds OS X:

# os-prober
   No volume groups found
 /dev/sda2:Mac OS X:MacOSX:macosx

But forget the stuff in grey. It doesn’t answe your question. I just wanted to mention it by the way.

I missed something. If you’re asking such question, does it mean that you have both, Windows and openSUSE installed and working? I’m not sure about the best mount option though (maybe just “defaults”) , but anyome dualbooting with Windows could tell (I don’t). You can keep the default mountpoint or create your own. It doesn’t matter.

Sorry, what I mean to say is if I have windows installed first, and go to install openSUSE, and I edit the partitioning (as so it only formats /dev/sda3 without touching anything else) that comes up as an alteration when it gives me the final installation readout (mount windows to windows//C or something like that). But I guess if I install windows afterward, it doesn’t matter. And just so I know for future references, how can I install grub2 through the command line?

And yes, I am using the create partition setup.

You’re confusing me with this Windows mount problem. It has nothing to do with being about to boot one or the other OS. We can fix it anytime, mount it anywhere or choose to ignore this partition under Linux. But first, can you tell us what you are able to boot now? Do you see the rEFIT icons when you boot, one for Mac OS, one for Linux, one for Windows? Are you able to select any of these? And what system does actually boot or not?

Ubuntu uses a script called grub-install to install Grub2. The syntax would be:

grub-install /dev/sda

Normally it refuses to install it to a partition bootsector unless you use the --force option. The preferred location for Grub2 is in MBR. I don’t have it on openSUSE now, so I can not tell the exact command to install it. Maybe you’ll have to execute grub-setup (which is what grub-install calls) or openSUSE provides a grub2-install script. I don’t remember. But there have been posts about that, I guess (I might actually already have answered the question myself - but just forgot). There is plenty of documentation about Grub2.

Okay, sorry about that. After much trying I have finally got all three operating systems to run smoothly. Now, however, I have encountered another problem. Every time I try to start into openSUSE, I get to the grub menu (I stuck with the grub it came with, so the original grub), select openSUSE 11.4, and get the loading icon. After it gets finished loading, it takes me straight to a command line, where it prompts me for my username and password. After I enter that it displays the line “Have fun…” and leaves me at the command line. I don’t know how to get to the desktop from there.

That’s great. I bet you don’t remember how (?) :frowning:

Either you boot into runlevel 3 (text login) but why would you have changed the default runlevel 5 (GUI login) ? Most likely X cannot be started because of a graphics driver issue.

Check the current runlevel:


Check the model of your graphics card an post output:

hwinfo --gfxcard | grep -i -e model -e driver -e device

That would make sense, because I created a NVIDIA configuration file as root, but I rebooted before I could enter the following lines:

Option “Coolbits” “1”
Option “RegistryDwords” “PowerMizerEnable=0x1; PerfLevelSrc=0x2222; PowerMizerLevel=0x3; PowerMizerDefaultAC=0x3”

Is there a chance that I could use the Live CD of the same desktop version (gnome) to chroot into the partition so I could add that? Or am I best just reinstalling the software?

And a little off-topic, I do remember how I went about installing openSUSE, so if you think it would be helpful for me to explain how, I can do that.

I have no idea what these options do. Do you mean nvidia’s options? If so they could be place in the device section of /etc/X11/xorg.conf and you could just edit this file. But I bet you don’t have the driver installed. Do you? It is not installed by default.

Neither. What do you want to do exactly. If it’s about installing the nvidia driver, this (as root) will do it:

su -l
zypper ar nvidia
zypper refresh
zypper in x11-video-nvidiaG02

Yes, Please do! If you can remember and describe all the steps (in the right order), feel free to write an howto in this forum Unreviewed How To and FAQ and use the same title as in this thread (which is very clear). I’m sure it will be helpful. I might also sooner or later benefit from it.

Okay, I’ll get on that howto as soon as possible!

Sorry, I should have been more clear about the NVIDIA configuration. I downloaded the NVIDIA driver from a repository, however, when I went to turn it on it said that it was inactive, and that I had to run the command ‘nvidia-xconfig’ as root (so “sudo nvidia-xconfig”), and enter the lines as I had posted before to get it to run. Unfortunately, I rebooted before I entered those lines, so the file is empty, and now I can’t get back to it through the normal booting procedures. So I didn’t know if I could chroot into the openSUSE partition, and enter “sudo gedit nvidia-xconfig” on the terminal to fix it that way.

It is still not clear. Downloading is not enough. You should also install it. One way to do it* is to use the commands in my previous post. Assuming it is installed … well, I do edit /etc/X11/xorg.conf manually. :frowning:

You don’t need to chroot to edit a file. You just have to mount the partition and have right access to it (= be root). But you don’t need to boot a live CD to edit a file. You can edit it in console mode with vi (but don’t use it if you don’t know how to) or maybe nano (instead of gedit).

  • Not the only method though.