无忧启动论坛

标题: 【新手教程】grub4dos外部命令fat使用详解 [打印本页]

作者: NicTense    时间: 2010-1-31 12:28
标题: 【新手教程】grub4dos外部命令fat使用详解
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 编辑 ]
作者: 快雪时晴    时间: 2010-1-31 13:10
NT近期很活跃,跟着学到不少东西
作者: yuan010    时间: 2010-2-8 09:32
很不错的东西 支持你下
作者: 2012casscqt    时间: 2012-11-8 21:20
请问LZ,这个源码应该如何使用编译?
作者: 2012casscqt    时间: 2012-11-8 21:23
请问LZ,这个源码应该如何使用编译?




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3