无忧启动论坛

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

xp系统支持gpt分区硬盘启动

    [复制链接]
31#
发表于 2012-8-2 16:44:34 | 只看该作者

关于32位Windows XP系统支持3TB硬盘的测试

关于32位Windows XP系统支持3TB硬盘的测试
-----------------------------------------------------------
1.测试的硬件环境
  THINKPAD X61
  X6系列底座
  X6系列底座光驱位硬盘托架
  ST3000DM001希捷3TB硬盘 +ORICO 7618SUS3硬盘盒(USB3.0+ESATA)
  WD20EARS西数2TB硬盘 + 元谷科技存储巴士T280硬盘盒(USB3.0)
  自制的SATA硬盘供电电源(12V转5V1.2A)  
2.题外功课:破解X6系列底座光驱位硬盘托架(首创)
  a. X6系列底座光驱位硬盘托架有一个功能,会检测硬盘是会装在托架上,如果没有检测到,
     则BIOS程序不会探测挂在这个SATA口上的硬盘,对于2.5英寸SATA硬盘没有问题,但对于3.5英寸SATA硬盘
     则没办法通过SATA延长线(数据线)接入硬盘托架SATA口。
  b. 2.5英寸SATA硬盘和3.5英寸SATA硬盘供电不一样,前则只需要+5V,后者需要+12V和+5V,
     这就是为什么要自制的SATA硬盘供电电源的原因。
  c. 通过拆开硬盘托架检查电路板发现,检测硬盘是否装入是通过SATA电源口第5脚做到的,如果第5脚对地短路
     则系统会认为硬盘已装到托架上,如果开路,系统则认为硬盘没有装到托架上。因此破解办法是把第5脚对
     地短路。这样3.5英寸SATA硬盘也可以接入了。
  d. 使用3.5英寸SATA硬盘有一个前提:就是在开机要把硬盘先接上并上电,否则BIOS程序会侦测硬盘错误。
     另还发现一个特别之处就是无法通过硬盘盒(ORICO 7618SUS3)的ESATA口接入,必须是裸硬盘接入。
     而X61的主SATA口则可以通过硬盘盒(ORICO 7618SUS3)的ESATA口接入
     
3.测试的软件环境
  a.Windows 7 sp1 x64 + Windows SP3双系统,并装好X61的所有驱动。
  b.DiskGenius 3.8专业版
  c.Windows 2003 SP2的disk.sys文件
  d.Paragon_GPT_Loader.msi
4.测试准备
  将ST3000DM001和WD20EARS硬盘用DiskGenius 3.8专业版分别格式化为一个GPT分区。
5.原系统的测试情况
  a.将ST3000DM001接入硬盘托架SATA口.
    硬件管理器能识别ST3000DM001,但在磁盘管理器中被识别为一个746.52G的GPT保
    护分区,无法为这个磁盘分配盘符。
  b.将WD20EARS接入硬盘托架SATA口.
    硬件管理器能识别WD20EARS,在磁盘管理器中被识别为一个1863.02G的GPT保
    护分区,但无法为这个磁盘分配盘符。
  c.将ST3000DM001通过硬盘盒接入USB口.
    硬件管理器能识别ST3000DM001,但在磁盘管理器中无法识别这个磁盘。
  d.将WD20EARS通过硬盘盒接入USB口.
    硬件管理器能识别WD20EARS,在磁盘管理器中被识别为一个1863.02G的GPT保
    护分区,但无法为这个磁盘分配盘符。
6.disk.sys替换法的测试情况
    在Windows 7 sp1 x64系统将Windows SP3系统%windir%\system32\drivers\disk.sys
    替换为Windows 2003 SP2的disk.sys文件,替换前做好原disk.sys备份。
    同时将%windir%\Driver Cache\i386\driver.cab和sp3.cab重命名,防止系统将disk.sys恢复。
  a.将ST3000DM001通过硬盘盒接入USB口.
    硬件管理器能识别ST3000DM001,但在磁盘管理器中无法识别这个磁盘。
  b.将WD20EARS通过硬盘盒接入USB口.
    硬件管理器能识别WD20EARS,在磁盘管理器中被识别为一个1863.02G的分区,
    会为这个磁盘分配盘符,可以正常使用。
  c.将ST3000DM001接入硬盘托架SATA口.
    硬件管理器能识别ST3000DM001,但在磁盘管理器中被识别为一个2794.52G的分区,
    会为这个磁盘分配盘符,可以正常使用。
  d.将WD20EARS接入硬盘托架SATA口.
    硬件管理器能识别WD20EARS,在磁盘管理器中被识别为一个1863.02G的分区,
    会为这个磁盘分配盘符,可以正常使用。
