FAT

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page FAT and the translation is 95% complete.
Resources

ファイルアロケーションテーブル(FAT)ファイルシステムは当初MS-DOS(および後のNT以前のMicrosoft Windows)で使用するために作られました; 現在ではUSBフラッシュディスクでFATの改訂版(FAT32)が使われています。[1] FATは既にLinuxシステムに歩み寄っており、Linuxカーネルで公式にサポートされています。

2019 年 8 月 26 日、Microsoft は exFAT ファイルシステムの仕様を公表し[2]、これにより Linux カーネルの本流に exFAT への対応を取り込むことができるようになりました。カーネル 5.4 は exFAT 対応のための最初のステージングコードを含んでいます[3]

インストール

カーネル

カーネル FATサポートを有効にする (CONFIG_VFAT_FS)
File systems  --->
   DOS/FAT/NT Filesystems  --->
      < > MSDOS fs support
      <*> VFAT (Windows-95) fs support
      (437) Default codepage for FAT
      (iso8859-1) Default iocharset for FAT
      [ ]   Enable FAT UTF-8 option by default
   -*- Native language support  --->
      (iso8859-1) Default NLS Option
      <*>   Codepage 437 (United States, Canada)
      <*>   NLS ISO 8859-1  (Latin 1; Western European Languages)
      -*-   NLS UTF-8

FAT パーティションマウントしようとする時には、ユーザーはcodepage=オプションをmountに指定する必要があるかもしれません。上の例ではUnited StatesとCanada向けのコードページを使用していますが、それ以外のコードページも必要に応じて有効化できます。任意で、ユーザーがFAT用のデフォルトコードページをカーネル設定内で設定することもできます。使用する各コードページがカーネルで有効化されているか確認してください。

注意
mountを通じて使用されたcodepageオプションはカーネルで使用されている設定を上書きします。

Default iocharset for fatUTF-8に設定することは避けてください; それは推奨されません。代わりに、FATパーティションをマウントする際にutf8=trueオプションを渡すようにしましょう(これにはCONFIG_NLS_UTF8がカーネルで有効になっている必要があります)。より詳しい情報についてはman 8 mountを見るか、/usr/src/linux/Documentation/filesystems/vfat.txtにある適切なカーネルドキュメントを見てください。

Emerge

FATのユーザースペースユーティリティーを使うにはsys-fs/dosfstoolsパッケージが必要です:

root #emerge --ask sys-fs/dosfstools

使い方

FATファイルシステムはmountコマンドでマウントできるはずです。リサイズはsys-fs/fatresizeを使用して行えます。

削除

次回のdepcleanで削除されるようにするには:

root #emerge --ask --depclean --verbose sys-fs/dosfstools

トラブルシューティング

ファイルの転送速度が遅い

ファイルの転送速度 (iotop を使って確認できます) が遅い場合は、ファイルシステムが async ファイルシステムオプションを使ってマウントされているか確認してください。/etc/fstab (または、autofs を使用している場合は /etc/autofs/auto.misc) システムファイルを編集し、必要に応じて、おそらくそこにあると思われる sync マウントオプションを削除してください。デフォルトでは、ファイルシステムは async マウントオプションを使ってマウントされます。

注意
ファイルシステムの sync マウントオプションは、デフォルトの async マウントオプションよりも遅い転送速度に制限し、sync マウントオプションはフラッシュメディアの寿命を縮めることもあります!man mount のオプション sync の説明を確認してください。

まだファイルの転送速度が遅い場合は、flush マウントオプションを使ってファイルシステムを再マウントしてみてください:

root #mount -o remount,flush /path/to/mountpoint

オペレーティングシステム互換性のある他のファイルシステム

UDFTools を利用して UDF ファイルシステムを試してみてください。これには sys-fs/udftools と Linux カーネル UDF ファイルシステムドライバが必要です。近年 mkudffs に、Microsoft 関連オペレーティングシステムとの互換性を改善する、モックパーティションの作成に関する修正コードが追加されました。より古い Linux カーネルを使用している場合、互換性を改善するためには、ブロックサイズが 512 に設定されていることを確認してください。モックパーティションを作成するために必要な --bootarea=mbr を除き、ほとんどのオプションは互換性のためデフォルトになっています。

root #mkudffs --bootarea=mbr --label=your_label /dev/device_file

Samsung の F2FS ファイルシステムも試してみてください。

UTF-8/UTF-16 文字によるハードウェアのバグ

Sometimes hardware firmware bugs will occur on embedded devices (eg. car radios) when reading their required formatted FAT/FAT32 filesystems containing UTF-8 characters. A workaround is to ensure initially mounting the FAT filesystem using (current default) mount options codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro.

For short filenames, codepage=437 is IBM-PC characters or basically ASCII. For long filenames, iocharset=iso8859-1 specifies ASCII. The option shortname=mixed is default, and can also try shortname=win95 option. Of which, are all current defaults. Additionally to further remedy UTF-8/UTF-16 incompatible characters, use a loop with sed to replace all incompatible UTF-8/UTF-16 characters with an underscore or other ASCII character. (See this replace_chars.sh script.)

参考までに、このバグは Sony のカーラジオで発生しました。MEX-GS610BT モデルのラジオは、UTF-8/UTF-16 文字を含む USB フラッシュメディア/ドライブを読もうとしたときにハードリセットします。

前述の通り、codepage、iocharset、または utf8 マウントオプションを使うかどうかについてのさらなる説明については、 Linux カーネルの vfat のソースコードドキュメンテーション /usr/src/linux/Documentation/filesystems/vfat.txt を確認してください。

ファイルとフォルダがソートされない

FAT/FAT32 ファイルシステムにファイルを書き込んで、別のデバイスでそのファイルシステムを読み込んだとき、ファイルとフォルダがソートされずに表示されることがあります。ふつう、見る人はファイルとフォルダをアルファベット順にソートされた状態で見たいでしょう。sys-fs/fatsort をインストールして、次のコマンドを実行してください:

root #fatsort /dev/device_file

関連項目

  • ExFAT
  • ext4 — オープンソースのディスクファイルシステムで、extended filesystem シリーズの最新バージョンです。 ext4 はもっとも人気のあるLinuxファイルシステムです。
  • btrfs — 耐障害性、自己修復特性、管理のしやすさに焦点を当てつつ、先進的な機能を実装することも主眼としている、Linux 向けのコピーオンライト (CoW) ファイルシステムです。
  • filesystem — プログラムの終了後も保持されることが期待されるデータを整理する手段であり、データの格納、取り出し、更新、およびそれを含むデバイス上の利用可能な領域の管理を行う手順を提供します。
  • mount — コンピュータの現在アクセス可能なファイルシステムに追加のファイルシステムを加える
  • removable media — any media that is easily removed from a system
  • /etc/fstab — 特にブート時において、どのようにそしてどこに主要なファイルシステムがマウントされるかを定義するファイルです。

外部の情報

参照