无忧启动论坛

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

[求助] 更新grub4dos-0.4.6a-2013-06-30版 我的UD盘无法启动了

  [复制链接]
181#
发表于 2013-9-26 15:55:27 | 只看该作者
本帖最后由 2011yaya2007777 于 2013-9-26 16:28 编辑
外置卡使用读卡器连到电脑上,在我的电脑上只显示一个U盘盘符。

173楼把手机插到电脑,显示2个U盘盘符,说明那个盘符就是内置卡的。也就是说,内置卡虽然看不到,不能读,但是影响BIOS,影响grldr。
如何控制grldr识别为软盘时加载、不加载或总是加载USB驱动?0.4.5c和0.4.6a的pbr是不通用的吗?

grldr 的 0x1fb 处,00是不加载,01是识别为软盘时加载,02是总加载。
0.4.5c和0.4.6a的pbr是不通用的。0.4.6a的pbr可以在加载grldr前加载usb驱动。

加载usb驱动后,已将BIOS软盘数清零,不知为何find还是能查到fd0。

从内置菜单进入命令行,执行
read 0x410
read 0x475
read 0x8280
read 0x82a0
返回以上数值

calc *0x413&0xffff*2    比如返回  0x4f2
cat --hex (md)0x4f2+1  截图
cat --hex (fd0)+1   截图
cat --hex (hd0)+1  截图
cat --hex (hd0,0)+1 截图
cat --hex (hd0,1)+1 截图
cat --hex (hd0,2)+1 截图


点评

read 0x410 返回 0x79004226 read 0x475 返回 0x14000002 read 0x8280 返回 0x0 read 0x82a0 返回 0xf859f000 calc *0x413&0xffff*2 返回 Error while parsing number  详情 回复 发表于 2013-9-27 08:48
回复

使用道具 举报

182#
发表于 2013-9-26 17:20:14 | 只看该作者
find 能找到 (fd0) 有可能是因为 (fd0) 是当前默认 root。

当前默认 root 设备好像是首先找到,其次才找其他设备。

回复

使用道具 举报

183#
 楼主| 发表于 2013-9-26 19:33:51 | 只看该作者
本帖最后由 xyzxp 于 2013-9-26 19:35 编辑

报告yaya大:使用179楼grldr 我的2个U盘 在家里和店里HP电脑加载USB驱动都可以进入菜单了;不过加载USB后个别PE无法启动了,不加载USB驱动可以!

title 5.        Win2003  我心如水 维护PE
(ud)/boot/grub/F6IMG
echo $[1102] Loading  Win2003 PE, please wait ...
find --set-root /MINIPE/WINPE03.ISO
map --mem (ud)/MINIPE/WINPE03.ISO (0xff)
map --hook
chainloader (0xff)

看看上边这个菜单是不是有问题?U盘灯一直闪动,但是好久不加载数据 ! 0 M  (71M)  数据一直是 0 M  应该是 8-16。。。
回复

使用道具 举报

184#
发表于 2013-9-26 20:56:03 | 只看该作者
find 能找到 (fd0) 有可能是因为 (fd0) 是当前默认 root。

当前默认 root 设备好像是首先找到,其次才找其他设备。

如果 mygamexxx  描述准确的话,加载 usb 驱动后,一是已经设置 0x410 软盘数为零,二是引导驱动器原来如果是 fd0 ,那么现在设置成最后一个硬盘 hdx 。内置菜单查找 menu.lst ,似乎首先从 hdx 开始,没有的话,再从其他硬盘查找(不找软盘,光盘)。find 如何查找,不是很清楚,但是 0x410 指示软盘数为零,应当不会查 fd0 吧
回复

使用道具 举报

185#
发表于 2013-9-26 21:01:24 | 只看该作者
find --set-root /MINIPE/WINPE03.ISO   这句已经指定根,那么
map --mem (ud)/MINIPE/WINPE03.ISO (0xff)   应当是  map --mem /MINIPE/WINPE03.ISO (0xff)

另外, (ud)/boot/grub/F6IMG   这句会自动执行?
回复

使用道具 举报

186#
 楼主| 发表于 2013-9-26 21:51:07 | 只看该作者
