转载网址: Linux 下格式化 FAT32 分区,只是一个 mkfs.vfat 就行了吗?
问题发现
首先不得不说的是,当年在我不了解如何格式化一个分区到 FAT32 类型时,我选择了百度,当时得到的答案是 mkfs.vfat device。虽然惊奇于为何如此简单,但却没做深究,后来学会了如何看 infopage、manpage,也没仔细研究这里面的问题。
直到现在,在种种偶然情况下,我恰好在研究制作启动盘中出现的问题,恰好在研究 windows bootsect.exe 原理,恰好用 qemu 模拟了不同的磁盘去在虚拟机里做实验,又恰好地注意到一个问题:我测试的是 FAT32,为什么有一部分盘,引导代码与其他的不一样?经过详细的分析,反推出了 bootsect.exe 的相关源码,这才知道,其中有一部分,是 FAT(准确说是 FAT16),而非 FAT32。
真实答案
经过查看了 man mkfs.vfat,我发现了其中有这么一个参数:
-F FAT-SIZE
Specifies the type of file allocation tables used (12, 16 or 32 bit). If nothing is
specified, mkfs.fat will automatically select between 12, 16 and 32 bit, whatever fits
better for the filesystem size.
-F 参数指定 FAT 的类型,可选的值有 12 位、16 位以及 32 位。当未指定时,