创建并填充 FAT32 文件系统而不安装它

创建并填充 FAT32 文件系统而不安装它

有没有办法创建包含一组文件的 FAT32 文件系统,而无需挂载它或具有 root 访问权限?

我正在为旧操作系统开发一个软件应用程序作为爱好,作为构建过程的一部分,我想将一些源文件打包到 FAT32 磁盘映像中,然后启动 QEMU 来启动映像并运行旧编译器它。然后我想从 FAT32 磁盘映像中提取编译后的文件。

我可以使用 创建文件系统mkfs.vfat,但是我知道将文件移入和移出映像的唯一方法是安装它,这通常需要 root 访问权限,并且不利于嵌入到构建过程中。

理想情况下,我想要的是zipunzip实用程序之类的东西,只是它不会创建/提取 .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

相关内容