修复VISTA启动菜单故障(原创)
--某日心血来潮,想装个VISTA来噍噍,就下了个Beta2 5384中文版,安装倒还顺利,花了一个多小时,谁知道启动没几次,就OVER了,系统都进不了,只剩下一个开机选择Old Version Windows和VISTA双启动的菜单,而且还是VISTA优先启动,晕,于是就想把这个菜单搞掉。。。
--用启动盘进入DOS,使用fdisk /mbr 结果重启后发现无论是VISTA还是WinXP,都说引导失败,进不了,更晕。
--用番茄花园的启动盘,里面有一项叫修复启动故障的选项,选它以后可以正常进入WinXP,不过不用那张启动盘,还是进不了系统,治标不治本啊。
--Baidu一下这个问题,找到如下提示:
boot目录下的fixfat和fixntfs可能是用来修复XP或者LONGHORN的引导代码的,其命令行帮助为:
C:\boot\ntldr.bak>fixfat /?
Usage: fixfat -xp|-lh [-rmv] [-all]
Replaces FAT bootcode on FAT-formatted partitions.
-xp - Use XP-compatible bootcode.
-lh - Use Longhorn-compatible bootcode.
-rmv - Replace bootcode on removable (floppy) disks (default is hard disks)
-all - Replace on all partitions (default is only system partition)
C:\boot\ntldr.bak>fixntfs
Usage: fixntfs -xp | -lh [-all]
Replaces NTFS bootcode on NTFS-formatted partitions.
-xp - Use XP-compatible bootcode.
-lh - Use Longhorn-compatible bootcode.
-all - Replace on all partitions (default is only system partition)
这两个命令都需要运行在NT环境下。
--在XP下启动CMD,运行fixfat.exe,它叫我去VISTA的安装盘中找Bootsect.exe来修复启动故障
--找来VISTA启动光盘,dir,有个Boot文件夹,进去,然后。。。
J:\boot>bootsect /help
bootsect {/help|/nt60|/nt52} {SYS|ALL|<DriveLetter>:} [/force]
Boot sector restoration tool
Bootsect.exe updates the master boot code for hard disk partitions in order to
switch between BOOTMGR and NTLDR. You can use this tool to restore the boot
sector on your computer.
/help Displays these usage instructions.
/nt52 Applies the master boot code that is compatible with NTLDR to SYS,
ALL, or <DriveLetter>. The operating system installed on SYS, ALL, or
<DriveLetter> must be older than Windows Vista.
/nt60 Applies the master boot code that is compatible with BOOTMGR to SYS,
ALL, or <DriveLetter>. The operating system installed on SYS, ALL, or
<DriveLetter> must be Windows Vista or WindowsServer "Longhorn".
SYS Updates the master boot code on the system partition used to boot
Windows.
ALL Updates the master boot code on all partitions. ALL does not
necessarily update the boot code for each volume. Instead, this
option updates the boot code on volumes that could be used as Windows
boot volumes, which excludes any dynamic volumes that are not
connected with an underlying disk partition. This restriction is
present because boot code must be located at the beginning of a disk
partition.
<DriveLetter> Updates the master boot code on the volume associated with this
drive letter. Boot code will not be updated if either 1)
<DriveLetter> is not associated with a volume or 2) <DriveLetter> is
associated with a volume not connected to an underlying disk
partition.
/force Forcibly dismounts the volume(s) during the boot code update. You
should use this option with caution.
If Bootsect.exe cannot gain exclusive volume access then the file
system may overwrite the boot code before the next reboot.
Bootsect.exe always attempts to lock and dismount the volume before
each update. When /force is specified, a forced dismount is attempted
if the initial lock attempt fails. A lock can fail, for example, if
files on the target volume are currently opened by other programs.
When successful, a forced dismount allows exclusive volume access and
a reliable boot code update even though the initial lock failed. At
the same time, a forced dismount invalidates all open handles to files
on the target volume. This could result in unexpected behavior from
the programs that opened these files. Therefore, you should use this
option with caution.
Example:
To apply the master boot code that is compatible with NTLDR to the volume
labeled E:, use the following command:
bootsect /nt52 E:
--于是尝试修复C盘的WinXP系统,执行下列指令。。。
J:\boot>bootsect /nt52 c:
Target volumes will be updated with NTLDR compatible bootcode.
C: (\\?\Volume{6b5d8980-0f64-11db-a678-806d6172696f})
Updated FAT32 filesystem bootcode. The update may be unreliable since the
volume could not be locked during the update:
Bootcode was successfully updated on all targeted volumes.
--重启机器,成功,那个该死的启动菜单已经不见了。。。哈哈