Setting up my new computer (AMD Phenom II X4 810 (Deneb), 4×2.6GHz, 8192MB RAM, 500GB WesternDigital, GeForce 9400GT, 1GBit+54MBit) was a bitch. Especially since I wanted a very specific OS setup.
The primary targets were Windows XP (SP3) and Ubuntu (9.04) for coding purposes, secondly Windows 7 RC for testing purposes and OpenSolaris for experience.
I did a lot of installing and reinstalling this past week, until I finally managed to get all four systems working and accessible.
The original partitioning plan was to have two primary partitions and a few logical partitions (inside an extended partition, of course), so there will be room for more systems. After installing Windows XP to the second (primary) partition and Windows 7 in the first, I found out, that the OpenSolaris installer did not create a logical partition (as expected) in the extended partition, but deleted the extended and created a solaris partition (with new size) instead. But because I wanted OpenSolaris to be in a logical partition, I used GParted to created the extended partition again and prepared a dedicated (logical) partition for OpenSolaris. Unfortunately OpenSolaris doesn’t see behind the walls of the extended partition, so – again with GParted – I shrunk the extended and created a third primary partition for OpenSolaris. This time the installer used the partition correctly – nevertheless it contains bugs, and that’s why the installation failed on first try. But with the help of this awesome guide I managed to also take this hurdle. Finally, after installing Ubuntu, I decided I would want to use OpenSolaris’ grub rather than Ubuntu’s (I can’t quite recall whether it was just a visual reason or whether there was more…).
Furthermore I had to face other issues: Windows XP installed itself on drive E:, because it recognized the first primary partition as C: and the card reader as D: (even though E: is the second primary partition), I still haven’t figured out why. Also, after installing Windows 7 and OpenSolaris, I couldn’t boot XP anymore (copying NTLDR and stuff didn’t help). And last but not least, for (still) unknown reason, Windows 7 wouldn’t start bcdedit anymore (yes, even though I started it from a commando prompt with elevated rights).
In order to get Windows XP booting again, I had no choice but to reinstall it (fixmbr from the installation disk wouldn’t work). So I also had to reinstall Windows 7, because from the RC disk I couldn’t start bcdedit, either. This time, however, the Windows 7 installer did not recognize Windows XP as a previously installed version – nevertheless I was able to add Windows XP to the MS bootloader.
OpenSolaris and Ubuntu were still were they belonged, but I had to get them booting again. Trying to restore OpenSolaris’ GRUB (and load it into the MBR) failed with read/write errors, as also shown in this thread. I tried it many times, never successfully though. I thought, the heck with it, I’ll use Ubuntu’s GRUB. Well, I wasn’t able to restore that one, either: stage1 couldn’t be read correctly. According to this wiki entry, with an inode size other than 128, GRUB isn’t able to read from the filesystem. I thought the situation is rather kinda stupid, that the Ubuntu installer creates a partition with an inode size that GRUB won’t be able to read? So I decided to try with OpenSolaris’ GRUB again.
I could boot into OpenSolaris, but just using the LiveCD and entering GRUB commands manually (rootnoverify (hd0,2), chainloader +1) – because at the moment, Windows 7’s bootloader was booting at system start. Since trying to restore OpenSolars’ GRUB back to the MBR (see this) still failed, I was again looking for solutions online. I stumbled across this page (currently only accessible via Google cache), which sounded really easy: just activate the OpenSolaris partition again. Could it really be that simple? It was. After making the partition active, GRUB fired up at system start, and I could boot into all four systems. For Ubuntu I had to adjust the menu.lst settings though: Jaunty uses uuid rather than root by default, but somehow OpenSolaris’ GRUB can’t yet deal with this.
Status quo: At system start I will see the OpenSolaris GRUB with Windows 7, Windows XP, OpenSolaris and Ubuntu as boot options. Windows 7 gets me to the Microsoft bootloader (where I again can choose between 7 and XP, which I added via bcdedit in the beginning). Otherwise I can boot the three remaining systems directly.
Finally, I got the system I wanted: Four operating systems, bootable without inconvenience 🙂
[UPDATE 07/07/09:] In order to fix problems with the Windows boot loader, I was using the description at this page.
But using the “manpages” via bcdedit.exe /? also helped. [/UPDATE]