无忧启动论坛

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

反馈一个 grldr.mbr 0.4.6a 的 bug

  [复制链接]
1#
发表于 2013-10-28 16:38:36 | 显示全部楼层
回复

使用道具 举报

2#
发表于 2013-10-29 18:39:14 | 显示全部楼层
谁可以提供 isolinux 的 boot 命令源代码供研究?

我下载了1个 isolinux4.05.iso 。执行
boot: ../grldr
加载 0.4.5c 版本的 grldr ,返回:
Invalid or corrupt kernel image.
回复

使用道具 举报

3#
发表于 2013-11-1 16:24:58 | 显示全部楼层
这是 BOOTICE 的问题。前面已经有帖子详细论述过此事。可惜由于服务器损坏,这个帖子没有恢复。
已经将此事反映到 BOOTICE。
回复

使用道具 举报

4#
发表于 2013-11-1 20:33:54 | 显示全部楼层
11 楼是 SD 卡,格式化为 FDD 模式。逻辑0扇区,也可以说是分区引导扇区。
回复

使用道具 举报

5#
发表于 2013-11-2 10:46:02 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2013-11-2 13:13 编辑

使用 ISOLINUX4.06.iso 进入命令行 boot:
/grub.exe   可以进入g4d环境
/grldr 提示 Invalid or corrupt kernel image.
/grldr.mbr 提示 Loading /grldr.mbr .. ready. 之后死机。
g4d 版本是 0.4.5b 2011_12_10

请 hhh333 提供你测试的 ISOLINUX 及 grldr。
回复

使用道具 举报

6#
发表于 2013-11-2 20:32:18 | 显示全部楼层
hhh333 反映的问题已经解决。下载地址 http://bbs.znpc.net/forum.php?mo ... age%3D1&page=21

“手机升级后的U盘与以前的是否有什么区别” 从截图看不出什么。手机内部有一个类似集线器的装置,把内置卡与外置卡合成一个usb设备,分别赋予LUN0和LUN1。数据传送由手机软件控制。手机软件升级后,估计有什么不适应的。是加载usb驱动后出现问题,还是不加载usb驱动有也问题?
回复

使用道具 举报

7#
发表于 2013-11-5 15:49:06 | 显示全部楼层
赞同 sgw888  的说法。我曾经验证过某些主板,chs与结束磁头数和结束扇区数有着对应关系。
回复

使用道具 举报

8#
发表于 2013-11-5 18:52:56 | 显示全部楼层
不知每次4.5c的更新会不会也更新到4.6a上去。

会的
回复

使用道具 举报

9#
发表于 2013-11-6 11:23:35 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2013-11-6 11:25 编辑
因为是同一台电脑,以前能启动并加载usb驱动成功,只是升级了手机系统和grub4dos后出现,应与Bios无关。
主要与手机形成的u盘不同有关。

我觉得不点分析得对,问题的根源在手机系统,但与BIOS密切关。因为读磁盘靠的是BIOS。
手机升级前,BIOS分配外置卡驱动器号00及0x80,以00启动,找到grldr,加载了usb驱动,之后usb驱动不能使用00,但可以使用0x80。
手机升级后,按你目前提供的信息分析,是以驱动器号00启动的,可以试一试按0x80启动。
方法1:如果启动时,BIOS提供启动选项(比如Esc,F2,F12等等),看看是否有2个usb选项,有的话,分别试验。
方法2:使用Winhex等工具,修改逻辑0扇区代码。将0x64处00修改为0x80。
回复

使用道具 举报

10#
发表于 2013-11-6 14:00:48 | 显示全部楼层
从联想台式机启动:
用读卡器,BIOS分配驱动器号x80,
用手机,BIOS分配驱动器号00。
从明基笔记本启动,不清楚BIOS分配什么驱动器号。

我说的方法2,是指19楼的情况:没有MBR,以FDD方式启动,逻辑0扇区就是FAT32引导程序,是0.4.5c的分区引导代码。
回复

使用道具 举报

11#
发表于 2013-11-6 16:15:30 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2013-11-6 16:18 编辑

图3与19楼不同。19楼是怎样格式化的?

把现在的0x5d的00修改为0xff。
在联想台式机和明基笔记本上都试一试。
回复

使用道具 举报

12#
发表于 2013-11-6 18:34:24 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2013-11-6 18:39 编辑

0.4.5c 的 fat16,fat32 分区引导代码需要安装,不能直接使用 winhex 等工具,建议使用 BOOTICE 。
如果 0x5d 处是 0xff (原始值),则把 0x64 的值(原始值是 00)赋给 dl ,作为驱动器号,然后保存到 0x40。
如果 0x5d 处是 00,则使用传入的 dl 值作为驱动器号,然后保存到 0x40。

19楼的引导代码是错误的,无论 BIOS 分配什么驱动器号,他始终使用 00 。