map --mem /MINIPE/WINPE03.ISO (0xff) 改成这样我试一试!
(ud)/boot/grub/F6IMG 已经自动执行了。
回复

使用道具 举报

187#
发表于 2013-9-26 23:09:11 来自手机 | 只看该作者
本帖最后由 mygamexxx 于 2013-9-26 23:16 编辑

电脑在公司,明天报告。
read 0x8280 好像是返回0x00
cat --hex (fd0)+1 返回 disk read error
回复

使用道具 举报

188#
 楼主| 发表于 2013-9-27 00:24:12 | 只看该作者
还有win8pe.iso进入桌面不见U盘了,其它盘符正常;不加载USB驱动又好了。

不加载USB驱动时识别的是:




加载USB驱动时识别的是:

回复

使用道具 举报

189#
发表于 2013-9-27 08:48:38 | 只看该作者
本帖最后由 mygamexxx 于 2013-9-27 09:46 编辑
2011yaya2007777 发表于 2013-9-26 15:55
173楼把手机插到电脑,显示2个U盘盘符,说明那个盘符就是内置卡的。也就是说,内置卡虽然看不到,不能读, ...


read 0x410    返回 0x79004226
read 0x475    返回 0x14000002
read 0x8280    返回 0x0
read 0x82a0    返回 0xf859f000
calc *0x413&0xffff*2    返回  1266 (HEX:0x4F2)刚才可能是命令输错了
cat --hex (fd0)+1   返回 Disk read error
cat --hex (hd0,0)+1   cat --hex (hd0,2)+1  均死机状态,三键重启

cat --hex (md)0x4f2+1

cat --hex (hd0)+1

cat --hex (hd0,1)+1

cat --hex (hd0,3)+1
回复

使用道具 举报

190#
发表于 2013-9-27 09:07:49 | 只看该作者
xyzxp 发表于 2013-9-27 00:24
还有win8pe.iso进入桌面不见U盘了,其它盘符正常;不加载USB驱动又好了。

不加载USB驱动时识别的是:

是在windows8的资源管理器里,没有u盘盘符吗?
图像不能说明问题,因为 fd0 映射为 hd1 了。
回复

使用道具 举报

191#
发表于 2013-9-27 09:12:33 | 只看该作者
win8pe.iso进入桌面不见U盘了,其它盘符正常;不加载USB驱动又好了。


这又一次支持了我先前的一个主张:不要挂在 int13 接口上让操作系统使用 BIOS 级的驱动。由此造成任何问题,都属于 “得不偿失”,定位和解决它们很困难,或者 “摁下葫芦起来瓢”,解决了一台机器的问题,将来又冒出另外一台机器的问题,可能永远也解决不完,尤其是当主板制造商进行恶意破坏的时候。从长远看,挂在 int13 上,增加了主板制造商实施破坏的机会。在刚刚过去的两年我们发现,在仿真代码中接管 int15 的动作就被 Windows (或其显卡驱动程序)攻击(我认为是攻击,其他人可以不这么认为),迫使我们使用 --e820cycles 来控制在进入 Windows 之前取消对 int15 的接管。要知道,定位这些问题是很困难的,我们费了很长时间(通过大量的测试)才弄清楚其技术 “关卡”,即,只要接管 int15,(在那些受影响的显卡型号上)Windows 必死无疑。

大概挂在 int13 接口上的唯一好处就是能够让 DOS 使用驱动罢了。现在,越来越多的人都在使用 PE 而不是 DOS,同时,DOS 也因为 BIOS 的不断增加的 bug 而逐渐失去启动能力(或逐渐失去启动的方便性)了。

至少可以增加一个选项,让用户在进入 Windows 之前卸载驱动程序。

回复

使用道具 举报

192#
发表于 2013-9-27 09:13:32 | 只看该作者
mygamexxx 发表于 2013-9-27 08:48
read 0x410    返回 0x79004226
read 0x475    返回 0x14000002
read 0x8280    返回 0x0

calc *0x413&0xffff*2 在我的虚拟机执行正常
可以这样变通:
read 0x413    比如返回 0x95027f
calc 0x027f*2   返回 1278  (HEX:0x4fe)
cat --hex (md)0x4fe+1
回复