7.Paragon_GPT_Loader法的测试情况
    恢复Windows SP3系统原版的%windir%\system32\drivers\disk.sys,
    安装Paragon_GPT_Loader.msi
  a.将ST3000DM001接入硬盘托架SATA口.
    硬件管理器能识别ST3000DM001,但在磁盘管理器中被识别为一个2794.52G的分区,
    会为这个磁盘分配盘符,可以正常使用。
  b.将WD20EARS接入硬盘托架SATA口.
    硬件管理器能识别WD20EARS,在磁盘管理器中被识别为一个1863.02G的分区,
    会为这个磁盘分配盘符,可以正常使用。
  c.将ST3000DM001通过硬盘盒接入USB口.
    硬件管理器能识别ST3000DM001,但在磁盘管理器中无法识别这个磁盘。
  d.将WD20EARS通过硬盘盒接入USB口.
    硬件管理器能识别WD20EARS,在磁盘管理器中被识别为一个1863.02G的分区,
    会为这个磁盘分配盘符,可以正常使用。
8.结论
  要在32位Windows XP SP3下使用3TB硬盘(数据盘),必须具备以下条件:
    a.使用GPT硬盘格式
    b.Paragon_GPT_Loader或disk.sys替换法
    c.硬盘必须是内置硬盘(SATA或IDE接口接入),不能是外置硬盘(USB接口接入)


                                                                 ZSQZSQZSQ
                                                                  2012.08.02
回复

使用道具 举报

32#
发表于 2013-1-26 14:42:30 | 只看该作者

回复 #1 510819776 的帖子

自用1.0PE集成与测试成功!
感谢楼主!
回复

使用道具 举报

33#
发表于 2013-1-30 18:42:17 | 只看该作者
学到野了,谢谢
回复

使用道具 举报

34#
发表于 2013-2-5 13:42:22 | 只看该作者
XP32 用 disk.sys+GPT格式+内置硬盘 (在W7下分割再拿到XP32用)
做一分割,写资料超过2T就出问题,要重做分割
做二分割(2000+747),一写资料到747这个分割就出问题,要重做分割 (写到2T这里没问题)

copy 2T要很久,我搞了4次,总有一天还是要用W7。

[ 本帖最后由 2013happyicon 于 2013-2-6 14:59 编辑 ]
回复

使用道具 举报

35#
发表于 2013-2-22 17:00:41 | 只看该作者
一个文件的原因,知道也好。
回复

使用道具 举报

36#
发表于 2013-3-26 20:30:26 | 只看该作者
正好买了个3T硬盘,xp下死活只认7百多G,试试了。
回复

使用道具 举报

37#
发表于 2013-4-12 15:20:18 | 只看该作者
谢谢!下载来用用。
回复

使用道具 举报

38#
发表于 2013-4-12 15:34:24 | 只看该作者
谢谢楼主分享!下载试试看。
回复

使用道具 举报

39#
发表于 2013-7-5 16:33:55 | 只看该作者
楼主 您好 我按你写的 替换了文件 还是不能识别啊 4T移动硬盘用的GTP分区 分了4个去 插上了为什么没有反应?USB可以认 但是在硬盘管理里面看不到硬盘
回复

使用道具 举报

40#
发表于 2013-7-6 10:47:41 | 只看该作者
这个简单真正有效,我测试过成功了。我的全打包统一PE,就是用原版的老毛桃扬州PE,不识别gdt磁盘,后来自己更新后搞定,也可以挂载esp
分区了、
回复

使用道具 举报

41#
发表于 2013-7-8 09:13:29 | 只看该作者
来试试,这个东东!
回复

使用道具 举报

