无忧启动论坛

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

GRUB4DOS更新建议、bug反馈专帖

    [复制链接]
601#
发表于 2011-3-3 11:54:01 | 只看该作者
原帖由 zxw 于 2011-3-3 11:50 发表

新版很好,测试正常。
对了,获取的grub4dos临时保存在什么地方?


grub4dos-0.4.5b-2011-02-20.7z保存在内存里面,解压出grldr到系统临时目录,用完就删除了,只有一瞬间,查看不到文件

[ 本帖最后由 jianliulin 于 2011-3-3 11:56 编辑 ]
回复

使用道具 举报

602#
发表于 2011-3-3 17:17:56 | 只看该作者
小试了一下,一切正常。
不过,因为当初设计的原因。
实际文件名长度不可以超过11个字符(包括.号),最后一个用于结束字符串。

现在如果使用ABCDEFGH.123之类的文件名(即总长度超过11),打包进去后会出现异常。

所以还是要限制文件名长度不能超过11个字符。
回复

使用道具 举报

603#
发表于 2011-3-3 18:50:25 | 只看该作者
原帖由 chenall 于 2011-3-3 17:17 发表
小试了一下,一切正常。
不过,因为当初设计的原因。
实际文件名长度不可以超过11个字符(包括.号),最后一个用于结束字符串。

现在如果使用ABCDEFGH.123之类的文件名(即总长度超过11),打包进去后会出 ...



原来是11个啊,我限制为12个了,下次再更正
回复

使用道具 举报

604#
发表于 2011-3-3 22:02:27 | 只看该作者

回复 #602 chenall 的帖子

能不能采取这样的结构,类似fbinst文件列表中的结构:

struct
  {
    unsigned char len;
    char filename[];
    unsigned long size;
  } grub_mod;

这样,用len表示文件名的长度+1,filename为动态数组,这样不考虑文件名的长短了,只要不超过上限。
回复

使用道具 举报

605#
发表于 2011-3-4 08:28:26 | 只看该作者
@Plantsoot
这样子虽然好,但我感觉没有必要改变,必竟使用太长的外部命令名称完全没有必要。
^_^,而且目前的方式比较方便编程。

一个命令一般8个字符以上就挺长的了。太长了不好书写。
回复

使用道具 举报

606#
发表于 2011-3-4 10:21:58 | 只看该作者
@chenall:
shift只能单独一行,不能连写?测试了一下,在dos下可以连写。
回复

使用道具 举报

607#
发表于 2011-3-4 10:24:02 | 只看该作者
是的shift是一个伪命令
必须单行。
回复

使用道具 举报

608#
发表于 2011-3-4 10:37:22 | 只看该作者

回复 #607 chenall 的帖子

还是改造成“真”命令为好。^_^
编写较为复杂的批处理要省事不少。
回复

使用道具 举报

609#
发表于 2011-3-4 10:45:11 | 只看该作者
这个以后再考虑看看,会比较麻烦。

我还没有想到好的办法让它可作为一个单独的命令。而且还要不影响使用。

如果谁有什么好的想法也可以提供一下。
回复

使用道具 举报

610#
发表于 2011-3-7 09:43:15 | 只看该作者
@chenall:
exist命令对汉字无效?cat 命令也不行。

加载了unifont字体情形:


未加载字体情形:


[ 本帖最后由 zxw 于 2011-3-7 09:54 编辑 ]
回复

使用道具 举报

611#
 楼主| 发表于 2011-3-7 14:25:40 | 只看该作者
奇怪,我测试是正常的,pxe启动,英文版grldr

Snap1.jpg (63.98 KB, 下载次数: 100)

Snap1.jpg
回复

使用道具 举报

612#
发表于 2011-3-7 14:41:41 | 只看该作者
真是奇怪,我也是英文版grldr.
反复测试,就是不正常。
回复

使用道具 举报

613#
发表于 2011-3-7 15:22:31 | 只看该作者
应该和分区格式有关系,具体的不太清楚。
回复

使用道具 举报

614#
 楼主| 发表于 2011-3-7 15:39:45 | 只看该作者
在硬盘上测试,确实如zxw一样,不支持中文目录,不支持中文文件

我在/快盘 及 /temp下放了个中文文件 %name%

我在FAT32分区上测试的。
而fat dir正常

[ 本帖最后由 zhaohj 于 2011-3-7 16:02 编辑 ]

Snap1.jpg (45.72 KB, 下载次数: 110)

Snap1.jpg

Snap2.jpg (44.69 KB, 下载次数: 103)

Snap2.jpg

Snap3.jpg (30.9 KB, 下载次数: 97)

Snap3.jpg
回复

使用道具 举报

615#
 楼主| 发表于 2011-3-7 16:04:56 | 只看该作者
上图1、3中,同样的文件,编码不一样
回复

使用道具 举报

616#
发表于 2011-3-7 16:27:28 | 只看该作者
这个得空再研究下,可能会比较麻烦。呵呵,主要是我对这些不是很清楚。
回复

使用道具 举报

617#
 楼主| 发表于 2011-3-7 22:52:09 | 只看该作者
中文目录或中文文件名是3字节的unicode才能识别

Snap1.jpg (100.68 KB, 下载次数: 98)

Snap1.jpg

Snap2.jpg (18.36 KB, 下载次数: 98)

Snap2.jpg
回复

使用道具 举报

618#
发表于 2011-3-8 08:53:21 | 只看该作者
chenall 你有空能不能写个修改mbr pbr 为nt5 ,nt6 的外置程序?
回复

使用道具 举报

