无忧启动论坛

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

[求助] 请教各位grldr引导pe出现的现象?(已经解决)

[复制链接]
跳转到指定楼层
1#
发表于 2011-6-3 19:53:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天用GRLDR启动一个刚分区的 SETUPLDR.BIN ,结果如图提示,但是用XORLDR引导这个 SETUPLDR.BIN 能够正常启动 PE ,何故?
谢谢!

之前用 DISKGEN 建立的扩展分区引导PE出错,用 WINPM 7.0 重新建立该扩展分区,问题解决!





不点兄在17楼找出 DISKGEN 分区错误,引用如下,在此感谢!

原帖由 不点 于 2011-6-7 23:07 发表
没关系,根据你提供的两个分区表,终于发现 diskgen 的错误了。
你可以向 diskgen 的开发者报告 bug。
由于此处 H=255,S=63 是已知的,所以,无论是 LBA 到 CHS,还是 CHS 到 LBA,转换都很简单。
扩展分区表起始于 LBA=62942670        转换为 C/H/S=3918/0/1
分区 (hd0,4) 起始于 LBA=62942733        转换为 C/H/S=3918/1/1
分区 (hd0,4) 终止于 LBA=188771861        转换为 C/H/S=11750/128/48
由于 C 值超过 1023,所以,忽略 C 值,只考虑 H/S 的转换结果。
diskgen 计算出的 (hd0,4) 的起始 C/H/S=1023/211/1,它应该是 1023/1/1 才算是正确的。
diskgen 计算出的 (hd0,4) 的终止 C/H/S=1023/218/48,它应该是 1023/128/48 才算是正确的。
也就是说,diskgen 计算出的 H 是错误的。
所以,这证实了 bug 是属于 diskgen 的。完毕。


[ 本帖最后由 天涯海角1216 于 2011-6-8 06:10 编辑 ]
2#
发表于 2011-6-3 22:34:26 | 只看该作者
扩展分区引导pe应该要用到如下第一种才行吧。。

title   5, Find and load WinPE \n 此方法适合启动主分区和逻辑分区的PE
find --set-root --ignore-floppies --ignore-cd /boot/H3PE/03g4d
map --in-place ()+1 (hd0)
map --hook
chainloader --force /boot/H3PE/03g4d

title   5, Find and load Windows \n 启动逻辑分区windows需修改boot.ini(rdisk(0))为1
find --set-root --ignore-floppies --ignore-cd /ntldr
map ()+1 (hd0)
map (hd0) (hd1)
map --harddrives=2
map --hook
chainloader (hd0,0)/ntldr

title   5, Find and load WinPE \n 此方法适合启动任意主分区上的PE
find --set-root --ignore-floppies --ignore-cd /boot/H3PE/03g4d
map ()+1 (hd0)
map --hook
chainloader --force /boot/H3PE/03g4d
回复

使用道具 举报

3#
 楼主| 发表于 2011-6-4 08:26:17 | 只看该作者
我采用这种方法在前一个硬盘上启动PE成功

title 【11】 盛世雄风 WinPE 维护系统
find --set-root /boot/syslinux/IBM.ICO
map +1 (hd0)
chainloader /BOOT/SSXFLDR
回复

使用道具 举报

4#
发表于 2011-6-4 09:06:58 | 只看该作者
我采用这种方法在前一个硬盘上启动PE成功

title 【11】 盛世雄风 WinPE 维护系统
find --set-root /boot/syslinux/IBM.ICO
map +1 (hd0)
chainloader /BOOT/SSXFLDR

逻辑分区应该不行吧?
回复

使用道具 举报

5#
 楼主| 发表于 2011-6-4 17:15:31 | 只看该作者

回复 #4 yjd 的帖子

这个在前面的硬盘上是能正常启动PE的。
回复

使用道具 举报

6#
发表于 2011-6-4 17:39:36 | 只看该作者
Error 41 已经说清楚了:扩展分区表有错误。
回复

使用道具 举报

7#
 楼主| 发表于 2011-6-5 20:53:58 | 只看该作者
谢谢,用新版DISKGEN 检测居然说没问题,很郁闷…
回复

使用道具 举报

8#
发表于 2011-6-6 01:52:24 | 只看该作者
是否曾经对该硬盘改过分区结构。除了第一次分区和格式化之后。又进行过其他分区类操作。导致某些分区参数的差异。我试着调整过一个分区的大小。并格式化其中一个分区。结果整出来的参数WINHEX里的。和其他没调整的参数在几个核心参数的位置上误差很大。比如我改的是D盘,以前它的MFT位置也是762342,但是改过后的结果它变成了4,而其他清一色是762342,而且扇区号也对不上,我看不出其中的规律,其他的盘EFG都能对上号。这也许就是不同分区工具导致的不同效果。虽然也能正常使用。但是总感觉参数不一致。用一些分区表软件打开也不会报错。

[ 本帖最后由 2010fengyun 于 2011-6-6 01:53 编辑 ]
回复

使用道具 举报

9#
 楼主| 发表于 2011-6-6 09:09:49 | 只看该作者
