Restoring Vista HOWTO
From Genunix
| This article has been identified as a draft. It is currently undergoing a community review. Please add your comments to the discussion page.
Do not quote any text on this page! It is still a draft! |
Recognizing the Problem
Symptom 1
Install may fail with the following error message
'Not enough free space'
Symptom 2
fdisk will fail with the following error message
'fdisk: Cannot Create partition table'
Run 'fdisk -d <device>' to confirm this problem:
*If Solaris is not installed on this system, you can boot using the
install CD/DVD
and early in the install process select the option to exit to shell.
Example:
# fdisk -d c0d0p0
Physical Geometry:
cylinders[30400] heads[255] sectors[63]
sector size[512] blocks[488376000] mbytes[896]
Virtual (HBA) Geometry:
cylinders[30400] heads[255] sectors[63]
sector size[512] blocks[488376000] mbytes[896]
Partition Table Entry Values:
SYSID ACT BHEAD BSECT BEGCYL EHEAD ESECT ENDCYL RELSECT
NUMSECT
191 128 0 1 1 254 63 1023 16065
488359935
100 0 0 0 0 0 0 0 100
100
100 0 0 0 0 0 0 0 100
100
100 0 0 0 0 0 0 0 100
100
The maximum disk capacity is shown in the blocks as 488376000
The highest sector allocated is calculated from the partition table
16065 + 488359935 which is 488376000
If the highest sector allocated is greater than the disk capacity we
have the problem.
Workaround
At present we are only likely to experience this problem with
Windows Vista.
The simplest workaround is to boot Windows Vista and shrink the last
partition.
Windows -> Control Panel System Maintenance Administrative Tools -> Create and format hard disk partitions Right Clock on the rightmost partition and choose Shrink Volume
Shrink the volume by 9 MB
Complete the Windows operations and reboot to install Solaris
If you dual boot a system with Solaris Express Developer Edition on Windows Vista:
- Two partitions on the same disk, one has Vista, one has Solaris
- BIOS boot to MBR
If the MBR finds GRUB from its table, then GRUB finds the Solaris OS from the Solaris partition, but CAN NOT recognize Vista and Vista can not be reached anymore, even though its partition is intact. Here is how to fix it, bypassing GRUB.
1. Change boot order to boot from CD/DVD.
2. Use the Vista Anytime Upgrade DVD to boot the system.
3. Enter the Vista recover environment (RE), selected the language and wanted to repair the system option.
4. If you don't see any operating system listed in the window, just click next.
5. Use the first choice to fix the windows boot problem automatically.
If after a few seconds it reports that it fails, try the following.
6. Select the command line option and start DOS to view C: and verify that all the files are still there.
7. Type
diskpart
then select the Vista partition, and type
active
(if the partition is not already active). This is very important, because by doing this the MBR table changes its active partition entry from the Solaris partition to the Vista partition. Then, when the BIOS boots to the MBR, the MBR directly points to the Vista partition. Thus GRUB will not be touched at this point.
8. Then type
bootrec /fixboot
bootrec fixMBR
to get a report showing whether the problem is fixed.
9. Reboot the system and enter the Vista recovery environment. If the fix applied correctly, Vista will show up in the list.
10. Select Vista from the list and click next. Vista automatically detects that there is a booting problem and asks if you want to allow Vista to fix the problem. Say 'yes'. Vista will report that the problem is fixed. Reboot the system and Vista should once again be bootable OS.
