FAT
関連記事
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 にフォーマット:
# 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
どの 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 "