关于多系统的系统盘符错乱及解决办法

起因

一直都想为宿舍的电脑装个x64的系统,毕竟是支持64位运算的赛扬D嘛,装上x64的系统性能也有不少提升的说,再加上自己比较向往Windows Server 2003 Data Center版本,所以趁着这个机会下载了一张Windows Server 2003 Date Center X64的MSDN镜像了.

然后电脑是没有光驱的,所以不得不使用硬盘/U盘安装法安装系统,折腾一番终于在硬盘上安装好两个系统:
(hd0,0):Windows Server 2003 Standard X86
(hd0,1):Windows Server 2003 Data Center X64
可是进入系统才发现X64系统上盘符全乱了:X86的盘符还是C:,然后X64的盘符变成E:了,其他盘符都有不同程度的错位.要知道,Windows系统盘符早在安装的时候就确定下来了,因此要解决问题,必须在安装过程就修正好盘符问题.
可是,如果不想再重装系统呢(可怜咱的5400RPM的三星硬盘…)?…

解决方案

1.启动64位系统.
2.开始-运行-regedit,运行注册表编辑器.打开HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices项.
3.将\DosDevices\C:的二进制值改名为\DosDevices\Z:,将\DosDevices\E:的二进制值改名为\DosDevices\C:.
4.重启进入32位系统(PE等任何可启动操作系统皆可).
5.打开64位系统的\WINDOWS\system32\config\文件夹,使用WinHex工具打开system,software,default,SAM,userdiff,SECURITY这6个无后缀名的注册表实体文件,批量替换ASCII内容"E:\"为"C:\".
6.如法炮制,使用WinHex打开64位系统的\Documents and Settings\用户名\NTUSER.DAT,批量替换ASCII内容"E:\"为"C:\".
7.重启进入64位系统正常登陆.

[note]

总的来说就是通过修改注册表对硬盘的挂载达到目的,但是经过亲身尝试发现,仅仅修改注册表对系统盘符的挂载是远远不够的(常见为登陆系统后马上注销的死循环).原因很简单,原来的系统变量还指向原来的系统盘符(E:),因此关键文件无法加载,用户当然无法登陆了.

[/note]

后记

贴一下网上找到的X86系统下安装X64 XP/2003的方法:
1.解压Win64光盘到Win64文件夹.
2.将Win64\AMD64文件夹下的PIDGEN.DLL改名为PIDGEN.X64.
3.提取Win32光盘的I386文件夹下的WINNT32.EXE,WINNT32.MSI,WINNT32U.DLL,PIDGEN.DLL四个文件,覆盖Win64\AMD64文件夹下的同名文件.
4.运行Win64\AMD64\WINNT32.exe,安装类型选全新安装.
5.输入Win32光盘的序列号继续安装.
6.出现"正在复制安装文件"界面,复制完会出现"安装程序无法创建,找到或修改启动Windows所需要的关键文件(X:\$LDR$).系统找到不到指定文件"错误对话框,先别点确定.
7.新建名为Win64SETUP的文件夹,打开C盘把txtsetup.sif,$WIN_NT$.~BT文件夹和$WIN_NT$.~LS文件夹复制到Win64SETUP文件夹中.
8.删除Win64SETUP\$WIN_NT$.~LS\amd64文件夹下的PIDGEN.DLL,将XP64\amd64文件夹下的PIDGEN.X64复制到Win64SETUP\$WIN_NT$.~LS\amd64文件夹下并改名为PIDGEN.DLL.
9.将Win64文件夹中的I386文件夹复制到Win64SETUP\$WIN_NT$.~LS文件夹下.
10.点击错误提示的确定按钮,点击完成退出安装.
11.复制Win64SETUP文件夹下的所有文件夹和文件到C:\,并将C:\$WIN_NT$.~LS\I386\SETUPLDR.BIN复制到C:\并重命名未ntldr.

[important]

以上例子为单一系统安装方法如果想把x64系统安装到别的盘.
1.需要在第四步运行winn32.exe加入 /syspart:x (x为安装目的盘符)参数.
2.需要把C:\$WIN_NT$.~LS文件夹复制到X:\根目录.
3.需要把X:\$WIN_NT$.~BT\txtsetup.sif复制到X:\根目录.
4.需要把X:\$WIN_NT$.~LS\I386\NTDETECT.COM复制到X:\根目录.
5.需要把X:\分区设为"可启动的".
[/important]

  1. コメント 0

  1. トラックバック 0



return top