无忧启动论坛

标题: 多硬盘机子要自动整理盘符遇到的难题。 [打印本页]

作者: lxl1638    时间: 2011-2-17 18:16
标题: 多硬盘机子要自动整理盘符遇到的难题。
启动WinPE后都习惯于要求盘符排列和正常系统中的一致,这样方便系统修复和数据恢复、备份,
也看到PE讨论区有个高水平的盘符错乱整理的批处理,也来试验一下,但发现个难题,见以下两图:

第一幅图是正常系统中的硬盘排列,第二幅图是WinPE系统中的硬盘排列,两个系统的硬盘排列正好相反!

[ 本帖最后由 lxl1638 于 2011-2-17 22:42 编辑 ]

正常系统中的硬盘排列.PNG (29.39 KB, 下载次数: 93)

正常系统中的硬盘排列.PNG

WinPE系统中的硬盘排列.PNG (9.9 KB, 下载次数: 91)

WinPE系统中的硬盘排列.PNG

作者: pseudo    时间: 2011-2-17 18:32
刚上传2.15的PE,专门处理了多硬盘顺序。我签名处有链接。

楼主可以对照一下。光盘启动时应该硬盘次序不变。
作者: nu852    时间: 2011-2-17 19:12
可以试试这个是否合用.

DrvOffOrder v0.04 chs.rar

369.88 KB, 下载次数: 197, 下载积分: 无忧币 -2


作者: viptks    时间: 2011-2-17 19:30
标题: 回复 #2 pseudo 的帖子
更正,签名出没有链接,毛桃新版在这里http://bbs.wuyou.net/forum.php?m ... &extra=page%3D1
作者: xt5525    时间: 2011-2-17 20:05
原帖由 viptks 于 2011-2-17 19:30 发表
更正,签名出没有链接,毛桃新版在这里http://bbs.wuyou.net/forum.php?mod=viewthread&tid=132985&;extra=page%3D1


更正!!!
P大的签名处确有连接!

再次更正!!!
P大的签名呢????

[ 本帖最后由 xt5525 于 2011-2-17 20:06 编辑 ]
作者: blithewind    时间: 2011-2-17 20:27
原帖由 <i>xt5525</i> 于 2011-2-17 20:05 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=2161886&ptid=187242" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" /></a><br />

<br />

<br />
更正!!!<br />
P大的签名处确有连接!<br />
<br />
再次更正!!!<br />
P大的签名呢????
<br />
更正:大家都没签名了!呵呵
作者: victor888    时间: 2011-2-17 22:01
其实我那个盘符调整批处理完全可以处理不同的磁盘排列,可现在的问题是哪个硬盘为0哪个为1,并没有一个标准,如果有标准,就好解决。
作者: lxl1638    时间: 2011-2-17 22:14
上面几位都没有认真看图吧?或者没有理解?
本人所说的情况是由于硬盘排列错乱导致的盘符排列错乱,这是一种很特殊的情况,目前的WinPE及上面几个工具都无能为力。

简单说下,如有两个硬盘(A、B),分别是3个分区(A1、A2、A3)和4个分区(B1、B2、B3、B4),
正常系统启动时,系统将A硬盘作第一硬盘,B硬盘作第二硬盘,
依次给A1、A2、A3、B1、B2、B3、B4
分配为C:、D:、E:、F:、G:、H:、I:

但WinPE启动时,将B硬盘作第一硬盘,A硬盘作第二硬盘,上面几个工具,
都是先给B硬盘的分区先分配盘符,即
依次给B1、B2、B3、B4、A1、A2、A3
分配为C:、D:、E:、F:、G:、H:、I:

所以说,这是硬盘排列错乱引起的盘符排列错乱,因为WinPE中的硬盘排列顺序与正常系统的硬盘排列顺序刚好相反,
上面几个工具,都会将正常系统中的第二硬盘作第一硬盘来处理,整理后的盘符顺序必定与正常系统的不同。


