|
1、fat命令简述
fat命令是chenall为grub4dos0.4.5a添加的一个新的功能命令集,可用于显示磁盘分区参数和根目录
的文件列表,还可用于创建和复制文件。fat是外部命令,只能用于2010-01-08及其后发布的的grub4dos
版本。
2、如何获得fat以及grub的最新版本
http://code.google.com/p/grub4dos-chenall/downloads/list
3、如何安装fat功能
将下载的fat文件复制到grub4dos启动设备的/grub/目录下即可;也可复制到其他目录,如
(fd0)/mycmd/,这种情况下当root的当前路径和该路径不一致时,需要用command --set-path命令来指
定,例如:
command --set-path=(fd0)/mycmd/
4、fat命令使用详解
目前fat命令包括help、dir、info、file create、file copy 共5个子命令,其用法如下:
fat [help]
显示帮助信息,当参数省略或使用了不存在的子命令时也会返回帮助信息。
fat dir [PARTITION]
显示指定的磁盘分区PARTITION的根目录文件列表,当PARTITION省略时,则显示root指定的当前分区
的根目录文件列表。
fat info [PARTITION]
显示指定的磁盘分区PARTITION的参数,当PARTITION省略时,则显示root指定的当前分区的参数。
fat file create size=[SIZE|*] FILE
创建一个指定大小的文件FILE,要创建的文件FILE必须使用绝对路径,形如:(hd0,0)/1、()/abc.bin
等等,且必须位于分区根目录;当指定size=*时,将从内存地址0x8290处自动获取文件大小(即最后
一次执行"cat --length=0"后的文件大小)
fat file copy FILE1 FILE2
将文件FILE1复制到文件FILE2,其中FILE1可以使用“块列表表示法”,形如:(fd0)100+2 ,也可以
使用绝对路径,形如:(hd0,0)/1、()/abc.bin 等等;而FILE2必须使用绝对路径,且必须位于分区根目录。
5、fat命令应用实例
(1)将slic表写入u盘(fd0)根目录的slic.bin文件
fat file create size=374 (fd0)/slic.bin
dd if=(md)0x3fef20+1 of=(fd0)/slic.bin bs=1 count=374 skip=0 seek=0
注:0x3fef20仅仅为我的电脑上的slic表的地址,不具通用性,这里仅仅作为一个应用实例,关于内
存地址不作详细解释。
(2) 将本地硬盘(hd0)的mbr写入u盘(fd0)根目录的mbr文件
fat file copy (hd0)+63 (fd0)/mbr
注:很多情况下,mbr可能只用到前面的1、2个扇区,但为了完整起见,我采用了备份全部63个扇区的
方案,恢复时可根据实际情况采用dd命令执行完整或部分恢复(恢复mbr为高度危险操作,请谨慎进行)。
6、其他说明
(1)目前子命令create、copy生成的文件以及dir都只支持根目录操作,且只能用于FAT12/FAT16/FAT32分区上。
(2)创建文件最大不能超过19MB,使用连续簇存放文件,如果可用的连续簇的空间小于文件大小则无法创建。
(3)目前fat命令尚处于测试阶段,建议使用虚拟机测试,若有条件,请帮忙测试,chenall大大一个人是无法完成
所有测试的,若有发现bug,请将问题反馈到以下地址:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=158835
7、English help infomation
fat [help]
Print this help infomation.
fat info [PARTITION]
Print the infomation for partition PARTITION or the current root partition if PARTITION is not specified.
fat dir [PARTITION]
List all files and directories in the root directory of partition PARTITION or the current root partition if PARTITION is not specified.
fat file create size=[SIZE|*] FILE
Create file FILE of a certain size SIZE,FILE must be an absolute pathname e.g. (hd0,0)/1 ,()/abc.bin ,and must be in the root directory of a partition. if size=* is specified,the fat will get SIZE from memory address 0x8290(file size by last "cat --length=0").
fat file copy FILE1 FILE2
Copy file FILE1 to file FILE2,FILE1 must be either a blocklist notation e.g. (fd0)100+2 or an absolute pathname e.g. (hd0,0)/1 , ()/abc.bin ,FILE2 must be an absolute pathname,and must be in the root directory of a partition.
[ 本帖最后由 NicTense 于 2010-2-8 09:38 编辑 ] |
|