42#
发表于 2013-7-8 12:35:55 | 只看该作者
我看了一下相关的教程
替换后启动XP会检测这个是不是自己的DISK.SYS吧
貌似是那个什么SFC之类的东西作怪
回复

使用道具 举报

43#
发表于 2013-7-17 11:58:22 | 只看该作者
希望能够正常使用
回复

使用道具 举报

44#
发表于 2013-7-17 12:30:56 | 只看该作者
楼主,有一个问题请教,如果把03的disk.sys直接整合到xp的iso启动光盘里,即放到i386文件夹下,是否可以直接可以支持gpt分区
回复

使用道具 举报

45#
发表于 2013-7-24 11:35:09 | 只看该作者
貌似有这样一个问题,各位老大看看怎么解决:
1、不替换disk.sys,在xppe下可以用diskgenius对gpt硬盘进行分区操作--虽然分好的区不能被xppe识别
2、替换disk.sys,在xppe下用diskgenius对gpt硬盘进行分区操作会报错(0000001,函数不正确),但是可以识别已经分好区的gpt硬盘。
回复

使用道具 举报

46#
发表于 2013-7-24 12:05:04 | 只看该作者
fukystone 发表于 2013-7-24 11:35
貌似有这样一个问题,各位老大看看怎么解决:
1、不替换disk.sys,在xppe下可以用diskgenius对gpt硬盘进行 ...

disk.sys貌似从classpnp.sys调用某些函数,你试一下把这个文件也换成2003同版本的看行不行
回复

使用道具 举报

47#
发表于 2013-7-24 13:15:19 | 只看该作者
最好不要直接文件替换,内核里还有哪些东西可能需要修改,否则可能导致稳定性或兼容问题
回复

使用道具 举报

48#
发表于 2013-7-24 14:12:00 | 只看该作者
NicTense 发表于 2013-7-24 12:05
disk.sys貌似从classpnp.sys调用某些函数,你试一下把这个文件也换成2003同版本的看行不行

不行。
这个文件牵涉就大了,它会造成cdrom.sys文件版本不对,即使把cdrom.sys替换为2003的也不行
回复

使用道具 举报

49#
发表于 2013-7-24 15:05:02 | 只看该作者
fukystone 发表于 2013-7-24 14:12
不行。
这个文件牵涉就大了,它会造成cdrom.sys文件版本不对,即使把cdrom.sys替换为2003的也不行

storport.7z (41.83 KB, 下载次数: 23)

搞不懂这种底层级别的关系
这个storport.sys不知道你驱动里有没有
这个按理说xp是不支持的,所以正常情况下应该是用不着的
但是换了disk.sys之后我就不清楚了
虽然解决的可能性不大,不过如果驱动力没这个文件不妨试一下
回复

使用道具 举报

50#
发表于 2013-7-24 19:08:07 | 只看该作者
NicTense 发表于 2013-7-24 15:05
搞不懂这种底层级别的关系
这个storport.sys不知道你驱动里有没有
这个按理说xp是不支持的,所以正 ...

还是不行。
比较搞笑的是,跟踪diskgenius的结果,发现它既没有调用disk.dll,也没有调用classpnp.dll。
跟踪的结果,所谓的函数大概就是“ioctl_disk_set_drive_layout_ex”,唉,果然超出我的能力范围啦……
回复

使用道具 举报

51#
发表于 2013-7-24 19:19:07 | 只看该作者
本帖最后由 fukystone 于 2013-7-24 19:20 编辑

嗯,进一步的分析,发现虽然报错,但是分区其实是已经完成的--重启后发现分区正常。
所以报错应该是diskgenius重新读取分区表信息失败造成的……
所以这个修改还是值得的,天使可以考虑加入这个补丁。同时包括那个mountesp,只有6k,值得加入
回复

使用道具 举报

