无忧启动论坛

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

反馈一个 grldr.mbr 0.4.6a 的 bug

  [复制链接]
61#
发表于 2013-11-15 12:33:41 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2013-11-15 12:36 编辑

从硬盘启动,也显示 Begin pxe scan... 这条信息。
我现在搭建的环境,启动前后没有改变驱动器号 0x80。未能真实还原 mygamexxx 的状况。
我希望 mygamexxx 启动 grldr 时,狂按 Ins 插入键,看看有什么提示。

点评

199,200楼是调试信息  详情 回复 发表于 2013-11-15 12:48
回复

使用道具 举报

62#
发表于 2013-11-15 12:53:37 | 显示全部楼层
mygamexxx 在 199 楼报告,死在 bios.c,499 后,stage2.c,2119 前。

点评

从提示信息看,是不是由于是软盘格式,加载USB驱动后以硬盘格式进行启动,出现了分区表的错误导致识别问题而卡住。  详情 回复 发表于 2013-11-15 13:48
回复

使用道具 举报

63#
发表于 2013-11-15 14:06:41 | 显示全部楼层
应当是卡在 Open default file /default ... failure 这一句。
我模拟测试,这一句顺利通过。

点评

qemu等模拟器的 bios 没有 bug,不会产生死机。但真实机有 bug(或者是故意制造的陷阱),容易在访问不存在的大扇区号时死机。  发表于 2013-11-15 14:33
回复

使用道具 举报

64#
发表于 2013-11-15 14:35:13 | 显示全部楼层
Re mygamexxx :
199 楼假死后,拔出 u 盘,又显示了一些内容,后来死在 configfile 处?还是进入了命令行或菜单?

点评

命令行,菜单都能进入  详情 回复 发表于 2013-11-15 14:36
回复

使用道具 举报

65#
发表于 2013-11-15 14:44:13 | 显示全部楼层
以前,硬盘软盘分区容易鉴定:硬盘有分区表而软盘没有;软盘有BPB而硬盘没有。现在与时俱进,两者均有可能。
以前,驱动器号=00,就是软盘,有BPB没有分区表;驱动器号=0x80就是硬盘,有分区表没有BPB。现在不一定了。
回复

使用道具 举报

66#
发表于 2013-11-15 14:58:54 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2013-11-15 15:00 编辑

死机发生地址:
stage2.c,2093      if (grub_open (default_file))

从 disk_i0.c ,1925  grub_open (char *filename) 函数看,似乎没有引起死机的语句。
回复

使用道具 举报

67#
发表于 2013-11-15 15:06:06 | 显示全部楼层
Re mygamexxx :
修改 0X5D 处为 FF,同时修改 0x64 为 80,试一试。

点评

190楼版本,修改0x5D为FF,同时修改0x64为80, 单步调试情况相同。  详情 回复 发表于 2013-11-15 15:51
回复

使用道具 举报

68#
发表于 2013-11-15 15:11:09 | 显示全部楼层
命令行,菜单都能进入

那根是什么?00?80?
回复

使用道具 举报

69#
发表于 2013-11-15 16:44:17 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2013-11-15 22:49 编辑

请测试。0X5D 处为 00
我说我怎么可以测试成功,原来是这样修改的:
//    j = (dos_part_start ? 0x80 : 0);
      j = boot_drive;

如果只注释第一句,则 j,k 都是随机值。

点评

与199楼相同。  详情 回复 发表于 2013-11-15 16:58
回复

使用道具 举报

70#
发表于 2013-11-15 22:50:33 | 显示全部楼层
可以试一试这个。

点评

启动成功了,geometry 返回 0x80,顺利进入菜单,顺利启动非NATIVE PE.  详情 回复 发表于 2013-11-15 23:42
回复

使用道具 举报

71#
发表于 2013-11-16 07:11:57 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2013-11-16 07:17 编辑
至于说 0.4.5c 也显示 begin pxe scan... ,我觉得这是 bug。

这是不点自己以前打的补丁,还特别嘱咐也要打在 0.4.6a 。注释掉 1 行:
    //orb        $0x01, (pre_stage2_start - _start1 + 5) /* disable pxe */
