FAT - Arch Linux 中文维基

跳至內容

# FAT

出自 Arch Linux 中文维基

相關文章

- 文件系統

翻譯狀態：

- 本文（或部分內容）譯自 FAT，最近一次同步於 2024-7-4，若英文版本有所更改，則您可以幫助同步與翻譯更改的內容。
- 您可以在 ArchWiki 的對應頁面找到本文翻譯的原始修訂歷史。
- 本文可能與英文原文存在出入。

摘自 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。為確保分區能格式化為 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`

如果 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   "

## 參見

- MountFATFileSystems

分類：​

- 文件系統

FAT
新增話題