无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: Pauly
打印 上一主题 下一主题

反馈一个 grldr.mbr 0.4.6a 的 bug

  [复制链接]
241#
发表于 2013-11-18 14:44:26 | 只看该作者
呵呵,我这个显示器不显示前面的一列,前面一列好像都是“0”

是插入1个摄像头,1个U盘吗?

点评

是的,电脑上共有三个USB设备,一个是摄像头,一个U盘,一个USB鼠标。  详情 回复 发表于 2013-11-18 17:33
回复

使用道具 举报

242#
发表于 2013-11-18 14:48:23 | 只看该作者
我的联想台式机使用237楼的GRLDR , 显示如下:

死在1000后吗?

点评

是的,光标就在1000后闪,不进行下去。  详情 回复 发表于 2013-11-18 15:57
回复

使用道具 举报

243#
发表于 2013-11-18 15:12:09 | 只看该作者
测试目的: NATIVE PE 以及 0PE 可否顺利启动

grldr.rar

139.59 KB, 下载次数: 9

点评

后置USB连接一个USB鼠标;前置U盘 NATIVE PE 以及 0PE 顺利启动!  详情 回复 发表于 2013-11-18 19:20
回复

使用道具 举报

244#
发表于 2013-11-18 15:57:18 | 只看该作者
本帖最后由 mygamexxx 于 2013-11-18 16:20 编辑
2011yaya2007777 发表于 2013-11-18 14:48
死在1000后吗?


是的,光标就在1000后闪,不进行下去。

243楼grldr,顺利启动0PE和NATIVE 形式的XPPE。启动PE后重新插拨U盘,在我的电脑中正常显示U盘。

就是有一个问题,加载USB驱动过程中,总是有50%以上的几率死在012后。死在012后再插到其他电脑上,就会发现U盘不在大容量存储模式。

基本上完美了,命令行下没有看到U盘形成的hd0盘了,本地硬盘是hd0。
回复

使用道具 举报

245#
发表于 2013-11-18 16:33:59 | 只看该作者
本帖最后由 2011yaya2007777 于 2013-12-6 11:03 编辑

在联想台式机测试一下。

点评

我的机器上两个前置USB端口测试结果;后置端口连接一个USB鼠标;USB摄像头各一个。  详情 回复 发表于 2013-11-18 18:41
其中的grldr 012 0044 1803 1005 A0040 0019 0001 0009 0000 0048 1000 1000_  详情 回复 发表于 2013-11-18 16:43
回复

使用道具 举报

246#
发表于 2013-11-18 16:43:05 | 只看该作者
本帖最后由 mygamexxx 于 2013-11-18 16:52 编辑
2011yaya2007777 发表于 2013-11-18 16:33
在联想台式机测试一下。

联想台式机不加载USB驱动,启动0pe,不按空格还是停止在NATIVE界面。按空格也是停止在NATIVE界面。
NATIVE形式的XPPE,顺利启动成功。此NATIVE的PE可能没有对应的硬盘驱动,启动成功后看不到本地硬盘。


其中的grldr
012
0044 1803 1005 A0040 0019 0001 0009 0000
0048 1000 1000_

grldr_0123Loaded_failed
012
0044 1803 1005 A0040 0019 0001 0009 0000
0048 1000 _

回复

使用道具 举报

247#
发表于 2013-11-18 17:07:55 | 只看该作者
0048 1000 _

死在这里没道理。可能的话再试一下。
回复

使用道具 举报

248#
发表于 2013-11-18 17:33:03 | 只看该作者
2011yaya2007777 发表于 2013-11-18 14:44
是插入1个摄像头,1个U盘吗?

是的,电脑上共有三个USB设备,一个是摄像头,一个U盘,一个USB鼠标。
回复

使用道具 举报

249#
发表于 2013-11-18 18:41:58 | 只看该作者
本帖最后由 xyzxp 于 2013-11-18 19:00 编辑
2011yaya2007777 发表于 2013-11-18 16:33
在联想台式机测试一下。


