Filesystems

創建和填充 FAT32 文件系統而不掛載它

  • January 17, 2021

有沒有辦法創建一個包含一組文件的 FAT32 文件系統,而無需掛載它或具有 root 訪問權限?

作為愛好,我正在為舊作業系統開發軟體應用程序,作為建構過程的一部分,我想將一些源文件打包成 FAT32 磁碟映像,然後啟動 QEMU 以啟動映像並執行舊編譯器它。之後我想從 FAT32 磁碟映像中提取編譯後的文件。

我可以使用 來創建文件系統mkfs.vfat,但是我知道將文件進出映像的唯一方法是掛載它,這通常需要 root 訪問權限並且不利於嵌入到建構過程中。

理想情況下,我追求的是zipunzip實用程序之類的東西,而不是創建/提取 .zip 文件,它會創建和提取 FAT16 或 FAT32 格式的磁碟映像。

這樣的事情存在嗎?我能在網上找到的唯一東西都涉及安裝磁碟映像。

當然,儘管我所有的搜尋都不成功,但在發布有關它的問題後不久,我終於找到了答案。

所以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選項的命令行上給出的圖像。

引用自:https://unix.stackexchange.com/questions/629492