无忧启动论坛

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

反馈一个 grldr.mbr 0.4.6a 的 bug

  [复制链接]
31#
发表于 2013-11-5 15:49:06 | 只看该作者
赞同 sgw888  的说法。我曾经验证过某些主板,chs与结束磁头数和结束扇区数有着对应关系。
回复

使用道具 举报

32#
发表于 2013-11-5 16:35:22 | 只看该作者
想问一下4.6a与4.5c主要的优势在哪里?我目前想使用它就是因为它提供了启动cd的bin文件(以前我总是从4.5c的前2kB来提取的)


0.4.6 加强了 CD-ROM 的支持,支持微软的 CD-ROM 格式。对 CD-ROM 的引导代码进行了强化和改造。对 GRLDR 的引导代码进行了强化和改造,完整支持了微软的 exFAT 文件系统。还有内置 USB 驱动。我所知道的大致就这些了。

点评

哦,那还是值得升级的,后面发布的PE还是转到这4.6a来吧! 不知每次4.5c的更新会不会也更新到4.6a上去。  详情 回复 发表于 2013-11-5 17:48
回复

使用道具 举报

33#
发表于 2013-11-5 17:48:54 | 只看该作者
不点 发表于 2013-11-5 16:35
0.4.6 加强了 CD-ROM 的支持,支持微软的 CD-ROM 格式。对 CD-ROM 的引导代码进行了强化和改造。对 GRL ...

哦,那还是值得升级的,后面发布的PE还是转到这4.6a来吧!
不知每次4.5c的更新会不会也更新到4.6a上去。
回复

使用道具 举报

34#
发表于 2013-11-5 18:52:56 | 只看该作者
不知每次4.5c的更新会不会也更新到4.6a上去。

会的
回复

使用道具 举报

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

使用道具 举报

36#
发表于 2013-11-6 13:31:30 | 只看该作者
本帖最后由 mygamexxx 于 2013-11-6 13:49 编辑

我也认为是手机形成的U盘的原因。
测试过程:内存卡用读卡器,在WIN7下格式化,用BOOTICE1105版,修改主引导为WEE63,分区引导为grub4dos 0.4.6a。先拷入GRLDR,再拷入其他文件,启动联想台式机,不加载USB驱动,拍照;将内存卡装入手机,用手机启动联想台式机,不加载USB驱动,拍照;用手机启动明基笔记本,拍照。用winhex写入手机形成的U盘的0x64为80,也是no grldr。明基笔记本启动,BIOS中只有一个U盘的启动选项。以前是在XP下用其他软件格式化或手机格式化,用XP或WIN7格式化U盘速度超慢,需好几分钟。

读卡器.jpg (112.43 KB, 下载次数: 174)

读卡器.jpg

手机.jpg (107.59 KB, 下载次数: 145)

手机.jpg

明基笔记本手机启动.jpg (26.65 KB, 下载次数: 144)

明基笔记本手机启动.jpg
回复

使用道具 举报

37#
发表于 2013-11-6 14:00:48 | 只看该作者
从联想台式机启动:
用读卡器,BIOS分配驱动器号x80,
用手机,BIOS分配驱动器号00。
从明基笔记本启动,不清楚BIOS分配什么驱动器号。

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

使用道具 举报

38#
发表于 2013-11-6 15:50:55 | 只看该作者
本帖最后由 mygamexxx 于 2013-11-6 16:03 编辑

内存卡装入手机后,用手机形成的U盘,在XP下,用BOOTICE,主引导是灰色的,只有分区引导记录是GRUB4DOS,显示的U盘类型是FDD。
用winhex写入手机形成的U盘的0x64为80,在联想台式机上启动,geometry 仍为0x00。

1.jpg (11.58 KB, 下载次数: 154)

1.jpg

2.jpg (47.37 KB, 下载次数: 162)

2.jpg

3.jpg (41.27 KB, 下载次数: 155)

3.jpg
回复

使用道具 举报

39#
发表于 2013-11-6 16:15:30 | 只看该作者
本帖最后由 2011yaya2007777 于 2013-11-6 16:18 编辑

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

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

使用道具 举报

40#
发表于 2013-11-6 16:19:29 | 只看该作者
GRLDR 在 16M 处,仍然有失败的危险。

引导失败、找不到 GRLDR 的原因是 BPB 里面的 H 和 S 与 BIOS 所认定的值不同,还有 yaya 所说的 drive number 的问题,以及 GRLDR 的物理位置太远,超出 BIOS 的寻址能力。

现在最关键的就是确定 BIOS 所认定的  H 和 S 究竟是多少。如果这个不能确定,那就只有失败。

0.4.5c 的分区引导代码比较可靠,应该不会有错。0.4.6 的代码,yaya 更清楚一些。

点评

