|
再议【分区】与【ARC路径】
下面是本人做的实验,每一步严格按照老九说明做。
(1) 一块硬盘5G,分一区,装好一个Windows 2000系统;把一个WinPE和PELDER、Avlder.pe及WINNT.SIF放到此分区跟目录下,在boot.ini里添加C:\Avldr.xpe="WinPE",即:
[boot loader]
timeout=20
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows 2K Professional" /noexecute=optin /fastdetect
C:\Avldr.xpe="WinPE"
各自启动正常。这就是“初步安装”。如图:
┌─────────────────────────┐
│ C:Win2k │
└─────────────────────────┘
此时分区序号与ARC路径是一致,亦即是分区就是第一主分区。
(2) 启动WinPE,运行Paragon Partition Manager,在上面分区前面腾出256M空间。
(3) 在新空间建一个新的主分区,将其格式化为NTFS,不激活。此时磁盘分区如下图:
┌────┬────────────────────┐
│*WinPE │ C:Win2k │
└────┴────────────────────┘
(4) 把boot.ini修改为老九说明第四步的内容,亦即是把partition(1)改为partition(2),Win2k不能启动,显示“missing or corrupt <Windows root>\System32\hal.dll”错误。现在来看看为什么不能启动。
用光盘启动到DOS,运行Acronis Partition Expert,查看两分区属性,如下:
-----------------------------------------------
WinPE: WinNT4/2000/XP Number d(0)p(2)
Linux Number hda2
===============================================
Win2k: WinNT4/2000/XP Number d(0)p(1)
Linux Number hda1
-----------------------------------------------
再清楚不过了,原主分区(Win2k)属性没变化,新建的分区(WinPE)尽管在物理位置上排在前面,但ARC路径却是排在后面;或者这样称“第一个分区”为“第二主分区”(嗯,比较拗口)。所以上面的partition(2)是指向WinPE,才有“missing hal.dll”错误而不能启动。
看来,ARC路径是按分区表来定义,分区表在物理(非逻辑)硬盘最前面63个隐藏扇区的第一个扇区,该扇区叫做主引导记录扇区,即是MBR,在MBR扇区里靠后位置有64byte为分区表(每个分区信息占用16byte,故最多只能有四个主分区),它可不是按分区实际位置顺序来写入,而是按操作顺序,先建的在前面,后建跟着。又因分区表独立于操作系统,一旦建立,操作系统是不能改变它。各位可以用WinHex查看证实。
为了更进一步求证,我在上面Win2k分区后面再腾出些空间,建一个主分区,Lable名为Rear;跟着在Win2k分区前又腾出些空间建个主分区Lable名为Front,如下图:
┌────┬────┬──────────┬────┐
│*WinPE │*Front │ C:Win2k │*Rear │
└────┴────┴──────────┴────┘
按老九的意思 partition(): 1 2 3 4
然则应是 partition(): 2 4 1 3
(5) 好了,只要boot.ini什么也不改动就能顺利启动。继续老九说明的第⑤步。该步要求用FIXNTBOOT或PQBoot32.exe向WinPE区写NT引导,应是多余的,因为在建主分区格式化的时候,Paragon Partition Manager已为我们建好了,所需的启动文件ntdlr、NTDETECT.COM和boot.ini,原操作系统分区全都有,复制到新建的分区下即好。
(6) “将XP所在分区下的WinNT.SIF、AVLDR.PE、PELDR和WinPE映像共四个文件复制到这个新建的分区下”,照做。
(7) 新分区下的boot.ini文件,如上面所述,不能改动。
(8) “将这个新建分区激活,并把原来XP所在的分区设不非活动,检查无误后才重启”,这一步明显错误。大家都知道,活动主分区(没有隐藏)首先分配盘符为C,其它的主分区或扩展分区下逻辑盘就从D开始依次分配。
上面那个新建主分区(WinPE)处在激活状态但没有隐藏,先分配盘符为C,操作系统的分区(Win2k)则为D,而操作系统原先是安装在C盘,注册表里有上万条路径指向C盘,我不知道系统能否启动得了,就算行也错误百出。
正确的做法应是这样,在把新建分区(WinPE)激活的同时也设置隐藏,那么盘符就不会乱了。
******************************************************************************************************************
上面提到的分区在物理上的位置与分区入口点(ARC路径)不同,可以用WinHex手工编辑分区表,把它们按位置顺序重新摆放,这时候分区表的顺序跟硬盘实际分区的顺序相同,亦即是分区位置就与ARC路径一致了,老九的说明书有关boot.ini部分就再也没有歧义了。在Linux下的分区软件fdisk有个参数/f就是干这种活,但我没试过。
最后要说的是,该"中级模式"安装实用性不高,原因是各种启动工具盘多如牛毛。有人说俺机器没有光驱、没有软盘、没有U盘甚至没有开关(关机快--拔电源),这种极端情况大多具有一键恢复(F11),若一定划个主分区安装WinPE,也应该在操作系统分区后面,因分区最后面通常是没有数据,新建分区时不需文件移动,移动系统文件总是有风险的,且花上不少时间。该安装法想必鲜有人去尝试,小弟是不是有点“吹毛求疵”呢?
还要表明,就算小弟所说的侥幸有某些正确,并不代表对老九的水平有所怀疑,更无意向权威挑战。 |
|