无忧启动论坛

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

GRUB4DOS更新建议、bug反馈专帖

    [复制链接]
511#
 楼主| 发表于 2011-1-29 22:35:21 | 只看该作者
奇怪,测试28日版本,vmplayer 虚拟硬盘超过1T后,pxe还是无法启动.
是vmplayer问题?使用的是最新版的vmplayer。

[ 本帖最后由 zhaohj 于 2011-1-29 22:37 编辑 ]
回复

使用道具 举报

512#
发表于 2011-1-30 08:25:23 | 只看该作者
这个是VM的问题吧,PXE无法启动和GRLDR有关系吗?
回复

使用道具 举报

513#
 楼主| 发表于 2011-1-30 08:34:31 | 只看该作者
查看了vm的配置,把"net“改成"Bridged"就进去了。一时疏忽!
再看看硬盘格式化后情况

[ 本帖最后由 zhaohj 于 2011-1-30 10:06 编辑 ]

Snap1.jpg (67.75 KB, 下载次数: 122)

Snap1.jpg
回复

使用道具 举报

514#
发表于 2011-1-30 09:42:03 | 只看该作者
超过2T是肯定不支持的。。

[ 本帖最后由 chenall 于 2011-1-30 10:36 编辑 ]
回复

使用道具 举报

515#
发表于 2011-1-30 10:26:00 | 只看该作者
用DG或者DISKPART弄成GPT

看看GRLDR能不能启动ISO,IMG

这个成功才是关键
回复

使用道具 举报

516#
发表于 2011-2-5 13:48:07 | 只看该作者
chenall 兄,请教个问题。

fbinst + grldr 启动盘,grldr1月28版本或者更新的版本:

1、进入命令行模式后输入:
configfile (ud)/BOOT/GRUB/MENU.0PE

执行后没反应:



按理说应该不用加boot,我加个boot试试:



报错了。

2、换个写法:

分别输入并执行
find --set-root /BOOT/GRUB/MENU.0PE
configfile /BOOT/GRUB/MENU.0PE

或者configfile (ud)/BOOT/GRUB/MENU.0PE


启动成功,可以顺利进入0PE的菜单,因为进入了菜单没截屏了。

chenall 兄看看为什么会这样?

[ 本帖最后由 Plantsoot 于 2011-2-5 13:54 编辑 ]
回复

使用道具 举报

517#
发表于 2011-2-6 20:00:29 | 只看该作者
set 设置变量时不清除原值吗


还有个问题

map --mem /BOOT/IMGS/FIRADISK.IMG (fd1)
map --mem (md)+2880 (fd0)
map --hook

执行find结果如下


继续执行 dd if=(fd1) of=(fd0) count=1

再执行find结果如下


不知是否正常

[ 本帖最后由 sratlf 于 2011-2-6 20:53 编辑 ]
回复

使用道具 举报

518#
发表于 2011-2-7 22:55:56 | 只看该作者
1月28日的grldr刻盘后无法引导光盘,旧版的可以
回复

使用道具 举报

519#
 楼主| 发表于 2011-2-9 13:31:40 | 只看该作者
@sratlf:
设置变量时并不清除原值,新值以\0结束。
比如set c=
并不清除c的内容
你可以通过0x4cb00取得变量值长度
如set c=--mem-noboot
变量lenc代表变量c值的长度
set c=%c% && set /a lenc=*0x4cb00

可以用cat查看变量及变量值的内容
cat --hex (md)0x228+1 查看变量
cat --hex (md)0x229+1~64 查看变量值

[ 本帖最后由 zhaohj 于 2011-2-9 13:39 编辑 ]
回复

使用道具 举报

520#
发表于 2011-2-10 10:54:52 | 只看该作者
大家新年快乐!

今天更新了一下unifont,现在unifont使用全新的方案,全面支持UTF-8字符.
可以正常显示中文文件夹/文件名.cat/echo等命令同样可以正常显示中文.