如何确认BIOS所认定的C、H、S?  详情 回复 发表于 2013-11-6 16:38
回复

使用道具 举报

41#
发表于 2013-11-6 16:28:42 | 只看该作者
本帖最后由 mygamexxx 于 2013-11-6 16:35 编辑

19楼是在XP下用其他工具格式化的,要么是BOOTICE,要么是DG。有点记不清了。
把现在的0x5d的00修改为0xff,用联想台式机启动,no grldr。

4.jpg (77.52 KB, 下载次数: 148)

4.jpg
回复

使用道具 举报

42#
发表于 2013-11-6 16:38:02 | 只看该作者
不点 发表于 2013-11-6 16:19
GRLDR 在 16M 处,仍然有失败的危险。

引导失败、找不到 GRLDR 的原因是 BPB 里面的 H 和 S 与 BIOS 所认 ...

如何确认BIOS所认定的C、H、S?
回复

使用道具 举报

43#
发表于 2013-11-6 16:48:39 | 只看该作者
你可以先安装 fbinst,它能成功进入 grldr 的环境,进去之后,就可以找到 USB 盘的几何参数了。

geometry (fd0)

geometry (hd0)

其中必有一个是 USB 盘。

然后 用 ls 、cat 等命令列出或查看 USB 里面的文件,看看是否能列出和查看,如果能,那就说明 geometry 所列出的几何参数是正确的。

点评

我用内存卡装入读卡器,可以在明基笔记本上启动成功,是否也可以?  详情 回复 发表于 2013-11-6 16:50
回复

使用道具 举报

44#
发表于 2013-11-6 16:50:53 | 只看该作者
本帖最后由 mygamexxx 于 2013-11-6 16:53 编辑
不点 发表于 2013-11-6 16:48
你可以先安装 fbinst,它能成功进入 grldr 的环境,进去之后,就可以找到 USB 盘的几何参数了。

geometr ...


我用内存卡装入读卡器,可以在明基笔记本上启动成功,是否也可以?但装入读卡器后,是从U盘的MBR启动的(U盘的MBR是WEE63)。
回复

使用道具 举报

45#
发表于 2013-11-6 17:03:55 | 只看该作者
看到你的偏移 0x1C 处的 3F 00 00 00 了吗?这是错的!应该是 00 00 00 00

你先修改这个,然后再试试,说不定就 OK 了。

点评

在联想台式机上,如果 0x5D是FF, 修改后还是NO GRLDR,如果0x5D改回00,0x1C不改能启动,改了也能启动。  详情 回复 发表于 2013-11-6 17:24
回复

使用道具 举报

46#
发表于 2013-11-6 17:24:45 | 只看该作者
本帖最后由 mygamexxx 于 2013-11-6 17:42 编辑
不点 发表于 2013-11-6 17:03
看到你的偏移 0x1C 处的 3F 00 00 00 了吗?这是错的!应该是 00 00 00 00

你先修改这个,然后再试试,说 ...


在联想台式机上,如果 0x5D是FF,  修改后还是NO GRLDR,如果0x5D改回00,0x1C不改能启动,改了也能启动。
在明基笔记本上,无论 0x5D是00或是FF:0x1C如果是3F,NO GRLDR,如果改为00,光标后(二行或三行字符一闪)黑屏,插出U盘后,显示内置菜单。
回复

使用道具 举报

47#
发表于 2013-11-6 17:40:44 | 只看该作者
本帖最后由 不点 于 2013-11-6 19:05 编辑

不要以为联想能启动,就都能启动。联想的 BIOS 会自动将 1C 处(读入内存后)修改为 00,其它的 BIOS 不一定这样。

5D 处是不可以修改的。【更正】噢噢,这个说法是错误的。应为:5D 处是可以修改的。

应该修改的是 0x40 处,如果它是 0x80,那就是硬盘 hd0,如果是 00,那就是软盘 fd0。【更正】哦哦,这个说法也是错误的。应为:0x40 处不是用来读的。修改 0x40 处没有用。



点评

在明基笔记本上,无论 0x5D是00或是FF:0x1C如果是3F,NO GRLDR,如果改为00,光标后(二行或三行字符一闪)黑屏,插出U盘后,显示内置菜单。 0x40是80.  详情 回复 发表于 2013-11-6 17:45
回复

使用道具 举报

48#
发表于 2013-11-6 17:45:00 | 只看该作者
本帖最后由 mygamexxx 于 2013-11-6 18:01 编辑
不点 发表于 2013-11-6 17:40
不要以为联想能启动,就都能启动。联想的 BIOS 会自动将 1C 处(读入内存后)修改为 00,其它的 BIOS 不一定 ...


在明基笔记本上,无论 0x5D是00或是FF:0x1C如果是3F,NO GRLDR,如果改为00,光标后(二行或三行字符一闪)黑屏,拨出U盘后,显示内置菜单。

