FAT

出自 Arch Linux 中文维基

摘自 Wikipedia:File Allocation Table:

文件分配表 (FAT) 是一種計算機文件系統體系結構,也是使用它的一系列行業標準文件系統。FAT 文件系統是一個簡單而健壯的遺留文件系統。即使在輕量級實現中,它也能提供良好的性能,但無法提供與某些現代文件系統相同的性能、可靠性和可伸縮性。然而,出於兼容性原因,幾乎所有目前為個人計算機和許多流動裝置和嵌入式系統開發的作業系統都支持它,因此從 1981 年到現在,它非常適合計算機和幾乎任何類型和年齡的設備之間的數據交換格式。

這篇文章的某些內容需要擴充。

原因: 需要更多信息。 (在 Talk:FAT#Needed information 中討論)

創建文件系統[編輯 | 編輯原始碼]

要創建 FAT 文件系統,請安裝 dosfstools

mkfs.fat 支持創建 FAT12、FAT16 和 FAT32,有關它們差異的解釋,請參閱 Wikipedia:File Allocation Table#Typesmkfs.fat 將根據分區大小選擇 FAT 類型,要明確地創建特定類型的 FAT 文件系統,請使用該 -F 選項。參見 mkfs.fat(8) 以了解更多信息。

提示:在大多數情況下,您需要使用 FAT32。為確保分區可以格式化為 FAT32,在邏輯扇區大小為 512 字節的驅動器上應至少為 36 MiB,在邏輯扇區大小為 4096 的驅動器上應至少為 260 MiB。[1]

將分區格式化為 FAT32:

# mkfs.fat -F 32 /dev/partition
注意: mkfs.vfatmkfs.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/sdxYrw 提供讀寫訪問權限。

例如,如果您的 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   "

參見[編輯 | 編輯原始碼]