[ 本帖最后由 lxl1638 于 2011-2-17 22:18 编辑 ]
作者: victor888    时间: 2011-2-17 22:36
我明白你的意思,也是这么表述的,我现在想说的是,不是所有的PE都把两块硬盘的顺序搞返的,有的正确,有的错误,什么是正确,什么是错误,没有一个判断标准,不能把WIN所在的硬盘当作0也没有其他标志去区分哪个该是0,哪个不该是,如果有标准,我就可以做到正确调整。
作者: nu852    时间: 2011-2-17 22:43
原帖由 lxl1638 于 2011-2-17 22:14 发表
上面几位都没有认真看图吧?或者没有理解?
本人所说的情况是由于硬盘排列错乱导致的盘符排列错乱,这是一种很特殊的情况,目前的WinPE及上面几个工具都无能为力。

我误解了你的用意.

DrvOffOrder 是找寻 "离线系统" 的盘符分配方式的.
因正常 Window7 之 "系统保留", 一般不会有盘符.
而且分配的盘符, 也不一定是顺序排列的.

它似乎不符合你的要求.
作者: wlue    时间: 2011-2-17 22:53
还有一个问题,就是硬盘接口不同可能导致硬盘排列顺序不同,我有两个希捷硬盘,一个是串口320G(作系统盘、引导盘,分三个区卷标命名为 ST1-1,ST1-2,ST1-3),另一个是老的IDE接口80G(作数据盘,分两个区,卷标命名为ST2-1,ST2-2)。

在windows系统下,排列顺序是

ST1-1,ST1-2,ST1-3,ST2-1,ST2-2
   C          D          E         F          G

但在PE系统下,虽然也经过理顺盘符,但有的pe排列为:

ST1-1,ST1-2,ST1-3,ST2-1,ST2-2
   C          D          E         F          G

而有的PE排列为:

ST2-1,ST2-2,ST1-1,ST1-2,ST1-3
   C          D          E         F          G
作者: lxl1638    时间: 2011-2-17 23:05
盘符错乱往往存在于多硬盘的机子中,如果出现硬盘排列错乱,必定会导致盘符排列错乱,且这种情况工具极难做到智能化自动理顺盘符顺序。
作者: victor888    时间: 2011-2-17 23:16
其实问题的根本就是WINDOWS是根据什么来排定硬盘的顺序的,今天测试盘符的时候,遇到了一个现象原本是VHD是0,内置硬盘是1,可是插了U盘,内置硬盘竟然变为了2,没有标准不成方圆,WIN本身就混乱,就不要指望什么工具能做到。
作者: krell    时间: 2011-2-18 00:06
正常系统中哪块硬盘设置为启动硬盘,它当然就是系统中看到的“第一块硬盘”。
就像我们将硬盘上的第二个分区设定为激活,启动后第二个分区为“C盘”是一样的道理。
作者: pseudo    时间: 2011-2-18 00:16
据我所知。
硬盘顺序,由主板接线,进而由BIOS设置确定。
插入U盘、移动硬盘,从U盘、移动硬盘启动时,如果被识别为硬盘,通常被作为首个硬盘。

用grldr引导时,它根据BIOS确定初始硬盘顺序。所以,初始硬盘顺序是可知、确定的。

进入pe桌面后,也可以做到保持初始硬盘顺序不变。

盘符只是分区的指代符,可以没有,也可以另行分配。
设有3个硬盘,每个盘有2个分区。如果用(X,Y)表示第X个硬盘第Y个分区,那么pe分配盘符的默认规则是
(1,1)、(2,1)、(3,1)、(1,2)、(2,2)、(3,2)依次为C、D、E、F、G、H。
好像处理“盘符错乱”的工具倾向于改成(1,1)、(1,2)、(1,3)、(1,2)、(2,2)、(3,2)依次为C、D、E、F、G、H。
其实原来默认的交错分配盘符的情形,很有规律,很合理,并没有错乱,只是可能不合某种需求而已。
作者: zqywult    时间: 2011-2-18 00:26
“.....设有3个硬盘,每个盘有2个分区。如果用(X,Y)表示第X个硬盘第Y个分区,......'
"......好像处理“盘符错乱”的工具倾向于改成(1,1)、(1,2)、(1,3)、(1,2)、(2,2)、(3,2)依次为C、D、E、F、G、H。....."