0x40是80.

内存卡插入读卡器,在明基笔记本上启动如下图,C、H、S与手机的一样:

20131106_175040.jpg (110.61 KB, 下载次数: 168)

20131106_175040.jpg
回复

使用道具 举报

49#
发表于 2013-11-6 17:51:10 | 只看该作者
抱歉,刚才说的不对。

你改 5D 处是对的。改 40 处是没用的。

回复

使用道具 举报

50#
发表于 2013-11-6 17:56:17 | 只看该作者
你得搞清,如果机器把这个扇区当作扇区 0 来对待,那么你就应该把 1C 处的四个字节清零。

如果你的机器把这个扇区当作扇区 3F 来对待(即它之前的 63 扇区是被作为 MBR 磁道而承认了),那么此处就应该是 3F 00 00 00.

应该视具体情况而定,而不是一成不变的。

如果是 fbinst,那就不会有这些复杂的问题。但你不能安装 fbinst,所以,必须考虑这些复杂问题。

回复

使用道具 举报

51#
发表于 2013-11-6 18:01:17 | 只看该作者
如果改为00,光标后(二行或三行字符一闪)黑屏,插出U盘后,显示内置菜单。


这不就等于说成功了?至少已经成功加载 GRLDR 了!

点评

是拨出U盘后,显示内置菜单,打字打错了  详情 回复 发表于 2013-11-6 18:02
回复

使用道具 举报

52#
发表于 2013-11-6 18:02:34 | 只看该作者
本帖最后由 mygamexxx 于 2013-11-6 18:06 编辑
不点 发表于 2013-11-6 18:01
这不就等于说成功了?至少已经成功加载 GRLDR 了!


是拨出U盘后,显示内置菜单,打字打错了,三行字符一闪,好像是警告信息。
回复

使用道具 举报

53#
发表于 2013-11-6 18:04:58 | 只看该作者
对呀,拔出 U 盘,进入 GRLDR,这说明 GRLDR 启动了。你硬盘上有 GRLDR 吗?如果有,你删除掉硬盘的 GRLDR,硬盘改用 grub.exe,以免影响这里的测试结果。

点评

肯定是U盘的grldr,因为内置菜单不一样,显示的是U盘上grldr的内置菜单。  详情 回复 发表于 2013-11-6 18:09
回复

使用道具 举报

54#
发表于 2013-11-6 18:09:52 | 只看该作者
本帖最后由 mygamexxx 于 2013-11-6 18:12 编辑
不点 发表于 2013-11-6 18:04
对呀,拔出 U 盘,进入 GRLDR,这说明 GRLDR 启动了。你硬盘上有 GRLDR 吗?如果有,你删除掉硬盘的 GRLDR, ...


肯定是U盘的grldr,因为内置菜单不一样,显示的是U盘上grldr的内置菜单。硬盘上根目录下的grldr的内置菜单是英文的,U盘上的是中文的。已确认。

但U盘插着时,内置菜单出不来。
回复

使用道具 举报

55#
发表于 2013-11-6 18:17:40 | 只看该作者
贴出你的内置菜单,找找毛病。这已经是小菜了,等晚饭之后再聊吧。

点评

内置菜单: debug off ::find --set-root /grub/grub/unifont.hex ::read 0x1800820 || font /grub/grub/unifont.hex ::calc 468&0xff-0x80 || set usbtitle=正以 USB-HDD 方式启动 ! set usbtitle=正以 USB-FDD  详情 回复 发表于 2013-11-6 18:24
回复

使用道具 举报

56#
发表于 2013-11-6 18:24:57 | 只看该作者
不点 发表于 2013-11-6 18:17
贴出你的内置菜单,找找毛病。这已经是小菜了,等晚饭之后再聊吧。

