无需安装即可将文件添加到VFAT映像

时间:2014-03-13 16:38:58

标签: linux command-line filesystems fat32

我想创建一个新的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 loopfusermount? 我只想写一个新的,空的,原始的VFAT图像。 我不需要删除附加或任何“复杂”操作。

我试过7z -a,因为7zip可以读取VFAT图像,但它不知道如何写入它。

2 个答案:

答案 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中有更多有用的包含,例如mdirmtype,它们非常适合检查图像文件而无需安装它。

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文件系统处理代码。这完全是荒谬的。只需挂载映像,在该挂载的文件系统上使用普通文件操作,然后再次卸载它。热潮,完成。