52#
发表于 2013-7-24 20:08:14 | 只看该作者
mountesp和显示隐藏分区的处理方式一样需要的时候手动点比较好,不去操作他的时候还是不要挂载efi分区比较好,避免误操作
$IOCTL_DISK_SET_DRIVE_LAYOUT_EX不知道是不是在user32.dll里,我电脑上没有任何编程工具,我现在也不知道用啥个工区去查那些库文件包含了哪些函数了
这个函数处理GPT分区的时候要用到,而xp本身不支持GPT分区,所以可能完美的处理方式是把2003的这个函数提出来,加到(或者替换)xp里的这个函数,对应的文件不知道是不是user32.dll,我好多年没编程了,全忘光了,现在也没可能花时间去学习这些用不着的东西了,等编程高手来弄吧
官方对这个函数的介绍有这么一段
When specifying a GUID partition table (GPT) as the PARTITION_STYLE of the CREATE_DISK structure, an application should wait for the MSR partition arrival before sending the IOCTL_DISK_SET_DRIVE_LAYOUT_EX control code.
回复

使用道具 举报

53#
发表于 2013-7-25 13:14:57 | 只看该作者
NicTense 发表于 2013-7-24 20:08
mountesp和显示隐藏分区的处理方式一样需要的时候手动点比较好,不去操作他的时候还是不要挂载efi分区比较好 ...

DLL Export Viewer这个软件可以看它的函数吧

点评

呵呵,下载了,有空研究一下 guid分区表对硬盘大小有没有限制的,我有一堆没用的几十G的硬盘可以拿来玩,坏了就直接丢了,也不怕弄坏数据  详情 回复 发表于 2013-7-25 13:30
回复

使用道具 举报

54#
发表于 2013-7-25 13:30:15 | 只看该作者
freesoft00 发表于 2013-7-25 13:14
DLL Export Viewer这个软件可以看它的函数吧

呵呵,下载了,有空研究一下

guid分区表对硬盘大小有没有限制的,我有一堆没用的几十G的硬盘可以拿来玩,坏了就直接丢了,也不怕弄坏数据
回复

使用道具 举报

55#
发表于 2013-7-26 00:51:26 | 只看该作者
我发现tangope新老版本里disk.sys和这个是一样的,本事就支持GPT分区,我将U盘分成这种分区类型,能完美识别和操作。
回复

使用道具 举报

56#
发表于 2013-7-26 01:21:54 | 只看该作者
列了3万多个函数出来,竟然没有那个函数

fukystone有没有试过原版TangoPE有没有这个问题?
回复

使用道具 举报

57#
发表于 2013-7-26 10:17:19 | 只看该作者
NicTense 发表于 2013-7-26 01:21
列了3万多个函数出来,竟然没有那个函数

fukystone有没有试过原版TangoPE有没有这个问题?

试过,原版也是一样的。
不过其实不影响使用,这个不改也可以,只是报个错而已。一般情况下,我们分完区也会重启一下的……
回复

使用道具 举报

58#
发表于 2013-7-27 14:58:10 | 只看该作者
DISK.SY_  文件替换法太给力了,xppe重新焕发了生机,可以识别guid 分区硬盘。  昨晚自己连续测试了两块小硬盘,用DG专业版分别无损转换guid 分区,xppe 就不能识别和读写了,只能通过分区软件看到。把DISK.SY_替换进的xppe,就能正常读写和操作guid分区的硬盘(现在就差拿真正的GPT大容量硬盘来测试替换后的xppe)。   
   这对于winxp操作系统同样也绝对给力。
回复

使用道具 举报

59#
发表于 2013-7-27 15:47:42 | 只看该作者
fukystone 发表于 2013-7-24 11:35
貌似有这样一个问题,各位老大看看怎么解决:
1、不替换disk.sys,在xppe下可以用diskgenius对gpt硬盘进行 ...

昨天测试时,也是这个思路,2块小硬盘,不替换disk.sy_  - xppe,DG分为GPT区,xppe不能识别和操作该硬盘了,但DG和其他分区软件能识别该硬盘的存在。  然后xppe替换了disk.sy_,进行正常读写操作,于是用DG想无损转回原来的分区格式,出现错误提示(参数溢出),点自动查找错误并恢复按键,DG自动查找给出的原因是从guid转回mgr,硬盘未确认活动分区 。     正常转回mgr,数据安好。
回复

使用道具 举报

60#
发表于 2013-7-27 15:49:38 | 只看该作者
两块硬盘都出现错误提示,从guid转回mgr 确认下活动分区就OK,DG错误提示就没了
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-26 13:35

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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