In an earlier article, I showed how to make a system dual-boot Windows Vista and Debian Linux through GRUB. This was fairly straightforward, even with the new boot loader (BCD) that ships with the latest Vista builds. All of that happened in a reasonably simple environment – I used Microsoft Virtual PC 2004 SP1 to run Vista build 5342 and Debian.
This time, things are bound to get a little bit more interesting: I am installing Vista build 5342 on a Sun Ultra 40 AMD workstation. The other OS is – obviously – Solaris 10 01/06 (Update 1).
The overall procedure is very similar to what I have described before:
1. Install Windows Vista
2. Install Solaris and edit /boot/grub/menu.lst as described here.
STOP: Solaris is not quite as smart about the boot loaders as GRUB and does some strange things to the MBR – OR – Vista x64 has a different behavior about writing its boot records. At this point, I could start Solaris by default. Vista did NOT boot for me – it was complaining about \Windows\System32\Winload.exe missing.
As such, I ran the System Recovery option from the Vista boot DVD, which reinstalled the Vista boot loaders. To be sure, I ran the bootsect.exe with switch /nt60 on the SYS volume.
For the restore options it is very important that you decline to have the boot problems fixed automatically .Just say “No” and click “Next” and you will be taken to a menu where you can get a full Windows shell – this is MUCH better than the recovery console.
3. Reboot into the Windows shell on the Vista Install DVD.
4. bcdedit /set {default} device partition=c:
5. bcdedit /set {default} osdevice partition=c:
6. Run d:\boot\bootsect /nt60 c:
You should be all set.
If you screw up GRUB
Now back into booting Solaris by throwing the Solaris install DVD into the drive, going to the command prompt of grub and specifying
root (hd0,1,a)
kernel /platform/i86pc/multiboot
module /platform/i86pc/boot_archive
Great. Solaris boots. Now run installgrub(1M) with the following arguments:
installgrub /boot/grub/stage1 -m /boot/grub/stage2 /dev/rdsk/(this is the char device for your root slice)
NOTE: After you re-install GRUB, you will need to go back to the Vista Recovery console.