无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 8930|回复: 48
打印 上一主题 下一主题

多硬盘机子要自动整理盘符遇到的难题。

[复制链接]
跳转到指定楼层
1#
发表于 2011-2-17 18:16:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
启动WinPE后都习惯于要求盘符排列和正常系统中的一致,这样方便系统修复和数据恢复、备份,
也看到PE讨论区有个高水平的盘符错乱整理的批处理,也来试验一下,但发现个难题,见以下两图:

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

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

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

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

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

WinPE系统中的硬盘排列.PNG
2#
发表于 2011-2-17 18:32:18 | 只看该作者
刚上传2.15的PE,专门处理了多硬盘顺序。我签名处有链接。

楼主可以对照一下。光盘启动时应该硬盘次序不变。
回复

使用道具 举报

3#
发表于 2011-2-17 19:12:29 | 只看该作者
可以试试这个是否合用.

DrvOffOrder v0.04 chs.rar

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

回复

使用道具 举报

4#
发表于 2011-2-17 19:30:19 | 只看该作者

回复 #2 pseudo 的帖子

更正,签名出没有链接,毛桃新版在这里http://bbs.wuyou.net/forum.php?m ... &extra=page%3D1
回复

使用道具 举报

5#
发表于 2011-2-17 20:05:22 | 只看该作者
原帖由 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 编辑 ]
回复

使用道具 举报

6#
发表于 2011-2-17 20:27:54 | 只看该作者
原帖由 <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 />
更正:大家都没签名了!呵呵
回复

使用道具 举报

7#
发表于 2011-2-17 22:01:04 | 只看该作者
其实我那个盘符调整批处理完全可以处理不同的磁盘排列,可现在的问题是哪个硬盘为0哪个为1,并没有一个标准,如果有标准,就好解决。
回复

使用道具 举报

8#
 楼主| 发表于 2011-2-17 22:14:27 | 只看该作者
上面几位都没有认真看图吧?或者没有理解?
本人所说的情况是由于硬盘排列错乱导致的盘符排列错乱,这是一种很特殊的情况,目前的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 编辑 ]
回复

使用道具 举报

9#
发表于 2011-2-17 22:36:31 | 只看该作者
我明白你的意思,也是这么表述的,我现在想说的是,不是所有的PE都把两块硬盘的顺序搞返的,有的正确,有的错误,什么是正确,什么是错误,没有一个判断标准,不能把WIN所在的硬盘当作0也没有其他标志去区分哪个该是0,哪个不该是,如果有标准,我就可以做到正确调整。
回复

使用道具 举报

10#
发表于 2011-2-17 22:43:32 | 只看该作者
原帖由 lxl1638 于 2011-2-17 22:14 发表
上面几位都没有认真看图吧?或者没有理解?
本人所说的情况是由于硬盘排列错乱导致的盘符排列错乱,这是一种很特殊的情况,目前的WinPE及上面几个工具都无能为力。

我误解了你的用意.

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

它似乎不符合你的要求.
回复

使用道具 举报

11#
发表于 2011-2-17 22:53:42 | 只看该作者
还有一个问题,就是硬盘接口不同可能导致硬盘排列顺序不同,我有两个希捷硬盘,一个是串口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
回复

使用道具 举报

12#
 楼主| 发表于 2011-2-17 23:05:25 | 只看该作者
盘符错乱往往存在于多硬盘的机子中,如果出现硬盘排列错乱,必定会导致盘符排列错乱,且这种情况工具极难做到智能化自动理顺盘符顺序。
回复

使用道具 举报

13#
发表于 2011-2-17 23:16:05 | 只看该作者
其实问题的根本就是WINDOWS是根据什么来排定硬盘的顺序的,今天测试盘符的时候,遇到了一个现象原本是VHD是0,内置硬盘是1,可是插了U盘,内置硬盘竟然变为了2,没有标准不成方圆,WIN本身就混乱,就不要指望什么工具能做到。
回复

使用道具 举报

14#
发表于 2011-2-18 00:06:30 | 只看该作者
正常系统中哪块硬盘设置为启动硬盘,它当然就是系统中看到的“第一块硬盘”。
就像我们将硬盘上的第二个分区设定为激活,启动后第二个分区为“C盘”是一样的道理。
回复

使用道具 举报

15#
发表于 2011-2-18 00:16:23 | 只看该作者
据我所知。
硬盘顺序,由主板接线,进而由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。
其实原来默认的交错分配盘符的情形,很有规律,很合理,并没有错乱,只是可能不合某种需求而已。
回复

使用道具 举报

16#
发表于 2011-2-18 00:26:36 | 只看该作者
“.....设有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。....."???
回复

使用道具 举报

17#
发表于 2011-2-18 00:38:59 | 只看该作者
原帖由 pseudo 于 2011-2-18 00:16 发表
据我所知。
硬盘顺序,由主板接线,进而由BIOS设置确定。
插入U盘、移动硬盘,从U盘、移动硬盘启动时,如果被识别为硬盘,通常被作为首个硬盘。

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



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

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

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

