FAT

提供: ArchWiki
2018年6月5日 (火) 22:24時点におけるKusakata (トーク | 投稿記録)による版 (同期)
ナビゲーションに移動 検索に移動

関連記事

Wikipedia:ja:File Allocation Table より:

File Allocation Table (FAT) はコンピュータファイルシステムの構造であり、その構造を利用する業界標準のファイルシステムを指す。FAT ファイルシステムは単純かつ堅牢な旧式のファイルシステムである。簡単な実装でも優れた性能を発揮できるが、新しいファイルシステムのような性能・信頼性・拡張性は持っていない。しかしながら、パーソナルコンピュータや携帯端末、組み込み環境などで動作するほとんど全てのオペレーティングシステムによって FAT はサポートされているため、コンピュータや携帯デバイスなどで相互にデータを交換したい場合に FAT は適している。

ファイルシステムの作成

FAT ファイルシステムを作成するには dosfstools パッケージをインストールしてください。

mkfs.fat は FAT12, FAT16, FAT32 の作成をサポートしています。それぞれの違いについては Wikipedia:ja:File Allocation Table#実装 を参照してください。mkfs.fat はパーティションの容量にあわせて FAT のタイプを選択します。明示的に特定のタイプの FAT ファイルシステムを作成したいときは -F オプションを使ってください。詳しくは mkfs.fat(8) を参照。

ヒント: 大抵の場合は FAT32 を使うほうが良いでしょう。

パーティションを FAT32 にフォーマット:

# mkfs.fat -F 32 /dev/partition

カーネルの設定

以下はカーネルのデフォルトのマウント設定です:

$ 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
  • 86x 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,umask=000              0  0

user フラグは全てのユーザーが (つまり root でなくても) /dev/sdX パーティションをマウント・アンマウントできることを意味しています。rw は読み書きの許可を与えます; umask オプションは選択した権利を削除します - 例えば umask=111 は実行権限を削除します。問題は、このエントリはディレクトリからも実行権限を削除してしまうことであり、それを dmask=000 で修正しなくてはなりません。Umask を参照。

これらのオプションがないと、全てのファイルは実行可能になります。umask や dmask オプションの代わりに showexec オプションを使うことができ、全ての Windows の実行可能ファイル (com, exe, bat) を実行可能な色で表示します。

例えば、FAT32 パーティションが /dev/sda9 にあって、/mnt/fat32 にマウントしたい場合、次のようにします:

/etc/fstab
/dev/sda9    /mnt/fat32        vfat   user,rw,umask=111,dmask=000    0  0

上記のように設定することで、誰でも以下のようにマウントできるようになります:

$ mount /mnt/fat32

アンマウントしたい場合:

$ umount /mnt/fat32

参照