P大: 笔误了吧??
您是否想说的是:
"......好像处理“盘符错乱”的工具倾向于改成(1,1)、(1,2)、(2,1)、(2,2)、(3,1)、(3,2)依次为C、D、E、F、G、H。....."???
作者: krell    时间: 2011-2-18 00:38
原帖由 pseudo 于 2011-2-18 00:16 发表
据我所知。
硬盘顺序,由主板接线,进而由BIOS设置确定。
插入U盘、移动硬盘,从U盘、移动硬盘启动时,如果被识别为硬盘,通常被作为首个硬盘。

用grldr引导时,它根据BIOS确定初始硬盘顺序。所以,初始硬 ...



可能会存在一个问题,用户认为A硬盘是“第一块硬盘”。而实际A硬盘可能不是BIOS确定的第一块硬盘。

所以我认为理顺工具应该这样的逻辑:
固定硬盘按照BIOS确认的顺序排列。—— (这就叫规则)
如果检测到首硬盘为U盘、移动硬盘(假设可以确认的话,我不太了解),就按照使用者的习惯将它作为最后一个硬盘。——(这就叫人工智能?!呵呵)

我想说的是,请楼主确认一下您的两块硬盘的连接在主板上的接口是什么次序。
任何理顺工具是无法读懂使用者的心的,它无法知道您希望哪块硬盘为“第一块硬盘”。

[ 本帖最后由 krell 于 2011-2-18 00:41 编辑 ]
作者: victor888    时间: 2011-2-18 06:58
通过这个讨论,我又有了改那个盘符调整批处理的冲动,即增加手动选择硬盘顺序的选项,或者,根据BIOS里硬盘顺序来处理,当然,这种情况要排除U盘是第一硬盘。

我在想GRLDR在启动时能不能获得BIOS中硬盘的序列号或名字,如果有,就好办。
作者: dvd008    时间: 2011-2-18 08:52
对这个功能,我只在U盘HDD模式启动,并且需要安装系统时,才考虑使用,

我目前也是两块硬盘:
M==1,2,3个分区
N==5,6,7,8,9,个分区

03默认,M的为C,D,E,  N的继续为F,G....

PE默认,M的1为C, N的5为D,然后是M的 2,3为E,F, 再N的6为G...
作者: viptks    时间: 2011-2-18 09:01
标题: 回复 #18 victor888 的帖子
应该可以确定的,问问不点吧,越讨论越全面
作者: fujianabc    时间: 2011-2-18 09:45
硬盘顺序这个东西很有问题,最典型的情况就是一块ide+一块sata,不同系统会出现不同顺序。

提供一个参考:
用过win7的erd commander的会发现,pe中盘符永远不会乱掉,因为它能直接加载硬盘系统的注册表的mounteddevices,根据硬盘系统中mounteddevices来分配pe的盘符。

所以可以这样办,搜索硬盘上是否有windows,有的话读取windows\system32\config\system中mounteddevices项,然后用mountvol命令调整pe盘符使得与系统中一致。如果有多个windows,让用户选择其中一个windows,如果硬盘上搜不到windows,则用pe默认的盘符排序
作者: lxl1638    时间: 2011-2-18 10:39
标题: 回复 #17 krell 的帖子
不是本人要确定什么次序问题,而是不同的系统所认为的顺序不同,你还不明白么?
在正常的系统中认为的第一硬盘,到WinPE系统却认为是第二硬盘。
作者: krell    时间: 2011-2-18 12:50
标题: 回复 #22 lxl1638 的帖子
我认为大侠没有明白我的意思。

“不同的系统所认为的顺序不同。”
假设我设定硬盘第一个主分区激活,安装系统A,进入这个系统那么系统A在C盘。
如果我将这块硬盘第二个主分区设定激活,并在上面安装系统B,进入这个系统B的时候,系统B仍是C盘,原来的系统A肯定变成其他盘符。

将我上述的例子引伸到多块硬盘的情况。在Windows中,启动的系统必须(或者说非特殊情况下)是C盘,那么这个系统分区所在的硬盘,Windows是不是就是当它为第一块硬盘呢。