总觉得这个 diskgen 3.4.5   有问题,其他软件检测这个分区表也有问题,偏偏 diskgen 3.4.5  说没问题!
以前就发现 diskgen 技术不过关,所以一般结合 WINPM 7.0 使用。。。
回复

使用道具 举报

10#
发表于 2011-6-6 09:42:16 | 只看该作者
这就是所谓的"分区不良"。前两年一直用winpm 7.0,不会出分区不良。
不过最近手上有4K的硬盘以及SSD,不能再用winpm 7.0了,那个会对不齐的,现在一直用win7自己的diskpart和磁盘管理器
回复

使用道具 举报

11#
发表于 2011-6-6 09:43:28 | 只看该作者
DISKGEN 3。4。5 已经不再检测CHS 错误,可能是CHS参数错误的问题吧。
回复

使用道具 举报

12#
 楼主| 发表于 2011-6-7 09:45:43 | 只看该作者
今天用 PTDD 3.5 和WINPM 7.0重新分区,启动 PE 正常!
这个 DiskGenius 3.4.5.1 还是不行的,呵呵
回复

使用道具 举报

13#
发表于 2011-6-7 10:41:53 | 只看该作者
你可以把diskgen的扩展分区表以及分区引导扇区上传(总共两个扇区,通常这两个扇区相距 63 扇区),研究一下,看看能否支持 diskgen。

作为对比,你也可以上传 PTDD 和 WinPM 的。

grub4dos 开发之初,是以微软的分区格式为蓝本(把它作为标准),diskgen 有可能创建出更“合理”的分区表和引导扇区,但却与微软的不同。如果确实是这样,那么,diskgen 也应该被支持。
回复

使用道具 举报

14#
 楼主| 发表于 2011-6-7 13:36:55 | 只看该作者

回复 #13 不点 的帖子

不点 兄看看,那个分区的PBR没了,被我清零,我看PBR没问题的!
下面是主分区表和扩展分区表。

主分区表.rar

563 Bytes, 下载次数: 28, 下载积分: 无忧币 -2

扩展分区表.rar

140 Bytes, 下载次数: 26, 下载积分: 无忧币 -2

回复

使用道具 举报

15#
发表于 2011-6-7 17:37:27 | 只看该作者
不行,grub4dos 的仿真代码,需要检测 pbr 的代码(BPB)。你不可以把它清零。

请你上载 PBR。

而且,我主要怀疑的,正是 PBR 中的 某些 BPB 域有差异,才导致 diskgen 与 PTDD / WinPM 的不同表现。

你自己也可以比较一下两者有何差异。

作为对比,还需要你上载 PTDD 或者 WinPM 的结果,包括主分区表和扩展分区表以及PBR。

[ 本帖最后由 不点 于 2011-6-7 17:51 编辑 ]
回复

使用道具 举报

16#
 楼主| 发表于 2011-6-7 19:21:37 | 只看该作者

回复 #15 不点 的帖子

我仔细搜索了,实在对不起,连备份的 PBR 都被我清零了!
没办法出现了,见谅!
回复

使用道具 举报

17#
发表于 2011-6-7 23:07:38 | 只看该作者
没关系,根据你提供的两个分区表,终于发现 diskgen 的错误了。

你可以向 diskgen 的开发者报告 bug。

由于此处 H=255,S=63 是已知的,所以,无论是 LBA 到 CHS,还是 CHS 到 LBA,转换都很简单。

扩展分区表起始于 LBA=62942670        转换为 C/H/S=3918/0/1
分区 (hd0,4) 起始于 LBA=62942733        转换为 C/H/S=3918/1/1
分区 (hd0,4) 终止于 LBA=188771861        转换为 C/H/S=11750/128/48

由于 C 值超过 1023,所以,忽略 C 值,只考虑 H/S 的转换结果。

diskgen 计算出的 (hd0,4) 的起始 C/H/S=1023/211/1,它应该是 1023/1/1 才算是正确的。
diskgen 计算出的 (hd0,4) 的终止 C/H/S=1023/218/48,它应该是 1023/128/48 才算是正确的。

也就是说,diskgen 计算出的 H 是错误的。

所以,这证实了 bug 是属于 diskgen 的。完毕。
回复

使用道具 举报

18#
 楼主| 发表于 2011-6-8 06:05:16 | 只看该作者

回复 #17 不点 的帖子

非常感谢不点兄,高手就是高手。
以前的硬盘是用XP自带的磁盘管理分区的,就这个新硬盘才用 DISKGEN 分区,果真是它的错误,看样子以后用 PTDD 和 WINPM 结合分区才安全啊
回复

使用道具 举报

19#
发表于 2011-6-8 12:41:39 | 只看该作者
我在diskgen论坛发了这个问题,作者的回复:
请问你能重现这个问题吗?
使用的DiskGenius是DOS版还是Windows版?
DiskGenius检测到的硬盘参数是否正确?
回复

使用道具 举报

20#
 楼主| 发表于 2011-6-8 14:02:01 | 只看该作者
这个不想再做了,以后遇到再说吧,呵呵
回复

使用道具 举报

21#
发表于 2011-6-8 17:03:07 | 只看该作者

