![创建并填充 FAT32 文件系统而不安装它](https://linux22.com/image/186560/%E5%88%9B%E5%BB%BA%E5%B9%B6%E5%A1%AB%E5%85%85%20FAT32%20%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E8%80%8C%E4%B8%8D%E5%AE%89%E8%A3%85%E5%AE%83.png)
有没有办法创建包含一组文件的 FAT32 文件系统,而无需挂载它或具有 root 访问权限?
我正在为旧操作系统开发一个软件应用程序作为爱好,作为构建过程的一部分,我想将一些源文件打包到 FAT32 磁盘映像中,然后启动 QEMU 来启动映像并运行旧编译器它。然后我想从 FAT32 磁盘映像中提取编译后的文件。
我可以使用 创建文件系统mkfs.vfat
,但是我知道将文件移入和移出映像的唯一方法是安装它,这通常需要 root 访问权限,并且不利于嵌入到构建过程中。
理想情况下,我想要的是zip
和unzip
实用程序之类的东西,只是它不会创建/提取 .zip 文件,而是创建和提取 FAT16 或 FAT32 格式的磁盘映像。
有这样的事情存在吗?我在网上能找到的唯一的东西都涉及安装磁盘映像。
答案1
当然,尽管我的搜索不成功,但在发布有关它的问题后不久我终于找到了答案。
所以这个mtools
包可以这样做:
# Create a 2 MB file
dd if=/dev/zero of=disk.img bs=1M count=2
# Put a FAT filesystem on it (use -F for FAT32, otherwise it's automatic)
mformat -i disk.img ::
# Add a file to it
mcopy -i disk.img example.txt ::
# List files
mdir -i disk.img ::
# Extract a file
mcopy -i disk.img ::/example.txt extracted.txt
mtools
通过指定驱动器字母(如C:
)来工作,特殊:
驱动器(指定为::
)引用命令行上使用该选项给出的图像-i
。