619#
发表于 2011-3-8 13:47:03 | 只看该作者
原帖由 jianliulin 于 2011-3-8 08:53 发表
chenall 你有空能不能写个修改mbr pbr 为nt5 ,nt6 的外置程序?

这个如果不考虑复杂情况的话比较简单.晚上再抽空看下.
回复

使用道具 举报

620#
发表于 2011-3-8 14:01:58 | 只看该作者
原帖由 chenall 于 2011-3-8 13:47 发表

这个如果不考虑复杂情况的话比较简单.晚上再抽空看下.


顺便把2~63扇区都清零 ,能把备份恢复分区表的功能也添加上去就完美了!!!,这样用grub维护电脑时,能先备份分区表,安全很多

[ 本帖最后由 jianliulin 于 2011-3-8 15:11 编辑 ]
回复

使用道具 举报

621#
发表于 2011-3-8 18:05:42 | 只看该作者
晕,看了一下,发现要写好,也不是一件容易的事,对于BPB还不是很了解,特别是NTFS的.

如果Pauly可以写一个那就再好不过了,他对这些比较熟悉.而且利用BOOTICE的现在代码来转换应该也不难.

这个就暂时先放着了.Sorry!
回复

使用道具 举报

622#
 楼主| 发表于 2011-3-9 09:22:52 | 只看该作者
.....
---------------------------
找到原因了,是我处理时内存发生冲突引起的,大家不用管了。
问题已解决!

[ 本帖最后由 zhaohj 于 2011-3-9 21:59 编辑 ]
回复

使用道具 举报

623#
发表于 2011-3-9 11:57:49 | 只看该作者
C大新版本的对lzma支持有问题!

之前grub4dos-0.4.5b-2010-11-30版本的没有问题,新版的在加载较大文件(我这里加载的是RamOS 的img文件 )。

加载到一部分后出现:disk read error 的错误提示!
        grub4dos-0.4.5b-2011-03-08.7z
        grub4dos-0.4.5b-2011-03-05.7z
这两个新版都出现这个问题!
回复

使用道具 举报

624#
 楼主| 发表于 2011-3-11 11:00:16 | 只看该作者
C大,grub4dos能否在内存中加个识别标志,用于判断是中文版还是英文版。
回复

使用道具 举报

625#
发表于 2011-3-11 11:03:21 | 只看该作者

回复 #622 zhaohj 的帖子

我或许也是犯的这个错误,请指点。
回复

使用道具 举报

626#
 楼主| 发表于 2011-3-11 12:55:21 | 只看该作者
原帖由 zxw 于 2011-3-11 11:03 发表
我或许也是犯的这个错误,请指点。


你的什么问题啊?是否是使用gfxmenu的问题?
回复

使用道具 举报

627#
发表于 2011-3-11 13:16:21 | 只看该作者
对于2-62清零是一件很简单的事。 通过write 也能做到。或者是自己做一个全是0的512文件,使用DD来完成。如果是外置程序,估计也不会太麻烦。

对于更新DBR,这样的操作,还是不建议修改BPB相关参数的,只要更改程序代码所占的区域即可。对于DBR,WINHEX提供有模板,CHENALL或许看一下WINHEX提供的模板就可以做到了。
回复

使用道具 举报

628#
发表于 2011-3-11 14:03:18 | 只看该作者
原帖由 thttht 于 2011-3-9 11:57 发表
C大新版本的对lzma支持有问题!

之前grub4dos-0.4.5b-2010-11-30版本的没有问题,新版的在加载较大文件(我这里加载的是RamOS 的img文件 )。

加载到一部分后出现:disk read error 的错误提示!
        grub4 ...


lzma部份的源码我还没有去看.如果可能的话,你们可以帮忙查一下原因.

zhaohj

记得我之前好像就有说过了,检测中文版的可以用以下方法
help fontfile | set chinese=

if not defined chinese echo 这是英文版的GRUB4DOS

至于在内存中设置一个标志,好像不是很必要.


对于2-62清零确实是一件很简单的(不考虑非63扇区的情况)如下
echo -n > (hd0)1+62

其实,只要灵活应用,甚至不需要编写程序就可以达到修改MBR/DBR的目的的.
提示:通过批处理获取磁盘参数,再配合一个固定的MBR/DBR BIN文件.
确定了要写入的位置和长度,就可以通过DD命令从BIN文件中提取相应的部份写入.就达到目的了.

关键还是获取分区参数,MBR因为都是一个扇区,相对来说更简单.BPB就没有那么简单了.需要对BPB/DBR有一定的了解.


最近没有太多时间上来.

[ 本帖最后由 chenall 于 2011-3-11 14:06 编辑 ]
回复

使用道具 举报

629#
发表于 2011-3-11 16:10:21 | 只看该作者
对于2-62清零确实是一件很简单的(不考虑非63扇区的情况)如下
echo -n > (hd0)1+62
----------------------------------
echo 后面字符串空,默认\x00, 用>重定向符号会一直填满目标区域?

这个应用希望slatf写入教程
回复

使用道具 举报

630#
发表于 2011-3-12 10:40:06 | 只看该作者
现在map  (0)+1 (hd-1)可以将其映射成最后一块硬盘,但实际测试会掩盖掉原来最后一块硬盘。关键是软、硬盘无法交换。能否设置一命令如map (0)+1 (hd+1)将A盘map为第N+1块硬盘?N为原硬盘总数

zhaohj给解惑了,原来map (0) (hd)就可以了。

[ 本帖最后由 blithewind 于 2011-3-12 11:14 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-24 09:35

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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