给Vista系统加入一键还原功能
很多朋友都喜欢用《还原精灵》、《一键Ghost》等一键还原软件,这样在系统遇到故障的时候就可以快速还原。不过这些软件在Vista中却无法使用,因为Vista采用了全新的启动方式。其实只要稍加动手,我们可以手动为Vista添加“一键还原”启动菜单。这里以预装Vista单系统的品牌机为例说说如何添加这个功能。另外,对于XP+Vista双系统的用户,原来安装在Windows XP中的还原软件在XP下仍然可以使用。
小知识:Vista和Windows XP/2000的引导区别。
Windows XP/2000/2003引导时是首先读取Boot Sector后加载NTLDR(引导文件,用来解析Boot.ini文件),然后开始普通的Windows加载,通过Boot.ini加载启动菜单进入不同的系统。
而Windows Vista 引入了全新的Boot Manager(启动管理器)和Boot Configuration Data(BCD,引导文件)的概念。系统引导顺序变成POST (系统自检)→BIOS读取MBR→找到硬盘分区表中Active的分区→读取Boot Sector→加载BOOTMGR (Boot Manager),Boot Manager读取BCD信息然后列出启动菜单,接着 BOOTMGR将控制权交给Vista系统目录下的Winload.exe,然后启动系统,并开始核心加载。如果是XP+Vista双系统,加载BOOTMGR后把控制权交给Ntldr加载,然后启动XP。
方法一:给Vista装一个虚拟软驱
一键还原条件:电脑至少有一个FAT32的分区、已经用过Ghost备份了Vista的系统镜像beifen.gho
一键还原工具:Ghost+Vfloppy
一键还原是借助Ghost的批处理在DOS下完成还原操作,在Vista下无法安装DOS,我们可以通过Vfloppy安装虚拟软驱使用DOS。
第一步:由于Vfloppy添加虚拟启动要通过Boot.ini加载,Vista下没有该文件,我们要手工建立这个文件。启动记事本输入下列代码,然后保存为boot.ini,放置在C:\。
[boot loader]
timeout=6
default=multi(0)disk(0)rdisk(0)partition(1)\windows
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\windows="windows xp professional" /NOEXECUTE=OPTIN /FASTDETECT
第二步:同上,启动记事本输入下列代码保存为hf.bat批处理文件,放置在FAT32分区如D盘下,用于自动恢复系统:
C:\ghost.exe -clone,mode=pload,src=C:\beifen.gho:1,dst=1:1 -sure -rb
命令的意思是运行D盘下的ghost.exe,把D盘下的beifen.gho恢复到第一分区(C盘),这里需要先使用Ghost将系统备份到d:\beifen.gho,同时要把Ghost.exe先放置在d:\下。
注意:由于Vista安装分区C盘为NTFS,DOS下D的盘符就是C:,这里一定要注意批处理命令中盘符的书写。
第三步:下载Vfloppy后将其解压到d:\,到[url]http://zj.onlinedown.net/down/winima70.exe[/url]下载WinIamge,然后使用WinIamge打开Vfloppy的“BOOTDISK.img”文件,在WinIamge窗口将AUTOEXEC.BAT拖到d:\并保存。
第四步:用记事本打开“d:\AUTOEXEC.BAT”,找到“echo The diagnostic tools were successfully loaded to drive %RAMD%.”这行,在“echo.”下添加下面一行内容(如图1):
call c:\hf.bat
命令的意思是启动到DOS\后,调用上面制作的批处理恢复系统,编辑完成后将文件拖回WinIamge窗口的“BOOTDISK.img”替换原文件。
第五步:右击Vfloppy.exe选择“以系统管理员身份运行”,映像文件选择修改过的“bootdisk.img”,显示文本为“DOS”(不要使用中文字符,否则在Vista启动管理器会出现乱码)。单击“应用”,程序提示引导映像文件成功即可。
第六步:按提示重新启动后,在Vista启动管理器中就会出现“DOS”启动项,选择它后进入DOS就可以自动恢复Vista了(如图2)。
这里我们借助Vfloppy在Vista下安装上DOS,然后通过WinIamge编辑DOS的自动批处理文件实现自动还原系统。如果你的系统全部是NTFS分区,也可以使用WinIamge编辑“BOOTDISK.img”文件,把Ghost.exe拖到“BOOTDISK.img”中(最好是8.3版,可以识别NTFS分区)。启动到DOS后,在提示符下输入“ghost.exe”启动程序手动进行还原。
提示:如果要卸载虚拟DOS,把c:\boot.ini、c:\boot目录下的bootdisk.img、BOOTDISK.dsk、bootdisk.bin删除即可。
方法二:手动给Vista添加启动菜单
一键还原条件:同上,适用Vfloppy无法成功加载虚拟DOS
一键还原工具:ghost+Avlgomgr
上述方法虽然方便,不过经测试,可能是由于Vfloppy的缺陷,在有些电脑上选择“DOS”进入后无法成功加载虚拟DOS。如果遇见这样的情况,我们可以编辑BCD文件,然后借助稳定的Grub引导进入DOS。
第一步:操作同“方法一”的“第四步”,使用WinIamge编辑Bootfisk.img并将修改过的文件放置在d:\。接着“以系统管理员身份运行”Avlgomgr.exe,勾选“虚拟磁盘”,单击“浏览”按钮,镜像文件选择“d:\boodisk.img”,单击“装配”,把虚拟镜像添加到系统(如图3)。
小提示:使用Avlgomgr.exe无须制作boot.ini文件,它会自动生成该文件。
第二步:单击“开始”,在搜索框输入“cmd.exe”,然后在搜索结果找到“cmd.exe”,右击选择“以系统管理员身份运行”,打开命令提示符后依次输入下列命令添加启动项:
1.bcdedit /store c:\boot\bcd /create /d "GRUB" /application bootsector
新建一个用bootmgr加载的启动项,项目名称为“GRUB”,运行上述命令后,系统会提示“The entry {99f6bb26-5e10-11dc-b804-0016176c84e5} was successfully created.”,其中的“{99f6bb26-5e10-11dc-b804-0016176c84e5}”是系统返回的标识符,每个人电脑不同,记住这个字符,然后把下列命令中的{ID}替换为返回的标识符(如图4)。
2.bcdedit /store c:\boot\bcd /set {ID} device boot
设置当前活动分区作为启动设备
3.bcdedit /store c:\boot\bcd /set {ID} path \Avldr.bin
设置启动扇区路径和文件名,这里将Avlgomgr.exe生成的avldr.bin作为启动扇区文件
4.bcdedit /store c:\boot\bcd /displayorder {ID} /addlast
加入以上设置项目添加到BCD配置文件中
第三步:重新启动后在Vista启动管理器就会出现“GRUB”启动项,选择它即可引导到DOS自动恢复系统,进入系统后可以把程序自动生成的c:\boot.ini删除。
小提示:对于不习惯使用bcdedit命令编辑BCD文件的朋友,他们可以先按方法一添加启动,如果Vfloppy启动出现故障,可以“以系统管理员身份运行”启动Avlgomgr.exe,镜像文件选择“c:\boot\boodisk.img”,单击“装配”,然后在启动管理器菜单选择“Avlgo - BOOTDISK.img”进入DOS即可(启动项名称可以打开c:\boot.ini编辑修改)。
通过Vfloppy可以自动更改启动扇区,不过它的启动方式有BUG。这里借助Avlgomgr.exe加载虚拟DOS镜像bootdisk.img (装配后它会在系统盘根目录下生成avldr.bin启动扇区文件),而且使用bcdedit将启动项添加到BCD文件,可以稳定启动DOS。如果要卸载手动生成的启动项,在命令提示符下输入“bcdedit”获取增加的“grub”项的标识符,再输入“bcdedit /delete {ID}”即可,这里的{ID}是执行bcdedit后返回的标识符。
使用上面的方法添加一键还原后,我们只要在开机后选择新增的启动菜单就可以快速还原Vista了。为了方便以后使用,强烈建议添加启动菜单后再制作系统Ghost镜像