启动到WinPE后,WinPE可不是像正常的Windows系统那样,一定将系统盘符设定为C盘的。那么在WinPE下是按照什么规范来识别或者分配的呢,这是可以探索的地方。
所以我建议楼主“确认一下您的两块硬盘的连接在主板上的接口是什么次序。”假设您认为的第一块硬盘根本就接到SATA1,而另外一块硬盘是接到SATA0的话,我就认为WINPE中识别的没有错。
作者: krell    时间: 2011-2-18 12:57
原帖由 &lt;i&gt;fujianabc&lt;/i&gt; 于 2011-2-18 09:45 发表 &lt;a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=2162203&ptid=187242" target="_blank"&gt;&lt;img src="http://bbs.wuyou.net/images/common/back.gif" border="0" onload="if(this.width&gt;screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width&gt;screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;<br />硬盘顺序这个东西很有问题,最典型的情况就是一块ide+一块sata,不同系统会出现不同顺序。&lt;br /&gt;<br />&lt;br /&gt;<br />提供一个参考:&lt;br /&gt;<br />用过win7的erd commander的会发现,pe中盘符永远不会乱掉,因为它能直接加载硬盘系统的注册表的mo ...



fujianabc大大的建议也很好,如果有多个系统让使用者来选择。

[ 本帖最后由 krell 于 2011-2-18 13:07 编辑 ]
作者: lxl1638    时间: 2011-2-18 13:10
原帖由 krell 于 2011-2-18 12:50 发表
我认为大侠没有明白我的意思。

“不同的系统所认为的顺序不同。”
假设我设定硬盘第一个主分区激活,安装系统A,进入这个系统那么系统A在C盘。
如果我将这块硬盘第二个主分区设定激活,并在上面安装系统B, ...


你没有看一楼提供的图片,同一机子(当然每块硬盘挂在那个位置是固定的),
但正常Windows认为的硬盘0,在同一硬盘上启动的WinPE却认为是硬盘1,
(正常Windows系统和WinPE系统都安装在同一硬盘上)。

本人提供的图片已经很明白了:

正常Windows系统启动后,磁盘管理器看到的(不是本人认为的)顺序是
40G硬盘 = 硬盘0(第一硬盘),80G硬盘 = 硬盘1(第二硬盘)

安装在与正常系统同一硬盘、同一分区启动的WinPE,磁盘管器看到的顺序是
80G硬盘 = 硬盘0(第一硬盘),40G硬盘 = 硬盘1(第二硬盘)

就是 fujianabc 所说的那种情况,不同的系统认定的硬盘顺序不同。

[ 本帖最后由 lxl1638 于 2011-2-18 13:13 编辑 ]
作者: lxl1638    时间: 2011-2-18 13:13
原帖由 krell 于 2011-2-18 12:50 发表
所以我建议楼主“确认一下您的两块硬盘的连接在主板上的接口是什么次序。”假设您认为的第一块硬盘根本就接到SATA1,而另外一块硬盘是接到SATA0的话,我就认为WINPE中识别的没有错。

按你所说,接到SATA0的硬盘,在WinPE认为是第一硬盘,但这个硬盘在正常系统中却认为是第二硬盘又如何解释?
作者: krell    时间: 2011-2-18 14:09
刚看了一下手边的几台电脑,Windows中硬盘0、硬盘1的排列与连接到主板接口的次序是一样的。(不知道有没有例外)。
所以之前说希望您看看您的硬件连接到主板接口的次序是怎样的。

如果确认了是WinPE是错的。能找出为什么会错那当然是最好。

找不出来也没有关系。可以按照BIOS的次序来排列;或者如fujianabc的建议读取Windows注册表,或者手动选择。
作者: victor888    时间: 2011-2-18 18:49
fujianabc说的思路很好。

如果能有软件来判断就更好了。
作者: lxl1638    时间: 2011-2-18 19:05
原帖由 victor888 于 2011-2-18 18:49 发表
fujianabc说的思路很好。

如果能有软件来判断就更好了。


