用BCDEdit编辑启动菜单
我的电脑装了双系统:Win2003 SP2(C盘)和Win2008 SP2(D盘),最近2003一启动就蓝屏unknown hard error,安全模式也进不去,恢复注册表等方法试过也不行,但2008正常,覆盖安装2003也不解决,看来只有格盘重装了。重装2003和应用软件后,系统恢复正常运行。下一步就应该是恢复双启动菜单了。但我手头没有其他软件,只有系统安装盘,只好研究令我头大的那个bcdedit。微软的说明文字让我是一头雾水,上网查找了一些资料终于清楚了怎么用。
1.用2008的光盘启动到修复计算机下的命令提示符,在命令提示符下运行X:\boot\bootsect.exe /nt60
sys(X是光驱盘符)把2008的启动扇区写入C盘。 2.运行bootrec.exe /rebuildbcd重建启动菜单。bootrec.exe的用法类似于XP的故障恢复控制台,常用参数如下:
/fixmbr 修复主引导记录
/fixboot 修复启动扇区
/scanos 扫描并添加已有的系统,注意扫描不到XP
/rebuildbcd 重建整个BCD(启动配置数据),这次由于格了C盘,所以必须重建。
3.把2008系统目录下的boot\pcat文件夹(\Windows\Boot\pcat)下所有文件复制到c:\boot目录,命令:xcopy D:\Windows\boot\pcat\*.* c:\boot /e(/e表示复制子目录)
4.把\Windows\boot\fonts下所有文件复制到c:\boot\fonts目录:xcopy D:\Windows\boot\fonts\*.*
c:\boot\fonts /e。注意系统会询问目标是文件还是目录,别选错了!
5.把boot目录下的bootmgr移动到C盘根目录下,命令:move c:\boot\bootmgr c:\
6.把boot目录和bootmgr文件添加隐藏、系统等属性,防止误操作。attrib +r +h +s +a c:\boot和
c:\bootmgr
7.从硬盘启动,现在2008已经能正常使用,但是2003没有启动项,要手工添加,这里就要用到bcdedit。以管理员身份运行CMD,键入以下命令:
bcdedit /create {ntldr} /d "Windows 2003" (创建一个基于NTLDR的启动项,菜单里显示为“Windows 2003”)
bcdedit /set {ntldr} device partition=C:
bcdedit /set {ntldr} path \ntldr
bcdedit /displayorder {ntldr} /addfirst(把刚才创建的这个条目显示在启动菜单的第一位)
bcdedit /toolsdisplayorder {memdiag} /addfirst (在启动菜单里添加内存诊断工具)
重启后,双启动菜单恢复正常!
bcdedit说明:
在Vista/2008下,我们通过msconfig的“启动”选项卡可调整启动时的参数,也可通过系统属性-高级-启动和故障恢复对引导菜单进行调整。但这些项目和XP是类似的。有些功能在XP下非得修改boot.ini才能完成,比如添加一个启动项、修改启动菜单里的文字等,这些在VISTA下就只有用bcdedit了。这是一个命令行工具,必须以管理员身份运行。只要有点英语基础的人,看到命令都能猜出是什么含义,可是微软的帮助就是那么让人费解。其实对我们有用的参数也就那么几个。
一、备份和恢复启动配置文件
为减少像我这样的麻烦,大家在平时可以把启动配置数据导出来,恢复就很简单了。你也可以自己建一个配置文件,然后把启动项加入其中,以后就可以去别的电脑上用了。
例如:
bcdedit /createstore "C:\1.bcd" 创建一个名为C:\1.bcd的启动配置文件
bcdedit /export "C:\2.dat" 把启动配置导出到C:\2.dat
bcdedit /import "C:\3.abc" 从C:\3.abc导入启动配置
二、标识符