jianliulin 发表于 2011-3-3 11:54:01

原帖由 zxw 于 2011-3-3 11:50 发表 http://bbs.wuyou.net/images/common/back.gif

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

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

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

chenall 发表于 2011-3-3 17:17:56

小试了一下,一切正常。
不过,因为当初设计的原因。
实际文件名长度不可以超过11个字符(包括.号),最后一个用于结束字符串。

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

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

jianliulin 发表于 2011-3-3 18:50:25

原帖由 chenall 于 2011-3-3 17:17 发表 http://bbs.wuyou.net/images/common/back.gif
小试了一下,一切正常。
不过,因为当初设计的原因。
实际文件名长度不可以超过11个字符(包括.号),最后一个用于结束字符串。

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


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

Plantsoot 发表于 2011-3-3 22:02:27

回复 #602 chenall 的帖子

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

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

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

chenall 发表于 2011-3-4 08:28:26

@Plantsoot
这样子虽然好,但我感觉没有必要改变,必竟使用太长的外部命令名称完全没有必要。
^_^,而且目前的方式比较方便编程。

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

zxw 发表于 2011-3-4 10:21:58

@chenall:
shift只能单独一行,不能连写?测试了一下,在dos下可以连写。

chenall 发表于 2011-3-4 10:24:02

是的shift是一个伪命令
必须单行。

zxw 发表于 2011-3-4 10:37:22

回复 #607 chenall 的帖子

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

chenall 发表于 2011-3-4 10:45:11

这个以后再考虑看看,会比较麻烦。

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

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

zxw 发表于 2011-3-7 09:43:15

@chenall:
exist命令对汉字无效?cat 命令也不行。

加载了unifont字体情形:


未加载字体情形:


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

zhaohj 发表于 2011-3-7 14:25:40

奇怪,我测试是正常的,pxe启动,英文版grldr

zxw 发表于 2011-3-7 14:41:41

真是奇怪,我也是英文版grldr.
反复测试,就是不正常。

chenall 发表于 2011-3-7 15:22:31

应该和分区格式有关系,具体的不太清楚。

zhaohj 发表于 2011-3-7 15:39:45

在硬盘上测试,确实如zxw一样,不支持中文目录,不支持中文文件

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

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

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

zhaohj 发表于 2011-3-7 16:04:56

上图1、3中,同样的文件,编码不一样

chenall 发表于 2011-3-7 16:27:28

这个得空再研究下,可能会比较麻烦。呵呵,主要是我对这些不是很清楚。

zhaohj 发表于 2011-3-7 22:52:09

中文目录或中文文件名是3字节的unicode才能识别

jianliulin 发表于 2011-3-8 08:53:21

chenall 你有空能不能写个修改mbr pbr 为nt5 ,nt6 的外置程序?

chenall 发表于 2011-3-8 13:47:03

原帖由 jianliulin 于 2011-3-8 08:53 发表 http://bbs.wuyou.net/images/common/back.gif
chenall 你有空能不能写个修改mbr pbr 为nt5 ,nt6 的外置程序?
这个如果不考虑复杂情况的话比较简单.晚上再抽空看下.

jianliulin 发表于 2011-3-8 14:01:58

原帖由 chenall 于 2011-3-8 13:47 发表 http://bbs.wuyou.net/images/common/back.gif

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

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

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

chenall 发表于 2011-3-8 18:05:42

晕,看了一下,发现要写好,也不是一件容易的事,对于BPB还不是很了解,特别是NTFS的.

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

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

zhaohj 发表于 2011-3-9 09:22:52

.....
---------------------------
找到原因了,是我处理时内存发生冲突引起的,大家不用管了。
问题已解决!

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

thttht 发表于 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
这两个新版都出现这个问题!

zhaohj 发表于 2011-3-11 11:00:16

C大,grub4dos能否在内存中加个识别标志,用于判断是中文版还是英文版。

zxw 发表于 2011-3-11 11:03:21

回复 #622 zhaohj 的帖子

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

zhaohj 发表于 2011-3-11 12:55:21

原帖由 zxw 于 2011-3-11 11:03 发表 http://bbs.wuyou.net/images/common/back.gif
我或许也是犯的这个错误,请指点。

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

sgw888 发表于 2011-3-11 13:16:21

对于2-62清零是一件很简单的事。 通过write 也能做到。或者是自己做一个全是0的512文件,使用DD来完成。如果是外置程序,估计也不会太麻烦。

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

chenall 发表于 2011-3-11 14:03:18

原帖由 thttht 于 2011-3-9 11:57 发表 http://bbs.wuyou.net/images/common/back.gif
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 编辑 ]

快雪时晴 发表于 2011-3-11 16:10:21

对于2-62清零确实是一件很简单的(不考虑非63扇区的情况)如下
echo -n > (hd0)1+62
----------------------------------
echo 后面字符串空,默认\x00, 用>重定向符号会一直填满目标区域?

这个应用希望slatf写入教程

blithewind 发表于 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 编辑 ]
页: 11 12 13 14 15 16 17 18 19 20 [21] 22 23 24 25 26 27 28 29 30
查看完整版本: GRUB4DOS更新建议、bug反馈专帖