另外,因为使用全新的方案,所以之前在GRUB4DOS内部对UTF-8字符的处理就不需要了.
所以下一个版本的GRUB4DOS内部将会取消内部对UTF-8字符的处理.

请大家都更新到最新版UNIFONT,否则将无法在新版本的GRUB4DOS中正常显示中文菜单.

新的UNIFONT可以兼容之前的GRUB4DOS版本.但新的GRUB4DOS不兼容旧的UNIFONT.

@Plantsoot
应该和菜单文件的内容有关系吧.....

@sratlf
1.这个也许是一个BUG,我再抽空检查一下,按理说碰到\0就结束了,不应该超出的.
2.没有关系,因为用这种方式生成的文件分配表并不是完整的.
如果使用FAT命令格式化后就不会有这样的提示了.
回复

使用道具 举报

521#
发表于 2011-2-10 11:47:40 | 只看该作者

回复 #520 chenall 的帖子

我的意思是在命令行模式,必须先使用find,再configfile才可以正常加载菜单,
直接configfile没反应。

我刚才做了测试,发现了问题:

grub> find

(hd0)
(ud)
(hd0,0)

grub> ls (hd0)/  和  grub> ls (ud)/ 返回的都是 ud 内的文件列表

第一种方式:

grub> configfile (hd0)/MENU.LST 和 grub> configfile (ud)/MENU.LST 都无反应。

第二种方式:

grub> root (ud)
grub> configfile (ud)/MENU.LST

失败

第三种方式:
grub> root (hd0)
grub> configfile (hd0)/MENU.LST

成功

第四种方式:
grub> root (hd0)
grub> configfile (ud)/MENU.LST

失败

第五种方式:
grub> find  /MENU.LST
grub> configfile /MENU.LST

成功

[ 本帖最后由 Plantsoot 于 2011-2-10 12:04 编辑 ]
回复

使用道具 举报

522#
发表于 2011-2-10 12:00:19 | 只看该作者
嗯,应该是和菜单文件和关系..比如菜单文件里面有一些特殊的判断..

另外你可以看看直接用以下命令试试看看能不能正常显示菜单内容,如果可以显示那90%是菜单文件的关系了,否则就是其它原因(在没有find之前)
cat (ud)/xxxxx
回复

使用道具 举报

523#
发表于 2011-2-10 12:39:17 | 只看该作者

回复 #520 chenall 的帖子

新年好。
外部命令fontfile受影响吗?如果受影响,希望也更新一下。
回复

使用道具 举报

524#
发表于 2011-2-10 12:46:55 | 只看该作者
原帖由 pseudo 于 2011-2-10 12:39 发表
新年好。
外部命令fontfile受影响吗?如果受影响,希望也更新一下。


这个没有影响.新版的GRUB4DOS只影响了UNIFONT.
回复

使用道具 举报

525#
发表于 2011-2-10 12:50:56 | 只看该作者
@Plantsoot
我还是觉得有很大的可能是问题出在菜单文件上.
至于ls (hd0)/ 和 ls (ud)/显示的内容是一样的,这是正常的

因为新的GRUB4DOS支持FB文件系统,你没有使用FBINST启动同样可以通过(hd0)/xx的方式来访问(ud)区的内容.

你还可以直接map一个fba
比如
map (hd0,0)/fb.fba (hd2)
map --hook
也可以通过(hd2)/来访问fb.fba里面的文件.
回复

使用道具 举报

526#
发表于 2011-2-10 14:02:13 | 只看该作者

回复 #525 chenall 的帖子

我的启动是这样的  fbinst + grldr(内置菜单),我刚才测试了下,如果清空 grldr的内置菜单,启动后自动进入grub命令行模式,configfile (ud)/MENUTEST.LST 可以直接加载菜单,只不过无法正常加载gfxmenu 的message文件,但菜单还是出来了。

继续测试找元凶。

