「FAT」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎ファイルシステムの作成: mkfs.msdosもmkfs.fatへのシンボリックリンク)
 
(2人の利用者による、間の4版が非表示)
16行目: 16行目:
 
{{ic|mkfs.fat}} は FAT12, FAT16, FAT32 の作成をサポートしています。それぞれの違いについては [[Wikipedia:ja:File Allocation Table#実装]] を参照してください。{{ic|mkfs.fat}} はパーティションの容量にあわせて FAT のタイプを選択します。明示的に特定のタイプの FAT ファイルシステムを作成したいときは {{ic|-F}} オプションを使ってください。詳しくは {{man|8|mkfs.fat}} を参照。
 
{{ic|mkfs.fat}} は FAT12, FAT16, FAT32 の作成をサポートしています。それぞれの違いについては [[Wikipedia:ja:File Allocation Table#実装]] を参照してください。{{ic|mkfs.fat}} はパーティションの容量にあわせて FAT のタイプを選択します。明示的に特定のタイプの FAT ファイルシステムを作成したいときは {{ic|-F}} オプションを使ってください。詳しくは {{man|8|mkfs.fat}} を参照。
   
  +
{{Tip|ほとんどの状況では、FAT32 を使用することになります。 パーティションを FAT32 にフォーマットできるようにするには、論理セクターサイズが 512 バイトのドライブでは少なくとも 36 MiB、[[Advanced Format|論理セクターサイズが 4096 のドライブ]] [https://superuser.com/a/1717643] では 260 MiB 以上である必要があります。}}
{{Tip|大抵の場合は FAT32 を使うほうが良いでしょう。}}
 
   
 
パーティションを FAT32 にフォーマット:
 
パーティションを FAT32 にフォーマット:
62行目: 62行目:
   
 
{{hc|/etc/fstab|2=
 
{{hc|/etc/fstab|2=
/dev/sdxY /mnt/some_folder vfat user,rw,umask=000 0 0}}
+
/dev/sd''xY'' /mnt/some_folder vfat '''user''',rw
  +
}}
   
{{ic|user}} フラグてのユーザー (つまり root でなくても) {{ic|/dev/sdX}} パーティションをマウントアンマウントできることを意味しています。{{ic|rw}} は読み書き許可を与えます; {{ic|umask}} オプションは選択した権利を削除します - 例えば {{ic|1=umask=111}} は実行権限を削除します。問題は、このエントリはディレクトリからも実行権限を削除してしまうことであり、それを {{ic|1=dmask=000}} で修正しなくてはなりません。[[Umask]] を参照
+
{{ic|user}} オプション、すべてのユーザー (root 以外でも) がパーティション {{ic|/dev/sd''xY''}} をマウントおよびアンマウントできることを意味します。{{ic|rw}} は読み取り/書き込みアクセスを許可します。
   
  +
たとえば、FAT32 パーティションが {{ic|/dev/sda9}} にあり、それを {{ic|/mnt/fat32}} にマウントしたい場合は、次のようにします:
これらのオプションがないと、全てのファイルは実行可能になります。umask や dmask オプションの代わりに {{ic|showexec}} オプションを使うことができ、全ての Windows の実行可能ファイル (com, exe, bat) を実行可能な色で表示します。
 
 
例えば、FAT32 パーティションが {{ic|/dev/sda9}} にあって、{{ic|/mnt/fat32}} にマウントしたい場合、次のようにします:
 
   
 
{{hc|/etc/fstab|2=
 
{{hc|/etc/fstab|2=
/dev/sda9 /mnt/fat32 vfat user,rw,umask=111,dmask=000 0 0}}
+
/dev/sda9 /mnt/fat32 vfat '''user''',rw
  +
}}
   
上記のように設定するで、でも以下ようにマウントできるようになります:
+
で、どのユーザーでもコマンドを使用してマウントできるようになります:
   
 
$ mount /mnt/fat32
 
$ mount /mnt/fat32
81行目: 81行目:
 
$ umount /mnt/fat32
 
$ umount /mnt/fat32
   
  +
FAT は Linux のファイル権限をサポートしていないことに注意してください。各ファイルも実行可能であるように見えます。{{ic|showexec}} オプションを使用して、Windows 実行可能ファイル (com、exe、bat) のみを実行可能としてマークすることもできます。その他のオプションについては、{{man|8|mount}} を参照してください。
   
 
== どの FAT かを調べる ==
 
== どの FAT かを調べる ==
   
あるパーティションがどの種類の FAT か調べる場合は、{{ic|file}} コマンドを実行てください:
+
パーティションがどの [[Wikipedia:ja:File Allocation Table#実装|FAT ファイルシステムのタイプ]] か調べる必要がある場合は、''file'' コマンドを使用ます:
   
 
{{hc|# file -s /dev/''partition''|2=
 
{{hc|# file -s /dev/''partition''|2=

2024年2月28日 (水) 23:49時点における最新版

関連記事

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 にフォーマットできるようにするには、論理セクターサイズが 512 バイトのドライブでは少なくとも 36 MiB、論理セクターサイズが 4096 のドライブ [1] では 260 MiB 以上である必要があります。

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

# mkfs.fat -F 32 /dev/partition
ノート: mkfs.vfatmkfs.msdosmkfs.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
  • 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

user オプションは、すべてのユーザー (root 以外でも) がパーティション /dev/sdxY をマウントおよびアンマウントできることを意味します。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) を参照してください。

どの 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   "

参照