FAT
摘自 Wikipedia:File Allocation Table:
- File Allocation Table(FAT)是一種計算機文件系統結構,一系列行業標準文件系統都使用它。FAT 文件系統是一種傳統的文件系統,簡單而強大。即使在輕量級實現中,它也能提供良好的性能,但無法提供與某些現代文件系統相同的性能、可靠性和可擴展性。不過,出於兼容性的考慮,目前幾乎所有已開發的個人計算機作業系統以及許多行動裝置和嵌入式系統都支持 FAT 文件系統,因此它是一種非常適合在 1981 年至今幾乎所有類型和年代的計算機和設備之間進行數據交換的格式。
創建文件系統[編輯 | 編輯原始碼]
要創建 FAT 文件系統,請安裝 dosfstools包。
mkfs.fat
支持創建 FAT12、FAT16 和 FAT32,有關它們差異的解釋,請參閱 Wikipedia:File Allocation Table#Types 。 mkfs.fat
將根據分區大小選擇 FAT 類型,要明確地創建特定類型的 FAT 文件系統,請使用 -F
選項。參見 mkfs.fat(8) 以了解更多信息。
將分區格式化為 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
如果 mount 檢測到的分區類型是 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
(mount(8) § Non-superuser mounts)。 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) § Mount options for fat 來獲得更多選項。
查詢 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 "