[ 本帖最后由 krell 于 2011-2-18 00:41 编辑 ]
回复

使用道具 举报

18#
发表于 2011-2-18 06:58:26 | 只看该作者
通过这个讨论,我又有了改那个盘符调整批处理的冲动,即增加手动选择硬盘顺序的选项,或者,根据BIOS里硬盘顺序来处理,当然,这种情况要排除U盘是第一硬盘。

我在想GRLDR在启动时能不能获得BIOS中硬盘的序列号或名字,如果有,就好办。
回复

使用道具 举报

19#
发表于 2011-2-18 08:52:36 | 只看该作者
对这个功能,我只在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...
回复

使用道具 举报

20#
发表于 2011-2-18 09:01:17 | 只看该作者

回复 #18 victor888 的帖子

应该可以确定的,问问不点吧,越讨论越全面
回复

使用道具 举报

21#
发表于 2011-2-18 09:45:23 | 只看该作者
硬盘顺序这个东西很有问题,最典型的情况就是一块ide+一块sata,不同系统会出现不同顺序。

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

所以可以这样办,搜索硬盘上是否有windows,有的话读取windows\system32\config\system中mounteddevices项,然后用mountvol命令调整pe盘符使得与系统中一致。如果有多个windows,让用户选择其中一个windows,如果硬盘上搜不到windows,则用pe默认的盘符排序
回复

使用道具 举报

22#
 楼主| 发表于 2011-2-18 10:39:44 | 只看该作者

回复 #17 krell 的帖子

不是本人要确定什么次序问题,而是不同的系统所认为的顺序不同,你还不明白么?
在正常的系统中认为的第一硬盘,到WinPE系统却认为是第二硬盘。
回复

使用道具 举报

23#
发表于 2011-2-18 12:50:15 | 只看该作者

回复 #22 lxl1638 的帖子

我认为大侠没有明白我的意思。

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

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

启动到WinPE后,WinPE可不是像正常的Windows系统那样,一定将系统盘符设定为C盘的。那么在WinPE下是按照什么规范来识别或者分配的呢,这是可以探索的地方。
所以我建议楼主“确认一下您的两块硬盘的连接在主板上的接口是什么次序。”假设您认为的第一块硬盘根本就接到SATA1,而另外一块硬盘是接到SATA0的话,我就认为WINPE中识别的没有错。
回复

使用道具 举报

24#
发表于 2011-2-18 12:57:35 | 只看该作者
原帖由 &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 编辑 ]
回复

使用道具 举报

25#
 楼主| 发表于 2011-2-18 13:10:00 | 只看该作者
原帖由 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 编辑 ]
回复

使用道具 举报

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

按你所说,接到SATA0的硬盘,在WinPE认为是第一硬盘,但这个硬盘在正常系统中却认为是第二硬盘又如何解释?
回复

使用道具 举报

27#
发表于 2011-2-18 14:09:05 | 只看该作者
刚看了一下手边的几台电脑,Windows中硬盘0、硬盘1的排列与连接到主板接口的次序是一样的。(不知道有没有例外)。
所以之前说希望您看看您的硬件连接到主板接口的次序是怎样的。

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

找不出来也没有关系。可以按照BIOS的次序来排列;或者如fujianabc的建议读取Windows注册表,或者手动选择。
回复

使用道具 举报

28#
发表于 2011-2-18 18:49:26 | 只看该作者
fujianabc说的思路很好。

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

使用道具 举报

29#
 楼主| 发表于 2011-2-18 19:05:22 | 只看该作者
原帖由 victor888 于 2011-2-18 18:49 发表
fujianabc说的思路很好。

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


按fujianabc的思路是可行的,但实现起来要做很多事,大体是这样:
1、读取硬盘数目,并读取各硬盘 MBR,从中找到disk signature(硬盘 disk signature 在 MBR 的后部)。
2、挂载原硬盘系统的注册表,从原系统注册表中的 HKLM\SYSTEM\MountedDevices 等位置找到原系统各分区分配到的盘符。
3、按2的结果重新分配盘符。
当然,其中可能还有很多事要做,如搜索原系统注册表文件,
原系统注册表文件的权限属性、原系统注册表一些要用到的键值或子项的权限属性都可能需去掉才能读取。
回复

使用道具 举报

30#
发表于 2011-2-18 19:17:19 | 只看该作者
原帖由 fujianabc 于 2011-2-18 09:45 发表
硬盘顺序这个东西很有问题,最典型的情况就是一块ide+一块sata,不同系统会出现不同顺序。

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


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

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

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

这不一致的效果,
可能是 "盘符" 不一致,
也可能是 "备份" 及 "还原" 不一致.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-2-26 13:36

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表