grldr菜单前部分如下:
  1. checkrange 0x21 read 0x8280 && pxe detect NotExist
  2. command --set-path=(bd)/BOOT/GRUB/
  3. timeout 10
  4. default 0
  5. gfxmenu (ud)/message
  6. configfile (md)4+8

  7. title  命令行模式
  8. commandline
复制代码
这个菜单,进入菜单后,选择命令行模式,输入 configfile (ud)/BOOT/GRUB/MENU.0PE 后无反应;
再输入一次 configfile (ud)/BOOT/GRUB/MENU.0PE 后正常加载MENU.0PE菜单。
也就是说要执行两次configfile (ud)/BOOT/GRUB/MENU.0PE 才可以正常加载。

菜单改为:
  1. checkrange 0x21 read 0x8280 && pxe detect NotExist
  2. command --set-path=(bd)/BOOT/GRUB/
  3. timeout 10
  4. default 0

  5. title  命令行模式
  6. commandline
复制代码
不加载message的情况下一切正常,输入一次 configfile (ud)/BOOT/GRUB/MENU.0PE 后就可以正常加载菜单了。
看来是gfxmenu (ud)/message影响的。

请Chenall指正。

另外,直接map fba文件是个好消息。有空我去测试下。

[ 本帖最后由 Plantsoot 于 2011-2-10 14:05 编辑 ]
回复

使用道具 举报

527#
发表于 2011-2-10 16:51:30 | 只看该作者
我还没有用过gfxmenu.

你可以把相关文件上传上来,我抽空测试一下.
回复

使用道具 举报

528#
发表于 2011-2-10 21:21:28 | 只看该作者

回复 #527 chenall 的帖子

我是用我春节版的fba测试的,体积太大,等我精简一下,整理一下传到115网盘。

另外问一个问题,map出来的设备,除了 (0xff) 在进入PE前不会被释放,还有哪些编号的设备不会被释放?
回复

使用道具 举报

529#
发表于 2011-2-10 21:59:57 | 只看该作者
原帖由 Plantsoot 于 2011-2-10 21:21 发表
我是用我春节版的fba测试的,体积太大,等我精简一下,整理一下传到115网盘。

另外问一个问题,map出来的设备,除了 (0xff) 在进入PE前不会被释放,还有哪些编号的设备不会被释放?


所有map的设备,都不会被释放的..除非你主动unmap.否则,...
回复

使用道具 举报

530#
 楼主| 发表于 2011-2-11 09:23:07 | 只看该作者
大家新年好!
2-10 grub4dos变量值截取正常了

Snap1.jpg (81.27 KB, 下载次数: 119)

Snap1.jpg
回复

使用道具 举报

531#
发表于 2011-2-11 11:01:56 | 只看该作者
@chenall:
加载unicode字体后,这个是否正常?(非针对新版)
回复

使用道具 举报

532#
发表于 2011-2-11 11:52:22 | 只看该作者
原帖由 zxw 于 2011-2-11 11:01 发表
@chenall:
加载unicode字体后,这个是否正常?(非针对新版)
112895


这个和UNIFONT无关,,一直都是这样子的.

进入图形模式后这些控制字符就不能正常起作用了.
回复

使用道具 举报

533#
发表于 2011-2-11 13:58:03 | 只看该作者

回复 #532 chenall 的帖子

但其它控制字符貌似都正常。
回复

使用道具 举报

534#
发表于 2011-2-11 14:08:23 | 只看该作者
原帖由 zxw 于 2011-2-11 13:58 发表
但其它控制字符貌似都正常。


暂时不管这个,其它的控制字符像\r\t\n都是经过特殊处理的.
回复

使用道具 举报

535#
发表于 2011-2-11 14:46:18 | 只看该作者

回复 #534 chenall 的帖子

哦,原来如此,期待也特殊处理\b
回复

使用道具 举报

536#
发表于 2011-2-11 18:58:42 | 只看该作者
报告一下,2-10日版本对菜单变量支持不好。
用的unifont命令也是10日版本。
具体表现在使用菜单变量后,下方提示信息栏会留下命令行提示信息的最右侧部分。