按fujianabc的思路是可行的,但实现起来要做很多事,大体是这样:
1、读取硬盘数目,并读取各硬盘 MBR,从中找到disk signature(硬盘 disk signature 在 MBR 的后部)。
2、挂载原硬盘系统的注册表,从原系统注册表中的 HKLM\SYSTEM\MountedDevices 等位置找到原系统各分区分配到的盘符。
3、按2的结果重新分配盘符。
当然,其中可能还有很多事要做,如搜索原系统注册表文件,
原系统注册表文件的权限属性、原系统注册表一些要用到的键值或子项的权限属性都可能需去掉才能读取。
作者: nu852    时间: 2011-2-18 19:17
原帖由 fujianabc 于 2011-2-18 09:45 发表
硬盘顺序这个东西很有问题,最典型的情况就是一块ide+一块sata,不同系统会出现不同顺序。

提供一个参考:
用过win7的erd commander的会发现,pe中盘符永远不会乱掉,因为它能直接加载硬盘系统的注册表的mo ...


DrvOffOrder 便是使用这原理.
衹是它限定必须有 "离线系统" 的存在,
如有多个 "离线系统", 以第一个找到的作对比.

lxl1638 的问题,
是多个硬盘, 在 "正常" 及 "PE" 环境,
相对代表的  DISK x 会有所不同,

如依据 DISK x 作进一步处理,
在 "正常" 及 "PE" 环境,
会得出不一致的效果.

这不一致的效果,
可能是 "盘符" 不一致,
也可能是 "备份" 及 "还原" 不一致.
作者: lxl1638    时间: 2011-2-18 19:45
原帖由 victor888 于 2011-2-18 18:49 发表
fujianabc说的思路很好。
如果能有软件来判断就更好了。


实际上你那个批处理是可以完成这任务的,就是将读取WinPE的注册表改为读取原硬盘系统的注册表。
作者: fujianabc    时间: 2011-2-18 20:02
原帖由 lxl1638 于 2011-2-18 19:05 发表


按fujianabc的思路是可行的,但实现起来要做很多事,大体是这样:
1、读取硬盘数目,并读取各硬盘 MBR,从中找到disk signature(硬盘 disk signature 在 MBR 的后部)。
2、挂载原硬盘系统的注册表,从原系 ...

步骤不用这么多:
1. 挂载system并读取mounteddevices项
2. 从中找到dosdevice项,然后根据dosdevice的内容得到对应的GUID项
3. GUID可以直接用到mountvol命令中
作者: lxl1638    时间: 2011-2-18 20:58
原帖由 fujianabc 于 2011-2-18 20:02 发表

步骤不用这么多:
1. 挂载system并读取mounteddevices项
2. 从中找到dosdevice项,然后根据dosdevice的内容得到对应的GUID项
3. GUID可以直接用到mountvol命令中


好象这种方法不行,同一分区在XP系统和WinPE系统在dosdevice中对应的GUID是不同的,
从底层原理上来说,这个GUID与挂载分区无关,挂载分区的底层原理是:
1、执行 DefineDosDevice,将一个分区挂上(这步完成后已经分配到了盘符,该分区中的文件已经可以访问,GUID应该是这步完成后产生的);
2、执行 GetVolumeNameForVolumeMountPoint,由函数的第三个参数返回取得这个卷的GUID;
3、最后执行 SetVolumeMountPoint 完成分区挂载的整个过程,执行这步好象会将GUID写入注册表。

本人发现,无需执行第2、第3步也可挂载分区。
附件是XP、WinPE系统注册表 HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices 下的内容,发现两个系统的GUID项不同。



[ 本帖最后由 lxl1638 于 2011-2-19 11:27 编辑 ]

MountedDevices.rar

1.36 KB, 下载次数: 26, 下载积分: 无忧币 -2


作者: fujianabc    时间: 2011-2-18 22:06
原帖由 lxl1638 于 2011-2-18 20:58 发表
本人发现,无需执行第2、第3步也可挂载分区