内置菜单:
debug off
::find --set-root /grub/grub/unifont.hex
::read 0x1800820 || font /grub/grub/unifont.hex
::calc 46<<2+*0x8304
::read %@retval% || splashimage /grub/grub/TEST.BMP
graphicsmode -1 800
color normal=0x0F highlight=0x02 helptext=0x0E heading=0x05 standard=0x02 border=0x77
terminal --font-spacing=1:4
::(ud)/menuset 2 0 2 0 0 2
root (fd0) || root (fd0,0) || root (hd0) || root (hd0,0) || root (hd0,2)
/boot/grub/hotkey
calc 0+*0x8280>>8&0xff-0x80 || set usbtitle=正以 USB-HDD 方式启动 ! set usbtitle=正以 USB-FDD 方式启动
timeout 30
default 1
write 0x8274 0x2001 ::自动菜单编号
title       %usbtitle%
clear
title       从硬盘启动(异常U启)  \n\t  启动硬盘上的系统(硬盘可能与U盘冲突的情况下使用)\n\t  使用上下方向键选中并高亮一条菜单,按回车键或[B]键开始引导。\n\t  按[E]键在引导前编辑命令,或[C]键进入命令行。
map (hd0) (hd-1)
map (hd-1) (hd0)
map --hook
root (hd0,0)
chainloader +1
title       启动 0PE  \n\t  启动 0PE 进行系统维护
map /0pe/0pe.iso (0xFF) || map --mem /0pe/0pe.iso (0xFF)
map --hook
chainloader (0xFF)
title       启动 XPPE  \n\t  启动 XPPE 进行系统维护
map /boot/xppe.iso (0xFF) || map --mem /boot/xppe.iso (0xFF)
map --hook
chainloader (0xFF)
title       启动 03PE  \n\t  启动 03PE 进行系统维护
map /boot/03pe.iso (0xFF) || map --mem /boot/03pe.iso (0xFF)
map --hook
chainloader (0xFF)
::title       启动 bootmgr 菜单  \n\t  启动 WINPE3.0,老机器先加载 plpbt 支持 USB2.0
::if "%@root%"=="(fd0,0)" (ud)/move && map (fd0) (hd0) && map --rehook && rootnoverify (hd0,0)
::chainloader /boot/Tbootmgr
title       启动 WIN8PE  \n\t  启动 WIN8PE 进行系统维护
map /boot/8pe.iso (0xFF) || map --mem /boot/8pe.iso (0xFF)
map --hook
chainloader (0xFF)
title       启动 WIN8.1PE  \n\t  启动 WIN8.1PE 进行系统维护
map /boot/81pe.iso (0xFF) || map --mem /boot/81pe.iso (0xFF)
map --hook
chainloader (0xFF)
boot
title       U盘一键备份硬盘  \n\t  U盘一键备份硬盘的测试
configfile /grub/grub/onekey.lst
boot
title       启动 linux  系统 \n\t  进入 linux 系统启动菜单
configfile /linux/linux.lst
boot
title       启动指尖操作系统 \n\t  进入指尖操作系统
map --mem /boot/os.lzma (hd)
map --hook
map (hd-1) (hd0)
map --hook
root (hd0,0)
chainloader /ntldr
title       GRUB4DOS 资源管理器  \n\t  GRUB4DOS 资源管理器
command /grub/automenu
boot
title       搜索硬盘 GHO 文件  \n\t  搜索硬盘 GHOST 备份文件
command /boot/usearth.bat cmd="echo %1" filpre="" ext=.gho dirext=1 subdir=2 devs="--devices=h" return="configfile"
boot
title       免密码直接进入本机操作系统  \n\t  可以在忘记操作系统登录密码时进入操作系统
map --mem /boot/KONBOOT.GZ (fd0)
map (hd0) (hd-1)
map (hd-1) (hd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
title       清除WINDOWS操作系统密码  \n\t  清除操作系统密码PASSWORD CHANGER 5.0 DOS 版
map --mem /boot/PASSWORD.IMG (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
title       进入 GRUB4DOS 命令行  \n\t  使用上下方向键选中并高亮一条菜单,按回车键或[B]键开始引导。\n\t  按[E]键在引导前编辑命令,或[C]键进入命令行。
commandline
title       重启计算机  \n\t  重新启动计算机
reboot
回复

使用道具 举报

57#
发表于 2013-11-6 18:29:15 | 只看该作者
本帖最后由 mygamexxx 于 2013-11-6 18:33 编辑

有劳不点兄了,我晚上值班,5点就吃过晚饭了,有时间测试。
回复

使用道具 举报

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

使用道具 举报

59#
发表于 2013-11-6 18:37:24 | 只看该作者
本帖最后由 mygamexxx 于 2013-11-6 18:40 编辑
2011yaya2007777 发表于 2013-11-6 18:34
0.4.5c 的 fat16,fat32 分区引导代码需要安装,不能直接使用 winhex 等工具,建议使用 BOOTICE 。
如果 0 ...


进入硬盘的菜单可以使用,能成功启动硬盘。我一般都是用BOOTICE,对WINHEX不熟悉,一般是汉化软件时使用。

18-35-50.jpg (194.84 KB, 下载次数: 157)

18-35-50.jpg
回复

使用道具 举报

60#
发表于 2013-11-6 18:42:56 | 只看该作者
本帖最后由 mygamexxx 于 2013-11-6 18:44 编辑
2011yaya2007777 发表于 2013-11-6 18:34
0.4.5c 的 fat16,fat32 分区引导代码需要安装,不能直接使用 winhex 等工具,建议使用 BOOTICE 。
如果 0 ...


0扇区还是0x7e00我不太清楚,我是个菜鸟,搞化学的。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-2 18:24

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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