但当菜单中正常使用 \n XXX 来改变提示信息时,情况会有所变化。看下面的菜单,红字部分为测试信息。
debug off
command --set-path=(bd)/BOOT/GRUB/
cat --length=0 ()/BOOT/GRUB/MENU/MENU.5U || find --set-root /BOOT/GRUB/MENU/MENU.5U
unifont ()/BOOT/GRUB/U16HZ
background 004080
foreground ffffff
set n=按下序号数字回车,直接进入相应子菜单
clear
default 12

title    ☆无忧经典PE☆
clear
title   ================
clear
title ────────────────────
clear
title   03  PE/Linux合集  \n\n   %n%
RUN 1.5U
boot
title   04  DOS 工具合集  \n\n   %n%
RUN 2.5U
boot
title   05  备份还原工具  \n\n   %n%
RUN 3.5U
boot
title   06  磁盘分区工具  \n\n   aaa   
RUN 4.5U
boot
title   07  硬件维护工具  \n\n   %n%
RUN 5.5U
boot
title   08  启动破解工具  \n\n   bbb
RUN 6.5U
boot
title   09  系统安装修复  \n\n   %n%
RUN 7.5U
boot
title   10  GRUB--命令行  
commandline \n\n    %n%
title ────────────────────
clear     
title   12  EasyBoot菜单  \n\n   %n%\n
chainloader --force ()/EASYBOOT/loader.bin || chainloader --force ()/EASYBOOT/LOADER.BIN
title   13  ISOLINUX菜单 \n\n   %n%
chainloader --force ()/BOOT/ISOLINUX.BIN
title   14  BOOTMGR 菜单  \n\n   %n%
chainloader --force ()/WUYOUMR
title ────────────────────
clear
title   16  特殊方式启动 \n\n    先USB2.0/F6加载驱动后,再启动合盘PE\n    或启动PLPBT引导管理器,或加载F6模块
RUN SPECIAL.5U
boot
title   17  硬盘启动菜单  \n\n   %n%
RUN HDDBOOT.5U
boot
title   18  搜索启动系统  \n\n   ccc
RUN nt
boot
title   19  重新启动系统  \n\n   %n%
reboot
title   20  关闭--计算机  \n\n   %n%
halt


测试结果如下图所示:


由上图可见:当菜单项经过红色测试部分后,其变量显示正常,而经过命令行提示信息后,就重新出现右侧的 "b' to boot " (有时是 " boot"、"t"等,如提示信息不同的话,此多余信息也会有所变化)的多余信息,直到重新经过红色测试部分,又再度恢复正常。
请C大修正一下。

[ 本帖最后由 blithewind 于 2011-2-11 19:02 编辑 ]
回复

使用道具 举报

537#
发表于 2011-2-11 19:10:44 | 只看该作者
@blithewind
谢谢提醒,
因为汉字的UTF-8编码一般都是三个字节的,而变成汉字显示在屏幕上时使用了2个字节的位置.所以才会导致后面的字符未被清除.

下个版本进行修正..
回复

使用道具 举报

538#
发表于 2011-2-13 15:48:51 | 只看该作者
@chenall:
不用cat,如何准确获取变量或变量值在内存中的偏移?
回复

使用道具 举报

539#
发表于 2011-2-13 19:04:15 | 只看该作者
从内存0x45000
开始
第一个扇区是变量.
接下去就是变量的值.

一个变量名长度最多8个字符,所以最多64个变量.
每个变量的值占用一个扇区.

自己去计算.
回复

使用道具 举报

540#
发表于 2011-2-13 19:29:40 | 只看该作者

回复 #539 chenall 的帖子

这些我知道,其实用set、shift、cat 等命令结合可以获取。
我的真实想法是:最好是输入某个命令得到的返回值,就是某变量值的偏移地址。这样即可很方便地实现wenv命令动态截取字符串的功能。

[ 本帖最后由 zxw 于 2011-2-13 19:44 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-23 15:08

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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