
Saturday November 04, 2006
Setup of MS Windows Vista is pretty straight way forward,
however several problems exist if you have couple of OS's already installed
and you want to boot Vista as well as your Solaris OS from GRUB bootloader or do something like that.
Going step by step ...
- Installation
The first problem which may occur is
Windows is unable to find a system volume that meets the installation criteria.
That basically means the disk partition, you plan to install Vista on, is not active, and besides there are no other active FAT/NTFS partitons with enough free space available.
IMPORTANT: Be careful if you have another Windows OS already installed, and its partition is active -- this case Vista setup will basically use partition you've assigned for it, but OS booting related files will go to that active partition, rather than to one you've specified as a target for Vista. Quite messy and that's probably not what you want to do.
So, it's recommended firslty allocate disk partition for Vista, make it active, for example using fdisk(1M), and then start installation, e.g.
# fdisk /dev/rdsk/c0d0p0
Total disk size is 12161 cylinders
Cylinder size is 16065 (512 byte) blocks
Cylinders
Partition Status Type Start End Length %
========= ====== ============ ===== === ====== ===
1 IFS: NTFS 0 2610 2611 21
2 Ext Win95 2611 5221 2611 21
3 Solaris2 5222 10443 5222 43
4 Active Other OS 10444 12160 1717 14
- Booting
After hopefully successful installation, if you want to boot Vista from GRUB, you obviously need at least to activate Solaris partition back, on Windows OS you can do that with help of diskpart.exe standard program.
If you're thinking about fdisk(1M), it might be a problem, because during the installation Vista puts own OS loader program to the master boot record, and if you run fdisk(1M) it automatically "restores" original record from /usr/lib/fs/ufs/mboot, and as a result Vista OS loader ends up with
\Windows\System32\Winload.exe missing or corrupt
To sort it out, do
- Backup master boot record installed by Vista, assuming
c0d0 is our disk
# dd if=/dev/dsk/c0d0p0 of=mboot-vista bs=512 count=1
It should look like
# strings mboot-vista
t&fh
TCPAu2
r,fh
fSfSfUfh
Invalid partition table
Error loading operating system
Missing operating system
- Activate necessary partition
# fdisk /dev/rdsk/c0d0p0
Total disk size is 12161 cylinders
Cylinder size is 16065 (512 byte) blocks
Cylinders
Partition Status Type Start End Length %
========= ====== ============ ===== === ====== ===
1 IFS: NTFS 0 2610 2611 21
2 Ext Win95 2611 5221 2611 21
3 Active Solaris2 5222 10443 5222 43
4 IFS: NTFS 10444 12160 1717 14
After that master boot record will be restored to something like
# dd if=/dev/dsk/c0d0p0 bs=512 count=1 | strings
M3.0
Can't read geometryNo active partitionCan't read PBRBad PBR sig!!!LBACHS
- Restore master boot record installed by Vista
# dd if=mboot-vista of=/dev/dsk/c0d0p0 bs=512 count=1
Now we have program in master boot record which can actually load GRUB, and booting of Windows OS as well as Solaris OS from GRUB will be ok, just need to "chainload" our Vista:
# less /boot/grub/menu.lst
title Solaris Nevada
kernel /platform/i86pc/multiboot
module /platform/i86pc/boot_archive
title Solaris failsafe
kernel /boot/multiboot kernel/unix -s
module /boot/x86.miniroot-safe
title Windows XP
rootnoverify (hd0,0)
chainloader +1
title Windows Vista
rootnoverify (hd0,3)
chainloader +1
So, we have Solaris (partition 3), Windows XP (partition 1), Windows Vista (partition 4) installed and bootable from GRUB.
Trackback URL: http://blogs.sun.com/vl/entry/installing_ms_windows_vista
Posted by mike on March 03, 2007 at 08:58 PM CET #