推断在明基笔记本上 BIOS 分配的驱动器号是 0x80。内存卡插入读卡器启动与手机启动可能不同,这已经在联想台式机得到验证。

拨出U盘后,显示内置菜单

菜单可以使用吗?

请确认 fat32 分区引导代码是位于 0 扇区 还是 0x7e00 ?

点评

0扇区还是0x7e00我不太清楚,我是个菜鸟。  详情 回复 发表于 2013-11-6 18:42
进入硬盘的菜单可以使用,能成功启动硬盘。  详情 回复 发表于 2013-11-6 18:37
回复

使用道具 举报

13#
发表于 2013-11-6 18:53:48 | 显示全部楼层
内存卡插入读卡器,使用 winhex 查看:
工具 -> 打开磁盘 -> 从物理驱动器选择U盘 -> 确定
回复

使用道具 举报

14#
发表于 2013-11-6 19:12:33 | 显示全部楼层
从 winhex 看,65 楼在最前面吗?使用 winhex 复制到新文件会重新编号。使用编辑器显示则不会重新编号。
回复

使用道具 举报

15#
发表于 2013-11-6 19:17:17 | 显示全部楼层
说详细一些,怎样截图的?
回复

使用道具 举报

16#
发表于 2013-11-6 19:32:20 | 显示全部楼层
winhex 还有 “截图”选项?我怎么找不到。
回复

使用道具 举报

17#
发表于 2013-11-7 07:46:17 | 显示全部楼层
无论怎样格式化,0X5D 都应当修改为 00。

内存卡用手机格式化,是 FDD 模式。内存卡用读卡器在WIN7下格式化,是 HDD 模式。这是 2 个不同的模式,最好分别讨论。

看来手机升级后,外置卡仍然被 BIOS 分配驱动器号 00 及 0x80。

0X5D为FF,启动明基笔记本, disk error。改0X5D为00, 启动明基笔记本,加载USB驱动成功

说明明基笔记本是以 0x80 启动的。
升级前,以 00 启动,之后 00 不可用,0x80 可用。
升级后,以 0x80 启动,之后 0x80 不可用,00 可用。
回复

使用道具 举报

18#
发表于 2013-11-7 11:55:23 | 显示全部楼层
以91楼环境为条件讨论:
不加载USB驱动,ls 返回Disk read error。

那 ls (fd0)/ , ls (hd0)/ , ls (hd1)/ 各是什么?

加载USB驱动成功,ls 能显示U盘内容,但启动0PE时在加载SRS时卡住。find在显示(fd0)后卡住,死机状。

从截图看,并没有在(fd0)后卡住。
有帖子提示,加载0pe时按空格键试一试。

点评

find 在(fd0)后卡住,后面的盘符是拨出U盘后出现的  详情 回复 发表于 2013-11-7 13:35
回复

使用道具 举报

19#
发表于 2013-11-7 14:38:04 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2013-11-7 19:48 编辑
我有一个疑问,启动盘为何是软盘 fd0?它能够读取 grldr 文件

卡插入手机再连接电脑,BIOS给他分配了2个驱动器号00及0x80。
未升级时,BIOS以00启动,不知何故,加载grldr后却不能使用00,但可以使用0x80。usb驱动程序就给这个U盘赋予0x80,读0x80时就读这个U盘。
升级后,BIOS以0x80启动,加载grldr后,usb驱动程序首先比对已经保存的软盘扇区,发现驱动器号00与这个U盘相同,就赋予其00,读00时就读这个U盘。对于0x80能不能读没有继续比对。但是从故障报告者反映的情况看,是不能读了。为什么?不清楚。

点评

USB驱动不加载,fd0和hd0均不可读,USB驱动加载后,fd0可读,但运行PE好像有一定问题,hd0还是不可读。  详情 回复 发表于 2013-11-7 15:44
回复

使用道具 举报

20#
发表于 2013-11-7 14:42:57 | 显示全部楼层
再反馈一个事,前述isolinux转grldr有问题

可否把U盘镜像上传,以便问题重现。

点评

就是上次的那个ISO,将其中grldr更换成4.6a,再用ultraiso用usbhdd+方式写入U盘就可以测试。我试了usb1.x和usb2.0的电脑,问题是同样的,说明syslinux转grldr是有问题的,跟USB版本没什么关系。  详情 回复 发表于 2013-11-7 18:32
回复

使用道具 举报

21#
发表于 2013-11-7 19:48:05 | 显示全部楼层
H=4,S=16 是 grldr 几何探测的结果,不是 BPB 表设置的。前面与截图。

回复

使用道具 举报

22#
发表于 2013-11-7 20:34:07 | 显示全部楼层
不好意思,101楼写错了。应当是“未升级时”和“升级后”。
赞成不点意见,应当搞清楚到底驱动器号00及0x80是怎么回事。
“未升级时”我有点想搞清楚,但看到已经可以启动了,就不想叫别人测试了。要是我有测试环境,早搞清楚了。
“未升级时”没法验证了,只能验证“升级后”了。我可以编一些测试代码尽量搞清楚,这需要mygamexxx 配合测试。

