在 linux 上的简单(操作系统)文件上制作 FAT12 文件系统

Making a FAT12 filesystem on a simple (operating system) file on linux

我想在 linux 上的一个简单文件上创建一个 FAT12 文件系统(示例:~/file),并可能使用 xxd 查看创建文件系统时究竟发生了什么。这只是出于好奇

我相信我们可以使用 mkfs 命令或类似的东西来实现这一点。

这能做到吗?以及如何?

是的,创建一个 16 或 32MB 的文件并将其格式化为 mkfs.vfat

$ dd if=/dev/zero of=fat12.img bs=1M count=32
32+0 records in
32+0 records out
33554432 bytes (34 MB, 32 MiB) copied, 0.0212121 s, 1.6 GB/s

$ mkfs.vfat -F12 fat12.img
mkfs.fat 4.1 (2017-01-24)

$ file fat12.img
fat12.img: DOS/MBR boot sector, code offset 0x3c+2, OEM-ID "mkfs.fat", sectors/cluster 32, reserved sectors 32, root entries 512, Media descriptor 0xf8, sectors/FAT 32, sectors/track 32, heads 64, sectors 65536 (volumes > 32 MB), serial number 0xb1d9d2e8, unlabeled, FAT (12 bit)

$ mount -o loop fat12.img /mnt/

然后可以在mount上执行I/O,观察镜像文件的hexdump,观察磁盘布局的变化,并与I/O相关联。