直接通过dosdevice的中磁盘签名和offset就能挂载并分配盘符?
那应该处理起来很简单了
作者: shglkw    时间: 2011-2-19 01:13
在网上下载的PE大部分都已IDE接口的盘为先,即:IDE-0、IDE-1、SATA-0、SATA-1,最近我下载一个PE发现与前者正好相反,即:SATA-0、SATA-1、IDE-0、IDE-1,而Windows系统默认的情况下,都是以BIOS设定第一优先启动硬盘为C盘,我想这就造成PE与Win系统不统一的原因吧。
作者: lxl1638    时间: 2011-2-19 11:42
原帖由 fujianabc 于 2011-2-18 22:06 发表


直接通过dosdevice的中磁盘签名和offset就能挂载并分配盘符?
那应该处理起来很简单了


原理就是这样,但并非很简单。

可以读取原系统的磁盘签名和分区offset,确定这个分区在当前WinPE系统中的硬盘Index和分区Index来挂载分配盘符,
执行 DefineDosDevice 挂载分区时必须知道硬盘序号和分区序号,DefineDosDevice 挂载分区时,其中一个参数是:
"\Device\HarddiskX\PartitionY" 这样的形式(XY分别为硬盘ID和分区ID),所以关键是由原系统注册表的分区offset
与工具读取到的分区offset对比,来确定分区序号,因此,简单单纯的批处理可能无法完成这功能了,因为原系统中的
一些分区可能是没有分配到盘符的,如某些机子的备份隐藏分区、用户有意的隐藏分区或用户有意隐藏的驱动器卷,
这些分区不一定是第一分区,也不一定是最后分区,可以是其中任一分区。

[ 本帖最后由 lxl1638 于 2011-2-19 11:52 编辑 ]
作者: slore    时间: 2011-2-19 11:47
不是只要确定那个硬盘先处理就好了么?
作者: lxl1638    时间: 2011-2-19 11:49
原帖由 slore 于 2011-2-19 11:47 发表
不是只要确定那个硬盘先处理就好了么?


意思是这样,读取原硬盘系统的注册表,按原硬盘系统的方案分配盘符。
作者: slore    时间: 2011-2-19 12:19
可以读取原系统的磁盘签名和分区offset,确定这个分区在当前WinPE系统中的硬盘Index和分区Index来挂载分配盘符,
执行 DefineDosDevice 挂载分区时必须知道硬盘序号和分区序号,DefineDosDevice 挂载分区时,其中一个参数是:
"\Device\HarddiskX\PartitionY" 这样的形式(X、Y分别为硬盘ID和分区ID),所以关键是由原系统注册表的分区offset
与工具读取到的分区offset对比,来确定分区序号,因此,简单单纯的批处理可能无法完成这功能了,因为原系统中的
一些分区可能是没有分配到盘符的,如某些机子的备份隐藏分区、用户有意的隐藏分区或用户有意隐藏的驱动器卷,
这些分区不一定是第一分区,也不一定是最后分区,可以是其中任一分区。


所以觉得知道硬盘ID处理好了就OK了吧,你所说的初批处理不能完成的对隐藏分区的这些。。。貌似不影响确定硬盘顺序
作者: lxl1638    时间: 2011-2-19 12:45
原帖由 slore 于 2011-2-19 12:19 发表


所以觉得知道硬盘ID处理好了就OK了吧,你所说的初批处理不能完成的对隐藏分区的这些。。。貌似不影响确定硬盘顺序


你认真从头看这个主题,前面已多次提到,同一硬盘,在正常系统和WinPE系统中认定的硬盘ID是不同的,正是出现这种特殊情况才出现这个主题。
作者: netwinxp    时间: 2011-2-20 20:23
这个问题很不好解决,主要缘由于WINDOWS本身的混乱,在多PATA硬盘的情况下甚至还会出现交叉分配盘符的问题,不过主从盘还算清楚,到了SATA则出现了端口检测顺序的问题,如果再加上多硬盘控制器+多硬盘那就更乱成一团了。除非原来有且只有一个硬盘中有windows并从其注册表读取挂接顺序。

[ 本帖最后由 netwinxp 于 2011-2-20 20:25 编辑 ]
作者: zhaohj    时间: 2011-2-21 09:18
根据我的经验,如果用户不主动更改BIOS的硬盘启动顺序(要注意插入U盘可能改变硬盘启动顺序),全内置PE是不会改变硬盘顺序的。
CSPE和0PE以前会改变硬盘顺序的,这些都是全外置PE,对硬盘进行了map。
0PE新版做了处理,目前不会改变硬盘顺序。