我的机器上两个前置USB端口测试结果;后置端口连接一个USB鼠标;USB摄像头各一个。

grldr





grldr_0123Loaded_failed






grldr  去掉USB摄像头后测试:



回复

使用道具 举报

250#
发表于 2013-11-18 19:20:06 | 只看该作者
2011yaya2007777 发表于 2013-11-18 15:12
测试目的: NATIVE PE 以及 0PE 可否顺利启动

后置USB连接一个USB鼠标;前置U盘 NATIVE PE 以及 0PE 顺利启动!
回复

使用道具 举报

251#
发表于 2013-11-19 07:17:53 来自手机 | 只看该作者
本帖最后由 mygamexxx 于 2013-11-19 08:58 编辑

是否新的版本对不加载USB驱动的情况有更改,在家里的神舟台式机上0pe, 03pe, 8pe均出现龟速现象。

grldr_0123Loaded_failed 在联想台式机上,确定U盘在大容量存储模式。

20131119_085439.jpg (59.71 KB, 下载次数: 140)

20131119_085439.jpg
回复

使用道具 举报

252#
发表于 2013-11-19 11:44:53 | 只看该作者
2010RENDQ 发表于 2013-11-18 11:57
呵呵,我这个显示器不显示前面的一列,前面一列好像都是“0”

238楼情况:
插入摄像头后,U盘插口没有返回自己的信息,却返回摄像头信息。比较0048和0050端口信息就可知道。这是主板usb主控的问题。只能拔掉摄像头,或者把U盘插入其他插口试一试。
回复

使用道具 举报

253#
发表于 2013-11-19 11:50:04 | 只看该作者
本帖最后由 2011yaya2007777 于 2013-11-19 11:51 编辑
是否新的版本对不加载USB驱动的情况有更改

没有

251楼情况:
联想台式机根集线器有2个接口,其中1个是集线器。估计通过这个集线器再连接面板上的usb插口。目前的usb驱动不支持集线器,故无法加载成功。
单位这样的电脑多吗?按前面反映的情况接近一半?

点评

U盘是插在前面板的USB口,我再试试联想台式机的后置的USB口。  详情 回复 发表于 2013-11-19 11:54
回复

使用道具 举报

254#
发表于 2013-11-19 11:54:06 | 只看该作者
2011yaya2007777 发表于 2013-11-19 11:50
没有

251楼情况:

U盘是插在前面板的USB口,我再试试联想台式机的后置的USB口。

点评

USB后置端口也一样,拨去USB键盘和鼠标也一样。  详情 回复 发表于 2013-11-19 13:20
回复

使用道具 举报

255#
发表于 2013-11-19 13:20:10 来自手机 | 只看该作者
mygamexxx 发表于 2013-11-19 11:54
U盘是插在前面板的USB口,我再试试联想台式机的后置的USB口。

USB后置端口也一样,拨去USB键盘和鼠标也一样。
回复

使用道具 举报

256#
发表于 2013-11-19 16:12:52 | 只看该作者
本帖最后由 不点 于 2013-11-19 16:56 编辑

虽然想不起来当初为什么不再屏蔽 pxe 了,但是,现在突然能够理解这个做法了。

假如有人用 pxe 模式首先启动 syslinux 的 pxelinux,然后又启动 grldr,则此时有可能因为 grldr 自动屏蔽 pxe 而无法访问 (pd)。还有一种情况,从 pxelinux 启动一个软盘映像,从这个软盘映像的 PBR 再启动 grldr,则此时 pxe 将被屏蔽。因此,“放开 pxe”(不再屏蔽它)是无奈之举。

世界本来应该是和谐的。如果没有封杀者,那多好啊,程序可以自由编写,无论进出 DOS、Windows、Linux,都能行得通,无论以何种方式进出 grub4dos,也都不会有问题。寄希望于没有 BIOS 故意封杀 grub4dos 的上述做法。将来遇到封杀了再说,那时候,就像用来对付 DELL 的 badgrub.exe 那样,也专门为封杀者制作一个版本,专门来对付它的封杀。