使用道具 举报

193#
发表于 2013-9-27 09:26:07 | 只看该作者
2011yaya2007777 发表于 2013-9-27 09:13
calc *0x413&0xffff*2 在我的虚拟机执行正常
可以这样变通:
read 0x413    比如返回 0x95027f

上面已补上图片。
read 0x413   返回  0x280279
calc 0x027f*2   返回  1278(HEX: 0x4FE)
回复

使用道具 举报

194#
发表于 2013-9-27 09:31:22 | 只看该作者
不对,read 0x413   返回  0x280279, 其最低的两个字节是 0x0279,因此你应该:

calc 0x0279*2 返回 (hex 0x4F2)
回复

使用道具 举报

195#
发表于 2013-9-27 09:36:42 | 只看该作者
本帖最后由 mygamexxx 于 2013-9-27 09:44 编辑
不点 发表于 2013-9-27 09:31
不对,read 0x413   返回  0x280279, 其最低的两个字节是 0x0279,因此你应该:

calc 0x0279*2 返回 ( ...


calc 0x0279*2    返回  1266 (HEX:0x4F2)

在(hd0)中使用 ls (hd0)/ 能显示0pe目录,root (hd0) 再 find --set-root /0pe/0pe.iso会死机。

calc 0x413&0xffff*2     返回  1266 (HEX:0x4F2)上面的结果是&输错成*。
回复

使用道具 举报

196#
发表于 2013-9-27 09:38:38 | 只看该作者
另外提醒各位,论坛有 bug,尽量不要使用 “点评”、“回复” 这两个按钮。使用这两个按钮,帖子有可能丢失。有时候立即就丢失了,有时候是过几天才丢失。因此,尽量避免使用 “回复” 之类的功能。可以用 [ quote ] ... [ /quote ] 的方式进行引用,这还没出现过问题。
回复

使用道具 举报

197#
发表于 2013-9-27 09:46:42 | 只看该作者
在(hd0)中使用find --set-root /0pe/0pe.iso会死机,ls (hd0)/ 能显示0pe目录。


你这本来就属于错误的用法。我们明确禁止使用 find --set-root 不带其他参数。应该使用 --devices=h 参数,只搜硬盘,这样就不会死机了。搜软盘或光盘或 (pd) 设备,都有可能产生死机。
回复

使用道具 举报

198#
发表于 2013-9-27 09:50:27 | 只看该作者
不点 发表于 2013-9-27 09:46
你这本来就属于错误的用法。我们明确禁止使用 find --set-root 不带其他参数。应该使用 --devices=h 参 ...

root (hd0)
find --set-root --devices=h /0pe/0pe.iso
还是死机,我好像在grub4dos哪里看到过好像从哪一个时间开始不支持find (hd0)类型
回复

使用道具 举报

199#
发表于 2013-9-27 09:53:01 | 只看该作者
让 yaya 顺便把这个 bug 排除掉吧。yaya 可以跟踪 find 的执行过程,打印出调试信息,直到最终找到毛病为止。

回复

使用道具 举报

200#
发表于 2013-9-27 09:57:15 | 只看该作者
本帖最后由 mygamexxx 于 2013-9-27 09:58 编辑
不点 发表于 2013-9-27 09:53
让 yaya 顺便把这个 bug 排除掉吧。yaya 可以跟踪 find 的执行过程,打印出调试信息,直到最终找到毛病为止 ...


上次看到的信息好像是开发者有意为之,减少死机的可能。不过时间过去很久了,起码一年以上。
回复

使用道具 举报

201#
发表于 2013-9-27 10:09:59 | 只看该作者
那不可能的。既然减少死机,为什么还是死机?

这肯定是 bug,让 yaya、chenall 去解决吧。

回复

使用道具 举报

202#
发表于 2013-9-27 11:26:26 | 只看该作者
从189楼看,外置卡格式化为软盘模式,没有分区表。
使用0.4.6a版本加载usb驱动,将它映射为硬盘,问题多多。现在是有分区表的u盘被BIOS识别为软盘,为加速或其他原因,映射为硬盘。

至于为何0.4.5c版本(或0.4.6a版本不加载usb驱动)不能读fd0,还有待高人指点。
回复

使用道具 举报

203#
发表于 2013-9-27 11:50:28 | 只看该作者
还有win8pe.iso进入桌面不见U盘了,其它盘符正常;不加载USB驱动又好了。

我从识别为软盘的ud分区启动,加载usb驱动,映射为hd1,加载win7pe.iso,在资源管理器里查看,可以看到ud可见分区,分配了盘符。
回复

使用道具 举报

204#
发表于 2013-9-27 12:12:47 | 只看该作者
2011yaya2007777 发表于 2013-9-27 11:26
从189楼看,外置卡格式化为软盘模式,没有分区表。
使用0.4.6a版本加载usb驱动,将它映射为硬盘,问题多多 ...

4G的内存卡,放在手机中,非要给我格式化成软盘形式,否则手机不认。奈何!!!
回复

使用道具 举报

205#
发表于 2013-9-27 12:35:22 | 只看该作者
本帖最后由 不点 于 2013-9-27 12:37 编辑
至于为何0.4.5c版本(或0.4.6a版本不加载usb驱动)不能读fd0,还有待高人指点。


看不明白为什么不能读 fd0。如果不能读 fd0,它怎么能启动成功?

可以试试用 chenall 的外部命令 bios 来执行读盘操作,看看 BIOS 是否运转正常。或者写一个外部程序,测试这一情况。

遇到此类 buggy 的 BIOS,必须花费力气去一一排查。

新的 BIOS bug 不断出现,排查的难度也更高。
回复

使用道具 举报

206#
发表于 2013-9-27 12:41:25 | 只看该作者
本帖最后由 mygamexxx 于 2013-9-27 13:21 编辑
不点 发表于 2013-9-27 12:35
看不明白为什么不能读 fd0。如果不能读 fd0,它怎么能启动成功?

可以试试用 chenall 的外部命令 bi ...


回复

使用道具 举报

207#
发表于 2013-9-27 12:53:31 | 只看该作者
find 的问题,我前面已经提出了建议,只有通过调试,才能找到原因。

我想,yaya 说的不是这个,而是 fd0 根本就不能读:disk read error。

我不知道 yaya 所说的这种奇怪现象究竟是什么含义,这不应该发生。

如果真的发生了,那么我只能怀疑,BIOS 又实施了新一轮的攻击,比如在内存中检测 grub4dos 的数据结构,一旦发现 grub4dos 存在,那么就让 int13 失败出错,或干脆死机。

当然,grub4dos 也可能有 bug,不过,锤炼了这么久,有关底层调用的安排都十分小心,测试的用户浩如烟海,我认为,grub4dos 在这方面出现 bug 的可能性是非常小的。

回复

使用道具 举报

208#
发表于 2013-9-27 13:03:22 | 只看该作者
我指的是140楼不加载usb驱动的情况。
回复

使用道具 举报

209#
发表于 2013-9-27 13:31:28 | 只看该作者
140 楼并无特别严重的错误发生。

root (fd0)
root (fd0,0)

均失败,但有可能

root (fd0,1)
root (fd0,2)
root (fd0,3)

成功。

不试试 cat --hex (fd0)+1 ,就不能判定问题的实质。

回复

使用道具 举报

210#
发表于 2013-9-27 13:47:38 | 只看该作者
本帖最后由 mygamexxx 于 2013-9-27 15:25 编辑

终于不再需要中转了,find的问题要避开,原来为了确定U盘是哪一个盘,使用了find.
现在就使用可能的盘 root (fd0)  || root (fd0,0)  || root (hd0)  || root (hd0,0)  || root (hd0,2)  来确认U盘。

测试了U盘上的 0pe , xppe, 8pe, 8.1pe 均成功启动。感谢YAYA和不点。

2013年7月24日版0.4.5c找不到map的UDF光盘上的文件,不能通过 chainloader (0xff)/bootmgr 启动, 提示文件不存在,但实际有此文件,能通过 chainloader (0xff)启动。0.4.6a能启动。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-11 22:05

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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