FAT
摘自 Wikipedia:File Allocation Table:
- 文件分配表 (FAT) 是一种计算机文件系统体系结构,也是使用它的一系列行业标准文件系统。FAT 文件系统是一个简单而健壮的遗留文件系统。即使在轻量级实现中,它也能提供良好的性能,但无法提供与某些现代文件系统相同的性能、可靠性和可伸缩性。然而,出于兼容性原因,几乎所有目前为个人计算机和许多移动设备和嵌入式系统开发的操作系统都支持它,因此从 1981 年到现在,它非常适合计算机和几乎任何类型和年龄的设备之间的数据交换格式。
创建文件系统[编辑 | 编辑源代码]
要创建 FAT 文件系统,请安装 dosfstools包。
mkfs.fat
支持创建 FAT12、FAT16 和 FAT32,有关它们差异的解释,请参阅 Wikipedia:File Allocation Table#Types 。 mkfs.fat
将根据分区大小选择 FAT 类型,要明确地创建特定类型的 FAT 文件系统,请使用该 -F
选项。参见 mkfs.fat(8) 以了解更多信息。
提示:在大多数情况下,您需要使用 FAT32。为确保分区可以格式化为 FAT32,在逻辑扇区大小为 512 字节的驱动器上应至少为 36 MiB,在逻辑扇区大小为 4096 的驱动器上应至少为 260 MiB。[1]
将分区格式化为 FAT32:
# mkfs.fat -F 32 /dev/partition
注意:
mkfs.vfat
和 mkfs.msdos
都是mkfs.fat
符号链接,它们是相同的实用程序。内核配置[编辑 | 编辑源代码]
以下是内核中默认挂载配置的示例:
$ zgrep -e FAT -e DOS /proc/config.gz | sort -r
# DOS/FAT/NT Filesystems CONFIG_FAT_FS=m CONFIG_MSDOS_PARTITION=y CONFIG_FAT_FS=m CONFIG_MSDOS_FS=m CONFIG_VFAT_FS=m CONFIG_FAT_DEFAULT_CODEPAGE=437 CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" CONFIG_NCPFS_SMALLDOS=y
选项的简短说明:
- 语言设置:
CONFIG_FAT_DEFAULT_CODEPAGE
,CONFIG_FAT_DEFAULT_IOCHARSET
- 如果启用,则在 FAT 分区上把所有文件名转为小写字母:
CONFIG_NCPFS_SMALLDOS
- 启用对 FAT 文件系统的支持:
CONFIG_FAT_FS
,CONFIG_MSDOS_FS
,CONFIG_VFAT_FS
- 在 x86 PC 上启用对 FAT 分区硬盘的支持:
CONFIG_MSDOS_PARTITION
如果挂载检测到的分区类型是 VFAT,那么它将运行脚本 /usr/bin/mount.vfat
。
/usr/bin/mount.vfat
#!/bin/bash #mount VFAT with full rw (read-write) permissions for all users #/usr/bin/mount -i -t vfat -oumask=0000,iocharset=utf8 "$@" #The above is the same as mount -i -t vfat -oiocharset=utf8,fmask=0000,dmask=0000 "$@"
以普通用户身份写入 FAT32[编辑 | 编辑源代码]
要在 FAT32 分区上写入,必须对 fstab 文件进行一些更改。
/etc/fstab
/dev/sdxY /mnt/some_folder vfat user,rw
该 user
选项意味着任何用户(即使是非root用户)都可以挂载和卸载分区 /dev/sdxY
。 rw
提供读写访问权限。
例如,如果您的 FAT32 分区位于 上 /dev/sda9
,并且您希望将其挂载到 /mnt/fat32
,则可以使用:
/etc/fstab
/dev/sda9 /mnt/fat32 vfat user,rw
现在,任何用户都可以使用以下方式挂载它:
$ mount /mnt/fat32
并使用以下命令卸载它:
$ umount /mnt/fat32
请注意,FAT 不支持 Linux 文件权限。每个文件也将显示为可执行文件。您可能希望使用 showexec
选项仅将 Windows 可执行文件(com、exe、bat)标记为可执行文件。参见 mount(8) 来获得更多选项。
查询 FAT 文件系统类型[编辑 | 编辑源代码]
如果需要知道分区使用的是哪种类型的FAT文件系统,请使用 file 命令:
# file -s /dev/partition
/dev/partition: DOS/MBR boot sector, code offset 0x3c+2, OEM-ID "mkfs.fat", sectors/cluster 4, root entries 512, sectors 4096 (volumes <=32 MB), Media descriptor 0xf8, sectors/FAT 3, sectors/track 32, heads 64, serial number 0x5bc09c21, unlabeled, FAT (12 bit)
或者,您可以使用 mtools包 包中的 minfo:
# minfo -i /dev/partition ::
device information: =================== filename="/dev/partition" sectors per track: 32 heads: 64 cylinders: 2 media byte: f8 mformat command line: mformat -t 2 -h 64 -s 32 -i "/dev/partition" :: bootsector information ====================== banner:"mkfs.fat" sector size: 512 bytes cluster size: 4 sectors reserved (boot) sectors: 1 fats: 2 max available root directory slots: 512 small size: 4096 sectors media descriptor byte: 0xf8 sectors per fat: 3 sectors per track: 32 heads: 64 hidden sectors: 0 big size: 0 sectors physical drive id: 0x80 reserved=0x0 dos4=0x29 serial number: 5BC09C21 disk label="NO NAME " disk type="FAT12 "