在此也顺便提醒一下,用户在使用 grub4dos 时如果遇到死机之类的异常现象,就应该耐心提供报告,同时也要理解 grub4dos 开发者的难处,有些问题不是由于开发者 “心不在焉”、“不好好干活” 造成的,而是遇到了强力封杀。遇到问题、遇到启动失败,不要抱怨 grub4dos 的开发者 “水平差”、“不卖力”,而要尽可能多地给以理解、关心和支持。
回复

使用道具 举报

257#
发表于 2013-11-19 18:08:17 来自手机 | 只看该作者
本帖最后由 mygamexxx 于 2013-11-19 18:59 编辑

0pe在联想台式机卡在NATIVE的问题,使用0.4.5c也是卡住,会不会与achi硬盘有关,另一个NATIVE形式的XPPE没有卡住。

grldr_0123Loaded_failed 在神舟台式机上

20131119_184558.jpg (104.86 KB, 下载次数: 141)

20131119_184558.jpg
回复

使用道具 举报

258#
发表于 2013-11-19 20:02:25 | 只看该作者
几种格式化的扇区

读卡器下用fbinsttools格式化后装入手机.jpg (154.93 KB, 下载次数: 138)

读卡器下用fbinsttools格式化后装入手机.jpg

手机格式化.jpg (162.22 KB, 下载次数: 139)

手机格式化.jpg

BOOTICE格式化.jpg (164.02 KB, 下载次数: 139)

BOOTICE格式化.jpg
回复

使用道具 举报

259#
发表于 2013-11-20 10:57:56 | 只看该作者
本帖最后由 不点 于 2013-11-20 11:06 编辑

mygamexxx,我来分析一下这几个扇区的特点吧。

第一个,fbinst 格式。

注意,偏移 0x15 处的 F8(介质类型字节),是表示硬盘。这个字节通常认为是应该忽略的,但不知道主板 bios 如何对待它。也就是说,主板 bios 有可能忽略它,也有可能根据它来决定究竟是以软盘还是硬盘来处理这个盘。偏移 0x18 处的 S = 0x3F(十进制的 63),偏移 0x1A 处的 H = 0xFF(十进制的 255),也是普通硬盘的值(最大了,再也不能比这更大了)。偏移 0x40 处是 0x80,表示盘符为硬盘。偏移 0x1C 处是 0x4000,也就是说,这个 BPB 扇区之前有 8M 的空间,是被手机隐藏了,或者说,手机要隐藏掉第一分区之前的所有扇区,把它们当成是为 MBR 而保留扇区,通常我们只保留 63 扇区,但此处是 8M,这 8M 被 fbinst 系统占据了,但被手机隐藏了,有可能是彻底隐藏,连 BIOS 也看不见,甚至用 PC 机的底层 IO 指令(即,yaya 的 USB 驱动)也看不见。

以上这些数据,BIOS 可以参考,也可以不予理睬,而是在把扇区数据读入内存准备启动之前,修改这些数据。

看到没有?这个 BPB 扇区没有引导代码!引导代码全都是 00 00 00 00 ... ,这肯定要引导失败的。这不是 fbinst 的责任。你需要自己为这个 FAT32 分区进行格式化操作,然后安装适当的 PBR 引导代码,比如说是 grldr 的引导代码。

手机把 fbinst 的 8M 全部都隐藏了,这也不算是坏事。可以看成是好事。这样,你从 8M 处开始,照样可以格式化你的读卡器,照样可以安装 grldr 的 PBR 代码。

再强调一下,在 fbinst 格式化之后,你必须在你的 Windows 下对这个 FAT32 分区进行一次格式化,否则,这个 FAT32 的卷是不存在的(“FAT表” 和 “根目录” 这些数据结构都未建立起来),只有 BPB 表是存在的,那是没有用处的。用 Windows 来格式化时,一定要选择 FAT32 格式。

这么一搞,你的系统可能就没问题了,问题可能全都消失了。

-----------------------