驱动器号是BIOS分配的,他根据手机usb接口情2个况分配了2 个。我的usb驱动探测到1个设备,2个LUN。1个U盘可以量产为2个LUN。但有1种设备,如读卡器可以把几个设备合成1个设备,每个设备分配1个LUN。手机接口显然是后一种。我一开始认为1个LUN是手机内置卡,另1个是手机外置卡,但是以00启动,启动后00却不可读。而0x80的逻辑0扇区却是启动分区,他占用LUN0。那LUN1即00是内置卡?他怎么可以加载grldr?于是又想到是否BIOS为外置卡分配了2个号00及0x80?这似乎可以自圆其说。这些推测需验证。
不过,以00启动,0x80是启动卡这是确定的。

以上说的是“未升级时”的情况,不是现在的。

点评

测试没问题,明基笔记本在单位,中午有一个多小时的休息时间,就是手机经常变成非U盘状态,需要重启,有点费时间。  详情 回复 发表于 2013-11-7 20:42
回复

使用道具 举报

23#
发表于 2013-11-7 20:51:49 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2013-11-7 20:54 编辑

刚看到mygamexxx 修改了109楼。91楼的BPB表以前没注意,只注意注意看0x5d和0x64了。

是使用手机内部菜单格式化的卡吗?
回复

使用道具 举报

24#
发表于 2013-11-7 21:12:51 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2013-11-7 21:19 编辑

我在101楼可能没有说清楚。
手机升级后,BIOS以0x80启动,加载了grldr。
usb驱动程序首先根据0x410及0x475返回的软盘数及硬盘数保存00,01,0x80,0x81,...的0-0-1扇区。
U盘与主机通讯使用ID:LUN,那他对应的驱动器号怎样知道?首先读U盘的逻辑0扇区,然后比对已经保存的软盘扇区与硬盘扇区。由于先从软盘开始比对,发现驱动器号00的0-0-1扇区与这个U盘的逻辑0扇区相同,就确认其对应于00,当任何软件读00时,通过拦截int13,转而通过usb驱动程序读这个U盘。所以此时U盘的驱动器号成了00.
对于0x80能不能读没有继续比对。但是从故障报告者反映的情况看,是不能读了。
回复

使用道具 举报

25#
发表于 2013-11-8 08:56:06 | 显示全部楼层
CDROM 驱动在哪个文件里?挂载后是否分配了 BIOS 驱动器号?客户程序如何获知并调用 CDROM?

从 80h 启动的时候,即使 0x410 反馈有软盘,调用 DL=0 的 int13 也会出问题?

假如 U 盘以 80h 启动,后来使用 usb --init  挂载,加载了 usb 驱动后,原来 BIOS 的 usb 驱动就失效了。此时使用 DL=80h 的 int13 ,同样会死机。估计 find 或其他函数会探索磁盘。
回复

使用道具 举报

26#
发表于 2013-11-8 11:40:21 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2013-11-10 21:54 编辑

测试环境:
在手机上格式化的卡(即FDD模式),0.4.5c版本, 0x18 处为 3F,0x1A 处为 FF, 0x1C 处为 00,0x5D 处为 00。
卡插入手机,通过 usb 连接明基笔记本,拔掉其他 usb 设备。
冷启动。

测试状况:
显示一部分信息后,等待1分钟,再显示一部分信息,即进入死循环。
正面拍照,清晰度高一些,确保数字可以辨认。
回复

使用道具 举报

27#
发表于 2013-11-8 11:46:27 | 显示全部楼层
syslinux不能正常转grldr的测试模板:http://pan.baidu.com/s/169ojQ
用U+方式写入U盘即可进行测试。

下载模板后,用U+方式写入U盘,测试正常。看到是0.4.6a 2013_11_02版本。

点评

我这里是出不了中文菜单的,你的能出吗?换回4.5c没有问题。  详情 回复 发表于 2013-11-8 16:21
回复

使用道具 举报

28#
发表于 2013-11-8 12:25:33 | 显示全部楼层
不用改,程序只执行以部分。

点评

立即进入内置菜单了,分区引导记录是0.4.5c,显示grldr是0.4.6是2013-11-03  详情 回复 发表于 2013-11-8 12:27
回复

使用道具 举报

29#
发表于 2013-11-8 12:49:47 | 显示全部楼层
重新从123楼下载,再测试。强制加载usb驱动。

点评

先上图  详情 回复 发表于 2013-11-8 13:00
回复

使用道具 举报

30#
发表于 2013-11-8 13:16:18 | 显示全部楼层
实机测试

点评

现在是实机  详情 回复 发表于 2013-11-8 13:27
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-17 10:19

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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