回复 #19 freesoft00 的帖子

重现问题?根本不用重现。天涯海角1216 活生生地截取了 diskgen 创建的分区表,有此一例,即可证明。只要研究14楼的两个分区表以及核实17楼的计算无误,就能证明 diskgen 有问题了。一旦核实了,解决它则是很容易的一个问题了。
回复

使用道具 举报

22#
发表于 2011-6-9 20:40:15 | 只看该作者
原帖由 天涯海角1216 于 2011-6-8 14:02 发表
这个不想再做了,以后遇到再说吧,呵呵

嘿嘿,请就图中圈定问题作答。谢谢!

36.png (5.98 KB, 下载次数: 121)

36.png
回复

使用道具 举报

23#
发表于 2011-6-10 06:07:17 | 只看该作者
如果磁头数确实是 240,那么 diskgen 的计算是准确的。

DOS 下的软件,使用 int13 所获得的 CHS 是准确的。这与 U 盘的情况一样,CHS 的值随主板的不同而变化。所以,你在这块主板上使用这个硬盘,与在另外一块主板上使用同一个硬盘,其CHS参数有可能不同。

初步怀疑,天涯海角的主板是故意捣乱的。磁头数不该是 240,而应该是 255。如果磁头数搞成 240,那么 DOS 下用 CHS 模式可访问的磁盘容量就要少了,某些 DOS 软件不使用 LBA,而只使用 CHS。

天涯海角可以做一个测试,在同一个机器上,用 Win98 的 Fdisk 在实模式的 DOS 下分区,看看分区表是否为 H=240。如果确实是  240,就证明 diskgen 没错。如果不是 240,就证明 diskgen 有错(因为微软的是标准,即使微软错了,也得与微软的一致,不一致的,都算是错的)。


=========

还有一个疑问:天涯海角是如何格式化 (hd0,4) 的?因为 (hd0,4) 的 BPB 中显示 H=255,因此,怀疑执行 (hd0,4) 格式化的,是另外一个软件,而不是 diskgen。或者虽然也是 diskgen,但可能是在保护模式的 Windows 下操作,无法获得实模式的 H=240 的信息。

=========

再补充:grub4dos 下用 geometry --tune 可以获得真实的 CHS 参数。

安装 fbinst 到这个硬盘,并用 fbinst 启动,也能获得准确的 CHS 参数。

[ 本帖最后由 不点 于 2011-6-10 06:13 编辑 ]
回复

使用道具 举报

24#
 楼主| 发表于 2011-6-10 10:12:50 | 只看该作者

回复 #23 不点 的帖子

我的主板是 IBM X32, 是 intel i855PM 主板,我是在PE 下用 DISKGEN 分区后,用PE的磁盘管理格式化的。

因为硬盘装了很多文件,所以就不想再重新分区格式化测试了。。。
以后遇到问题,再反馈吧。。。
回复

使用道具 举报

25#
发表于 2011-6-10 15:12:17 | 只看该作者
回复

使用道具 举报

26#
发表于 2011-6-10 17:10:41 | 只看该作者
原帖由 天涯海角1216 于 2011-6-10 10:12 发表
我的主板是 IBM X32, 是 intel i855PM 主板,我是在PE 下用 DISKGEN 分区后,用PE的磁盘管理格式化的。

因为硬盘装了很多文件,所以就不想再重新分区格式化测试了。。。
以后遇到问题,再反馈吧。。。


你在 Windows (PE 也是保护模式,相当于 Windows)下使用 diskgen,此时,通常 diskgen 不容易找到 BIOS 所使用的几何参数。

那就不知道 diskgen 是如何把 240 作为 H 的了。

PE 自己的格式化程序,如果贸然用 H=255 去格式化硬盘分区,这也是不对的,你就是遇到了这种情况。就是说,240 和 255,必然有一个是错的。究竟谁错,这还不能确定。但是,你只要在 grub4dos 下使用 geometry --tune 来显示磁盘几何参数,谜底就可揭晓了。不需要你进行重新分区和格式化的动作。
回复

使用道具 举报

27#
发表于 2011-6-10 17:17:18 | 只看该作者
原帖由 freesoft00 于 2011-6-10 15:12 发表
diskgenius更新了
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=195142&extra=page%3D1


更新的内容好像与这里所讨论的话题无关。
回复

使用道具 举报

28#
 楼主| 发表于 2011-6-10 21:13:33 | 只看该作者

回复 #27 不点 的帖子

我用这个怎么没反应呢?谢谢
title 【D】  geometry --tune
geometry --tune (hd0)
回复

使用道具 举报

29#
发表于 2011-6-10 21:16:59 | 只看该作者
命令行执行吧。放在菜单里,显示的信息一闪而过,你能看清吗?要是你用 debug off 的话,还可能根本就不显示信息了呢。

[ 本帖最后由 不点 于 2011-6-10 21:18 编辑 ]
回复

使用道具 举报

30#
 楼主| 发表于 2011-6-10 21:30:33 | 只看该作者

回复 #29 不点 的帖子

不点兄看看:

回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-30 15:40

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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