无忧启动论坛

标题: GRUB2 移植FatFs 支持读/写 fat/exfat [打印本页]

作者: wintoflash    时间: 2020-2-20 17:10
标题: GRUB2 移植FatFs 支持读/写 fat/exfat
本帖最后由 wintoflash 于 2020-2-25 11:50 编辑

下载:
https://github.com/a1ive/grub/releases/tag/latest
http://github-mirror.bugkiller.org/a1ive/grub/releases

支持 FAT/exFAT 复制/删除/移动/重命名/创建/修改文件 等操作。

警告:此模块处于测试状态,可能会损坏你的磁盘数据。

使用方法:
需要加载 fatfs.mod 模块。
FAT/exFAT 分区需要挂载才能使用。目前支持最多同时挂载9个分区,盘符为 1:, 2:, ..., 9:

挂载
mount PARTITION NUM[1-9]
示例:
        mount (hd0,1) 1
        把 (hd0,1) 挂载到 1:/ 下

查看挂载状态
mount status


卸载
umount NUM[1-9]
示例:
        umount 2
        卸载 2:/

创建文件夹
mkdir PATH
示例:
        mkdir 1:/new_dir
        在 1:/ 下创建名为'new_dir'的文件夹


复制文件
cp FILE1 FILE2
示例:
        cp 2:/test.zip 1:/abcd.zip
        将 2:/下 的 test.zip 复制到 1:/ 下,文件名为 abcd.zip
        cp (hd0,2)/WContig.zip 1:/WContig.zip
        将 (hd0,2)/WContig.zip 复制到 1:/ 下


重命名文件/文件夹
rename PATH1 PATH2
示例:
        rename 1:/WContig.zip 1:/qwert/test.zip
        将 1:/ 下的 WContig.zip 移动到 qwert/ 下,并改名为 test.zip


删除文件/文件夹
rm PATH
注意:不能删除非空文件夹
示例:
        rm 1:/qwert/test.zip


移动文件
mv FILE1 FILE2
注意:不跨盘移动相当于 rename 操作。
示例:
        mv 1:/aaa.txt 2:/bbb.txt

创建文件
touch FILE [YEAR MONTH DAY HOUR MINUTE SECOND]
修改文件时间戳为当前时间,若文件不存在,则创建一个空文件
示例:
        touch 1:/aaa.txt
        touch 1:/aaa.txt 2000 1 1
        将 1:/aaa.txt 的修改时间改为 2000 年 1 月 1 日

修改文件
write_file FILE STRING [OFFSET]
在文件偏移OFFSET处向文件写入字符串。若文件大小不足,会自动扩充文件大小。
示例:
        write_file 1:/qwert/bbb.txt "fuckfuckfuckfuck"

        write_file 1:/qwert/bbb.txt "you" 4


参考:http://elm-chan.org/fsw/ff/00index_e.html
作者: 窄口牛    时间: 2020-2-20 18:24
越来越像个系统了,加油。
作者: hhh333    时间: 2020-2-20 21:31
本帖最后由 hhh333 于 2020-2-20 21:34 编辑

是啊,前面一直没有文件操作,现在好了。mem map后可以拷贝文件过去吗?
作者: wintoflash    时间: 2020-2-20 21:44
hhh333 发表于 2020-2-20 21:31
是啊,前面一直没有文件操作,现在好了。mem map后可以拷贝文件过去吗?

map --mem img?
作者: hhh333    时间: 2020-2-21 10:56
wintoflash 发表于 2020-2-20 21:44
map --mem img?

是的,有这种用法吧

作者: wintoflash    时间: 2020-2-21 12:39
hhh333 发表于 2020-2-21 10:56
是的,有这种用法吧

map --mem --rw xxx.img 确实可写。
但是这样不太合理。
应该先loopback,写入东西,再map
loopback -m loop xxx.img
map --disk --type=HD (loop)



作者: bwchame    时间: 2020-2-24 19:32
怎么把GRUB2安装到、/boot/grub/ 文件夹?
我每次都是直接安在c:/grub 文件夹下了。
作者: wintoflash    时间: 2020-2-25 11:50
现在也支持exFAT了
作者: gnuxwy    时间: 2020-2-27 22:13
W大辛苦了。。。Grub2在W大の持续努力下日趋完美。。。


作者: vip_liutao    时间: 2021-8-13 22:11
支持下
作者: 求道者    时间: 2021-9-13 18:06
直接用LINUX主线的exfat驱动吧。
这个驱动太旧了。
作者: wintoflash    时间: 2021-9-13 20:00
本帖最后由 wintoflash 于 2021-9-13 20:01 编辑
求道者 发表于 2021-9-13 18:06
直接用LINUX主线的exfat驱动吧。
这个驱动太旧了。

主要是没有libc,只能移植一些适合嵌入式的垃圾驱动。
目前在移植musl libc。
等到弄好libc,就啥都简单了。




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