不知九个使用的是哪个PE?让我们来分析一下。
最好的验证方式是PXE启动。
作者: princenigma    时间: 2011-2-21 09:25
search usbdlm
作者: lianjiang    时间: 2011-2-21 10:10
看来这个问题很复杂,还得靠自己的眼睛。
作者: lxl1638    时间: 2011-2-21 11:04
原帖由 zhaohj 于 2011-2-21 09:18 发表
根据我的经验,如果用户不主动更改BIOS的硬盘启动顺序(要注意插入U盘可能改变硬盘启动顺序),全内置PE是不会改变硬盘顺序的。
CSPE和0PE以前会改变硬盘顺序的,这些都是全外置PE,对硬盘进行了map。
0PE新版 ...


本人使用的是全内置PE,应该是深度以前一个版本,大概是4.2版(本人砍掉了外置),PE和XP系统都安装在同一硬盘的同一分区。

都是在同一硬盘上启动,这个与BIOS无关,还是与系统有关,现在测试的机子很特殊,
由"万家牌"硬件组成(很多是朋友或别人换下来的装上去的):主板不支持SATA硬盘(无SATA接口),开始挂了一个40G的IDE硬盘,后来从朋友那个得到一个80G的SATA硬盘(通过PCI3114西霸卡挂上);
系统也很乱:WinPE本身集成了SIL3114驱动,而XP系统的SIL3114驱动是后来装上去的。

所以初步判断是与系统有关,或者说是与系统加载驱动的顺序有关,由于硬盘上的XP系统的SIL3114驱动是后来安装的,PCI3114卡上挂载的硬盘可能最后才被识别到,被认为是第二硬盘;
WinPE系统内置集成SIL3114驱动,PCI3114卡上挂载的硬盘可能首先被识别到,被认为是第一硬盘。所以出现了不同系统硬盘顺序不同。

[ 本帖最后由 lxl1638 于 2011-2-21 11:08 编辑 ]
作者: 81129950    时间: 2011-2-21 11:51
各位大侠,你们研究了主板0与1的接口,研究了进PE与操作系统不同,但是还有一个问题你们没考虑,这就是系统是从哪一个硬盘启动的,也就是BIOS设置第一启动是哪个硬盘,这在启动系统后会影响到盘符,还有就是这几个硬盘有几个主分区,不管哪个硬盘,默认系统安装好后主分区都是靠前的。因此,多硬盘机子未整理的盘符是很乱的。基本上是这样,启动系统的活动主分区最前,其它硬盘的主分区依次,启动系统的硬盘的其它分区,其它硬盘的其它分区。
作者: zhaohj    时间: 2011-2-21 12:07
现在不考虑盘符,只考虑硬盘顺序。
九哥能否在grldr的命令行下看一下硬盘顺序呢?
geometry (hd0)
geometry (hd1)
作者: slore    时间: 2011-2-21 12:15
2个硬盘,都有系统。。。。进入不同的系统话,自己本身所在硬盘应该是C,D,。。。这样吧。

那么进入PE后又希望谁先谁后呢?
作者: fujianabc    时间: 2011-2-21 12:39
原帖由 zhaohj 于 2011-2-21 12:07 发表
现在不考虑盘符,只考虑硬盘顺序。
九哥能否在grldr的命令行下看一下硬盘顺序呢?
geometry (hd0)
geometry (hd1)

grldr下硬盘顺序和dos以及bios中一致,凡是bios中设为启动硬盘的为hd0。
如果不从硬盘启动,而是从光盘或软盘启动,实模式中的硬盘顺序也是混乱的,尤其是存在不同接口的硬盘时,比如同时接了ide,sata, usb三个硬盘,然后从软盘启动dos,天知道硬盘顺序是怎么样的。

当然,新一点的bios可以设置第二第三第四等顺序启动设备,那实模式下硬盘顺序应该和bios设置中的




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3