20071010

更换硬盘之后的双系统盘符和启动的修复

Author:  WinkCategories:  Hardware, WindowsNo Comments »

最近GF觉得她的笔记本硬盘太小了,我就作了一次活雷锋,将自己笔记本上的HITACHI 160GB Travelstar 5K160 (HTS541616J9SA00)硬盘和她的Fujitsu 80G (MHV2080BH PL)互换。

我的硬盘内容大概是:Windows XP和Windows Vista双系统,然后另外有三个分区。和同事借来了Ultrabay Slim插上Fujitsu 80G硬盘,然后在Windows XP中按照我的意愿将富士通硬盘重新分区。再使用USB光驱(因为光驱槽被Ultrabay Slim占用了…)重新启动使用GHOST将日立硬盘上的分区一个一个对拷到富士通硬盘上,之所以不使用整盘对拷是因为80G实在是小了点,所以我将每个分区的大小都作过了调整。

对拷完毕,将内置的硬盘换成Fujitsu 80G之后,问题出现了。表现为Windows XP无法启动,提示为:

文件:\ntldr
状态:0xc000000e
信息:无法加载所选项,因为应用程序丢失或损坏。

尝试Windows Vista,也不行。这个容易,使用Windows Vista安装光盘,启动后点击“修复计算机”重建引导信息。重启之后就可以进入Windows Vista了,但是在加载用户配置文件时提示出错,并且速度极慢,猜想可能是盘符错乱而导致系统搜索在文件。漫长等待之后进入系统一看果然没错。Windows Vista提示我“无法加载用户配置文件,现在使用的是临时配置文件”。Explorer无法使用,直接导致无法使用右键,无法浏览文件。心想这个简单,不就是重新调整盘符嘛,使用“compmgmt.msc”进入“计算机管理控制台”,点击“磁盘管理”,加载过程一样很慢。等到加载完毕一看,原来是Windows Vista的盘符跑到最后去了,导致后面分区的盘符全部提前一级。而且本来安装好Windows Vista之后并使用该系统时,它会将自己的分区作为C盘而Windows XP的分区作为D盘(可能是我两个分区都是活动分区的原因吧,不是很清楚是否Windows Vista就是这个机制),但是现在Windows XP变成了C盘。具体变化如下:

盘符 原来的卷 现在的卷
C Windows Vista Windows XP
D Windows XP Temp
E Temp Program
F Program Files
G Files Windows Vista

本以为直接用“磁盘管理”更改盘符就好了,结果发现这样根本不行,两个主分区在Windows Vista下无法更改盘符;而以前我将分页文件放至Temp卷下,现在由于错乱被放到Program卷下,有分页文件的分区也无法更改盘符,而系统属性又无法打开(废话,现在什么都打不开…)我的神啊,好乱啊!

没办法,还是使用注册表吧。运行“regedit”,还好注册表还可以使用。找到“HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices\”,在右边可以看到几个“DosDevices\C:”的键,按照原来正常的和现在混乱的盘符与卷标的对应关系修改键名就可以了,比如将现在的“DosDevices\C:”修改为“DosDevices\D:”(当然了,会提示重名,需要先将其中一个改为现在不存在的盘符,比如H,然后将其它的修改完毕后再将它改回来。)

重新启动系统,发现已经正常了!Oh yeah,下一步是搞定Window XP的错误了。看起来应该还是引导启动的部分出错了。还好现在可以正常使用Windows Vista,使用BCDEdit命令应该可以搞定。可以参考BCDEdit Commands for Boot Environment文档和TechNet的这篇BCDEdit Command-Line Options文档。这里需要使用的很简单,就是重建Windows XP的引导而已。

运行CMD进入命令控制行,键入两行命令:

bcdedit /set {legacy} device boot
bcdedit /set {legacy} path \ntldr

系统会提示“操作成功”。顺带一提,安装了Windows Vista之后会默认在引导菜单中将Windows XP称为“早期版本的Windows”,好难听,使用

bcdedit /set {legacy} description "Windows XP Professional SP2"
bcdedit /set {current} description "Windows Vista Ultimate 32-bit"

修改一下。第一行是修改Windows XP的,第二行是修改当前系统也就是Windows Vista的。

另外赘述一下,如果Boot Manager菜单的语言错误造成乱码,可以使用下述命令修改:

bcdedit /set {bootmgr} locale zh-CN

此命令修改的是需要启动的操作系统的选择菜单,也就是多重操作系统共存时选择需要启动哪个操作系统的选择菜单的显示语言。而若要修改当前选定的Windows系统的F8高级启动菜单的显示语言,可以使用下述命令:

bcdedit /set {current} locale zh-CN

同理,修改“早期版本”Windows系统的F8高级启动菜单的显示语言以及Windows内存诊断工具的显示语言,分别使用命令:

bcdedit /set {legacy} locale zh-CN
bcdedit /set {memdiag} locale zh-CN

之后使用bcdedit /enum all查看上述值是否修改成功。

最后重新启动进入Windows XP尝试一下,神啊,正常了,我汗都下来了。进入系统,正想享受一下胜利的喜悦,结果…Windows XP的盘符也错乱了!!没办法,按照老办法再重新来一遍吧。修改好注册表再启动,这次可是真正的全国大解放了!

You can follow any responses to this entry through the RSS 2.0 feed. Responses are currently closed, but you can trackback from your own site.

Comments are closed.

Back to Page Top