不知这样是否从硬盘(或光盘)启动后,也可以看到网盘(如果有的话)内容?
修改与否,请不点斟酌。
回复

使用道具 举报

72#
发表于 2013-11-16 07:22:53 | 显示全部楼层
启动成功了,geometry 返回 0x80,顺利进入菜单,顺利启动非NATIVE PE。

之所以成功, 一是因为以 0x80 启动,故清零了 0x410 处的软盘数;二是修改了查找代码,使得它从当前驱动器查找时,也可以查找没有分区表的硬盘。
回复

使用道具 举报

73#
发表于 2013-11-17 21:36:30 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2013-11-17 21:43 编辑
把摄像头取下才能成功

目前无解。

当加载USB2.0驱动失败后,0PE没有办法与U盘通信,故进入死循环。
回复

使用道具 举报

74#
发表于 2013-11-17 21:39:59 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2013-11-18 15:11 编辑

测试目的: NATIVE PE 可否顺利启动,是不是因为引导驱动器没有分区表。

点评

我的手机U盘用BOOTICE重新格式化了,236楼的grldr, 启动后,加载USB驱动成功, 进入命令行, geometry 返回的是0x00(LBA),C/H/S=967/255/63。geometry (hd0),返回磁盘不存在。但硬盘是hd1,由于hd0不存在但占用了h  详情 回复 发表于 2013-11-18 12:03
回复

使用道具 举报

75#
发表于 2013-11-18 10:50:07 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2014-1-3 21:55 编辑
2010RENDQ 发表于 2013-11-16 14:05
为了测试前面的帖子里提到的启动老机器时加载USB2.0驱动不成功(把摄像头取下才能成功)的问题在测试包解决 ...


加载usb驱动后,显示:“0123Loaded failed” 的情况,请测试。把012后面的数字贴上来。

点评

我的联想台式机使用237楼的GRLDR , 显示如下: 012 0014 1803 1005 A0040 0019 0001 0009 0000 0048 1000 1000_  详情 回复 发表于 2013-11-18 12:17
回复

使用道具 举报

76#
发表于 2013-11-18 14:44:26 | 显示全部楼层
呵呵,我这个显示器不显示前面的一列,前面一列好像都是“0”

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

点评

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

使用道具 举报

77#
发表于 2013-11-18 14:48:23 | 显示全部楼层
我的联想台式机使用237楼的GRLDR , 显示如下:

死在1000后吗?

点评

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

使用道具 举报

78#
发表于 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
回复

使用道具 举报

79#
发表于 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
回复

使用道具 举报

80#
发表于 2013-11-18 17:07:55 | 显示全部楼层
0048 1000 _

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

使用道具 举报

81#
发表于 2013-11-19 11:44:53 | 显示全部楼层
2010RENDQ 发表于 2013-11-18 11:57
呵呵,我这个显示器不显示前面的一列,前面一列好像都是“0”

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

使用道具 举报

82#
发表于 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
回复

使用道具 举报

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

使用道具 举报

84#
发表于 2013-12-6 11:14:25 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2013-12-9 20:18 编辑

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

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

使用道具 举报

85#
发表于 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 读。

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

使用道具 举报

86#
发表于 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'
死机
回复

使用道具 举报

87#
发表于 2013-12-8 16:21:14 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2013-12-8 16:22 编辑

268楼测试:
GRUB4DOS 0.4.5c 2013-12-05

root:     (hd0) filesystem type is fat, using whole disk

geometry:     drive 0x80(LBA): ....省略

ls:     ...,mydos.img,...

find:     hd0,0 hd0,3 hd1,0 hd1,1 hd1,3 hd1,4 hd2,0 hd2,1

find /mydos.img:     file not found

启动菜单:
find --set-root /mydos.img
map --mem /mydos.img (fd0)
必须修改为:
map --mem (hd0)/mydos.img (fd0)
才能启动。
回复

使用道具 举报