补充:格式化完成之后,别忘了把这个 BPB 的偏移 0x1C 处的 4 个字节清零。要知道,由于被手机隐藏了 8M,所以,这是第 0 扇区,不是第 0x4000 扇区,因此,偏移 0x1C 处必须是 00 00 00 00。否则,肯定找不到 GRLDR,显示 NO GRLDR。




回复

使用道具 举报

260#
发表于 2013-11-20 11:19:34 | 只看该作者
第二个,手机格式化。

0x15 是 F0,表示软盘,0x40 处也是 00,表示软盘。H=4 和 S=16 更是低得不象话。偏移 0x1C 处是 00 00 00 00,表示该扇区是第 0 扇区。

这样的结构经过优化和改造,进入 grub4dos 是不困难的。但是,进入 Windows 后有问题。

这样的结构不含分区表,只能被 Windows 当成软盘。如果当成硬盘启动,则进入 Windows 后可能就找不到 U 盘了。

因此,你需要在这个基础上进行修改,为它填写分区表。但这牵动太大,需要改动的太多,手动是很难完成的。

如果以后有可能,我打算与 bean 和 yaya 共同研究 fbinst 的改进(或增强)方案,来解决这些兼容性问题。

回复

使用道具 举报

261#
发表于 2013-11-20 11:42:17 | 只看该作者
第三个,bootice 格式化。

与 fbinst 仅有一个差别:偏移 0x1C 处是 00 00 00 00,这表示这个扇区应该被 BIOS 当作第 0 扇区,否则,启动后仍然是找不到 grldr。

以下数据都是可以手动修改的:

偏移 0x15 处的 F0 或 F8,可以随意修改,但最好不要乱改成任意值,而只在 F0 和 F8 之间选择其一。

偏移 0x18 处的 S 值,是可以修改的。它的最大值是 0x3F,即 63,它不可以是 0(甚至也不可以太小,比如说,小于 8 就可能要死机了),那会导致 DOS 以及 BIOS 调用的死机。你最好把它修改为 0x3F,保持最大值。

偏移 0x1A 处的 H 值,是可以修改的。它的最大值是 0xFF,即 255,它不可以是 0(最小也得是 1,否则会导致 DOS 以及 BIOS 调用的死机)。你最好把它修改为 0xFF,保持最大值。

偏移 0x1C 处的 4 个字节,表示这个 BPB 扇区被 BIOS 当成什么扇区号来看待。如果 BIOS 把这个 PBR 扇区当成第 0 扇区来看待,那就应该填入 00 00 00 00。如果 BIOS 把这个 PBR 扇区当成第 63 扇区来看待,那就应该填写为 3F 00 00 00。如果 BIOS 把这个 PBR 扇区当成第 0x4000 扇区来看待,那就应该填写为 00 40 00 00。此处的 4 个字节就是这个 PBR 扇区的绝对扇区号。

偏移 0x40 处是 FAT32 格式的驱动器号。它可以是 00 表示软盘,0x80 表示硬盘。最好不要胡乱改成别的值。如果 BIOS 把这个盘当成软盘,你就应该修改偏移 0x40 处的值为 00;如果 BIOS 把这个盘当成硬盘,你就应该修改偏移 0x40 处的值为 0x80。对于 FAT12 和 FAT16,它的驱动器号码不在 0x40 处。因此,不要轻易把文件系统格式改成 FAT12 和 FAT16 的格式。

回复

使用道具 举报

262#
发表于 2013-11-20 11:54:45 | 只看该作者
本帖最后由 mygamexxx 于 2013-11-20 11:57 编辑

谢谢不点兄的解释,对格式化方面的知识增加了了解。昨天晚上在XP下格式化,速度极慢,并且最终格式化不成功。之后出现在BOOTICE中能看到U盘,但在我的电脑中看不到U盘,用BOOTICE重新分配盘符才在我的电脑中看到U盘。
回复

使用道具 举报

263#
发表于 2013-12-5 23:16:18 | 只看该作者
本帖最后由 不点 于 2013-12-6 10:41 编辑

我修改了 asm.S 里面的 LBA 磁盘访问函数,在多扇区访问失败时,用每次读一个扇区的方式。这有望解决前述进入 grub 环境以后不能访问 U 盘的问题。

