我想创建一个新的VFAT图像并添加一些文件。
# Create file of 1MB size:
dd if=/dev/zero of=my-image.fat count=1 bs=1M
# Format file as VFAT:
mkfs.vfat ./my-image.fat
现在我要将文件./abc,。/ dev和./ghi添加到图像中。
如何不使用 mount -o loop
或fusermount
?
我只想写一个新的,空的,原始的VFAT图像。
我不需要删除附加或任何“复杂”操作。
我试过7z -a
,因为7zip可以读取VFAT图像,但它不知道如何写入它。
答案 0 :(得分:24)
我想做与嵌入式系统的图像构建的一部分完全相同的事情。真正令人讨厌的是,整个构建需要大约3小时才能完全无人值守,除了最后一步需要密码才能安装VFAT图像。幸运的是,我找到了一套解决问题的工具。
您希望GNU mtools提供mcopy
。
Mtools是一组实用程序,用于从GNU和Unix访问MS-DOS磁盘而无需安装它们。
它还支持VFAT图像文件等磁盘映像。
例如,以下命令会将文件hello.txt
从当前目录复制到subdir
中VFAT文件系统的子目录~/images/fat_file.img
中:
mcopy -i ~/images/fat_file.img hello.txt ::subdir/hello.txt
mtools中有更多有用的包含,例如mdir
和mtype
,它们非常适合检查图像文件而无需安装它。
mdir -i ~/images/fat_file.img ::
mdir -i ~/images/fat_file.img ::subdir
mtype -i ~/imags/fat_file.img ::subdir/hello.txt
答案 1 :(得分:-5)
你想要什么基本上是不可能的。你不能只是"东西"一些文件数据放在磁盘映像的末尾,并且神奇地拥有这些文件"出现"在图像内。随意填充数据,但文件系统不仅仅是数据。您必须完全复制文件系统为您处理的元数据操作,例如更新FAT表。
换句话说,您必须在自己的代码中构建 ENTIRE FAT文件系统处理代码。这完全是荒谬的。只需挂载映像,在该挂载的文件系统上使用普通文件操作,然后再次卸载它。热潮,完成。