88#
发表于 2013-12-8 16:46:51 | 显示全部楼层
明基笔记本启动 u 盘,进入 grub 环境以后不能访问 u 盘的问题,其实质是:
FDD 模式(有 BPB 表,没有分区表)启动时,被 BIOS 分配驱动器号 0x80,而 grub 将其修改为 0x00,但 BIOS 不认识此 0x00 就是原来的 0x80,因此无法读取 u 盘。
回复

使用道具 举报

89#
发表于 2013-12-8 17:08:21 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2013-12-8 18:52 编辑

Re mygamexxx:
我现在还有几点没有弄清楚。你清楚的话,描述一下,否则测试一下。
1.  外置卡从手机取出,插入读卡器,格式化为 HDD 模式(FAT32),MBR 使用 Windows 6.x,PBR 使用 GRUB4DOS 0.4.5c 。
    外置卡插入手机,手机通过 usb 接口连接到电脑,使用 WinHEX 查看逻辑 0 扇区,此时显示的是 MBR 还是 PBR ?如果是 PBR ,那偏移 0x40 处是 0x00 还是 0x80 ?
    外置卡插入手机,手机通过 usb 接口连接到电脑,可否启动?根是 0x00 还是 0x80?cat --hex (hd0)+1  或者 cat --hex (fd0)+1 是什么?
    如此格式化,手机可以识别外置卡吗?
2.  外置卡从手机取出,插入读卡器,格式化为 UD 模式。
    外置卡插入手机,手机通过 usb 接口连接到电脑,使用 WinHEX 查看逻辑 0 扇区,此时显示的是什么?请截图。
    外置卡插入手机,手机通过 usb 接口连接到电脑,可否启动?根是 0x00 还是 0x80?cat --hex (hd0)+1  或者 cat --hex (fd0)+1 是什么?
    如此格式化,手机可以识别外置卡吗?

点评

1. 外置卡从手机取出,插入读卡器,格式化为 HDD 模式(FAT32),MBR 使用 Windows 6.x,PBR 使用 GRUB4DOS 0.4.5c 。 外置卡插入手机,手机通过 usb 接口连接到电脑,使用 WinHEX 查看逻辑 0 扇区,此时显示  详情 回复 发表于 2013-12-9 11:49
回复

使用道具 举报

90#
发表于 2013-12-9 21:03:15 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2013-12-13 16:22 编辑
明基笔记本
263楼测试:

真是奇怪,263楼可以进入命令行,268楼却不能,这不应该呀。
格式化为HDD模式,手机不能识别外置卡。不过如何格式化为HDD模式是否有标准?

格式化为 UD 模式,手机可以识别外置卡,那格式化为HDD模式,手机一定可以识别外置卡。有可能没有正确格式化。
使用 bootice,选:分区管理 -> 重新分区 -> USB-HDD (单分区) -> 确定; -> 格式化此分区(选 FAT32) -> 开始 -> 关闭; -> 主引导记录 -> Windows NT 5.x / 6.x MBR -> 安装/配置 -> Windows NT 6.x; -> 分区引导记录 -> GRUB4DOS 0.4.5c/0.4.6a(FAT/FAT32/NTFS/ExFAT) -> 安装/配置 -> 0.4.5c -> 确定。

若手机仍然不能识别,请把外置卡插入读卡器,使用 WinHEX 把 MBR , PBR 截图。

现在已经基本搞清楚:
三星手机的外置卡:
1.  可以格式化为 HDD,FDD,UD 模式。
2.  手机软件会屏蔽 PBR 之前扇区(在 Windows 下看不到,在实模式下通过 SCSI 指令也看不到)。
3.  启动时会分配驱动器号 0x80 (这点比较特殊,会使过度精简的 PE 死机)。

在联想台式机测试一下这个。如果失败,按 s 键试一试。

点评

联想台式机: 自动加载USB驱动,01234 加载失败,进入默认内置菜单,键盘失去响应。 按S键,蜂鸣器有嗒嗒嗒的声音,01234 加载失败,进入默认内置菜单,高亮条在4个菜单条之间不停往复跳动。  详情 回复 发表于 2013-12-10 08:15
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-13 21:02

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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