由于增加了参数,因此,别的文件也需要更改。今天先上载 asm.S 的代码。其他文件明天再弄。

已经编译了,请测试。

如果测试成功,就可以提交到 SVN。

grub4dos-0.4.5c-2013-12-06.7z

256.97 KB, 下载次数: 14

试图解决明基笔记本访问U盘失败问题

回复

使用道具 举报

264#
发表于 2013-12-6 11:02:18 | 只看该作者
我觉得“进入 grub 环境以后不能访问 U 盘的问题”,不一定是“多扇区访问”的问题。
在 LBA 模式,通过 SCSI 指令与 usb 通讯,可以是 2 字节长度,即 0xffff 扇区。具体传输时,一次缓冲 4K 到 20K(这要看队列元素(qTD)传输描述符如何设置)。每一次缓冲分成若干过程,每一过程 usb 端口传输 0x200 字节。
回复

使用道具 举报

265#
发表于 2013-12-6 11:14:25 | 只看该作者
本帖最后由 2011yaya2007777 于 2013-12-9 20:18 编辑

u 盘格式化为 FDD 模式,FAT32 分区。
在惠普台式机,u 盘插入台式机上的插孔(根端口),BIOS 分配驱动器号 0x80。
看来 mygamexxx 反映的状况并非特例。

现在 usb 驱动已经支持集线器。请 mygamexxx 在你的联想台式机试一试。你的联想台式机是否有 usb 3.0 插孔?
回复

使用道具 举报

266#
发表于 2013-12-6 16:25:41 | 只看该作者
我觉得“进入 grub 环境以后不能访问 U 盘的问题”,不一定是“多扇区访问”的问题。


无论是不是,都没关系。如果是的,问题解决,画个句号。如果不是,则知道不是这个原因,那么就把问题的范围缩小了。继续寻找其它原因。最终肯定可以找到症结并予以解决。既然引导扇区可以读 GRLDR 文件,那就没有理由让后来的读取总是失败。

回复

使用道具 举报

267#
发表于 2013-12-6 17:13:32 | 只看该作者
本帖最后由 2011yaya2007777 于 2013-12-6 18:16 编辑

启动时驱动器号是 0x80,引导扇区可以读 GRLDR 文件。启动到 GRLDR,GRLDR 把驱动器号修改为 00 (0.4.6a 已经修正),此时通过 BIOS 读 u 盘,肯定无法读。因为 u 盘的驱动器号在 BIOS 看来是 0x80 。
通过 usb 驱动倒是可以修改驱动器号,因为是通过 usb 驱动读 u 盘,而非使用 BIOS 读。

明天在惠普台式机连接集线器测试,它类似明基笔记本环境。星期日报告结果。
回复

使用道具 举报

268#
发表于 2013-12-6 18:21:45 | 只看该作者
本帖最后由 不点 于 2013-12-7 11:53 编辑

好的,重新编译了。再试试。

顺便提醒一下 yaya 和 chenall,有些打在 0.4.6 的补丁,也适合打在 0.4.5 上。注意不要漏掉。一经发现有漏掉,就应该尽快补上。



grub4dos-0.4.5c-2013-12-05.7z

257.16 KB, 下载次数: 16

修正了 yaya 提到的问题

回复

使用道具 举报

269#
发表于 2013-12-7 19:15:43 来自手机 | 只看该作者
最近几天比较忙,可能要过几天才能测试
回复

使用道具 举报

270#
发表于 2013-12-8 16:07:07 | 只看该作者
本帖最后由 2011yaya2007777 于 2013-12-8 16:11 编辑

263楼测试:
!! Number of heads for drive 0 restored from 1 to 255.
!! Sectors-per-track for drive 0 restored from 18 to 63.
等待
GRUB4DOS 0.4.5c 2013-12-06, root is (0x0)
Processing the preset-menu ...
等待
Booting 'find /menu.lst, /boot/grub/menu.lst, /grub/menu.lst'
死机
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-28 19:11

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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