どのLinuxファイルシステムを使用する必要がありますか?

Linux PCでパーティションをフォーマットすると、さまざまなファイルシステムオプションが表示されます。これらのオプションは、圧倒的である必要はありません。使用するLinuxファイルシステムがわからない場合は、簡単な答えがあります。

クイックアンサー:確信が持てない場合はExt4を使用してください

雑草を調べて、さまざまなファイルシステムの違いをすぐに説明しますが、よくわからない場合は、Ext4を使用してください。

Ext4は、理由からほとんどのLinuxディストリビューションのデフォルトのファイルシステムです。これは、古いExt3ファイルシステムの改良版です。これは最先端のファイルシステムではありませんが、それは良いことです。つまり、Ext4は堅固で安定しています。

将来的には、Linuxディストリビューションは徐々にBtrFSに移行します。BtrFSはまだ最先端であり、多くの開発が行われているため、本番システムでは回避する必要があります。データの破損やその他の問題のリスクは、速度を向上させるだけの価値はありません。

関連:FAT32、exFAT、NTFSの違いは何ですか?

ただし、この「Ext4を使用する」というアドバイスは、LinuxシステムパーティションおよびLinuxのみがアクセスするその他のディスク上のパーティションにのみ適用されることに注意してください。他のオペレーティングシステムと共有する外付けドライブをフォーマットしている場合、Windows、macOS、および他のデバイスはExt4ファイルシステムを読み取ることができないため、Ext4を使用しないでください。Linuxで外付けドライブをフォーマットするときは、exFATまたはFAT32を使用することをお勧めします。

メインのLinuxブートドライブにパーティションを設定する場合は、それらのパーティションを設定するときに、少なくとも数GBのサイズのスワップパーティションを作成することもできます。このパーティションは「スワップスペース」に使用されます。これは、Windowsのページングファイルに似ています。Linuxは、RAMがいっぱいになると、メモリをスワップスペースにスワップアウトします。このパーティションは、特定のファイルシステムではなく、「スワップ」としてフォーマットする必要があります。

ジャーナリングとは何ですか?

ファイルシステムを選択するときに気付くのは、「ジャーナリング」ファイルシステムとしてマークされているものとマークされていないものがあることです。これは重要。

ジャーナリングは、クラッシュや突然の停電によるデータの破損を防ぐように設計されています。システムがファイルをディスクに書き込む途中で、突然電力が失われたとします。ジャーナルがないと、ファイルが完全にディスクに書き込まれたかどうかがコンピュータにわかりません。ファイルはディスク上に残り、破損します。

ジャーナルを使用すると、コンピューターは、ジャーナル内のディスクに特定のファイルを書き込み、そのファイルをディスクに書き込んでから、そのジョブをジャーナルから削除しようとしていることに気付きます。ファイルの書き込みの途中で電源が切れた場合、Linuxは起動時にファイルシステムのジャーナルをチェックし、部分的に完了したジョブを再開します。これにより、データの損失やファイルの破損が防止されます。

ジャーナリングはディスク書き込みのパフォーマンスを少し低下させますが、デスクトップまたはラップトップではそれだけの価値があります。思ったほどオーバーヘッドはありません。完全なファイルはジャーナルに書き込まれません。代わりに、ファイルメタデータ、iノード、またはディスクの場所のみが、ディスクに書き込まれる前にジャーナルに記録されます。

最新のファイルシステムはすべてジャーナリングをサポートしているため、デスクトップまたはラップトップをセットアップするときは、ジャーナリングをサポートするファイルシステムを使用することをお勧めします。

ジャーナリングを提供しないファイルシステムは、高性能サーバーや、管理者が余分なパフォーマンスを絞り出したいその他のシステムで使用できます。また、オーバーヘッドが高くなり、ジャーナリングの書き込みが増えたくないリムーバブルフラッシュドライブにも最適です。

これらすべてのLinuxファイルシステムの違いは何ですか?

MicrosoftはWindowsを開発し、AppleはmacOSを制御しますが、Linuxはコミュニティによって開発されたオープンソースプロジェクトです。スキルと時間のある人なら誰でも(またはどんな会社でも)新しいLinuxファイルシステムを作成できます。これが、選択肢が非常に多い理由の1つです。違いは次のとおりです。

  • Extは「Extendedfilesystem」の略で、Linux専用に最初に作成されました。4つの大きな改訂がありました。「ext」は、1992年に導入されたファイルシステムの最初のバージョンです。これは、当時使用されていたMinixファイルシステムからのメジャーアップグレードでしたが、重要な機能がありません。多くのLinuxディストリビューションはExtをサポートしなくなりました。
  • Ext2はジャーナリングファイルシステムではありません。導入されたとき、それは拡張ファイル属性と2テラバイトのドライブをサポートする最初のファイルシステムでした。Ext2にはジャーナルがないため、ディスクへの書き込みが少なくなり、USBドライブなどのフラッシュメモリに役立ちます。ただし、exFATやFAT32などのファイルシステムもジャーナリングを使用せず、さまざまなオペレーティングシステムとの互換性が高いため、何らかの理由で必要であることがわかっている場合を除き、Ext2を使用しないことをお勧めします。
  • Ext3は、基本的にジャーナリングを備えたExt2です。Ext3はExt2との下位互換性があるように設計されており、フォーマットを必要とせずにパーティションをExt2とExt3の間で変換できます。Ext4よりも長い間使用されてきましたが、Ext4は2008年から使用されており、広くテストされています。この時点で、Ext4を使用したほうがよいでしょう。
  • Ext4は、下位互換性があるようにも設計されています。 Ext4ファイルシステムをExt3としてマウントするか、Ext2またはExt3ファイルシステムをExt4としてマウントできます。これには、ファイルの断片化を減らし、より大きなボリュームとファイルを可能にし、遅延割り当てを使用してフラッシュメモリの寿命を延ばす新しい機能が含まれています。これはExtファイルシステムの最新バージョンであり、ほとんどのLinuxディストリビューションのデフォルトです。

  • 「バター」または「ベター」FSと発音されるBtrFSは、もともとOracleによって設計されました。これは「B-TreeFileSystem」の略で、ドライブプーリング、オンザフライスナップショット、透過的な圧縮、およびオンラインでの最適化を可能にします。これは、一部のLinuxディストリビューションがデフォルトで使用していたファイルシステムであるReiserFSに見られるものと同じアイデアをいくつか共有しています。 BtrFSは、Extシリーズのファイルシステムから完全に脱却するように設計されています。 Ext4ファイルシステムのメンテナーであるTedTs'oは、Ext4を短期的な解決策と考えており、BtrFSが前進の道であると信じています。 BtrFSは、さらにテストされるため、今後数年間でエンタープライズサーバーとコンシューマーデスクトップの両方のLinuxディストリビューションでデフォルトになると予想されます。
  • ReiserFSは、2001年に導入されたとき、Linuxファイルシステムにとって大きな飛躍であり、Extが実装できない多くの新機能が含まれていました。ReiserFSはReiser4に置き換えられ、2004年に、初期リリースで不完全または欠けていた機能の多くが改善されました。しかし、Reiser4の開発は、メイン開発者のHans Reiserが2008年に刑務所に送られた後、行き詰まりました。Reiser4はまだありません。メインのLinuxカーネルにあり、そこに到達する可能性は低いです。BtrFSはより良い長期的な選択です。

    関連:UbuntuにZFSをインストールして使用する方法(およびその理由)

  • ZFS はSunMicrosystems for Solarisによって設計され、現在はOracleが所有しています。 ZFSは、ドライブプーリング、スナップショット、ダイナミックディスクストライピングなどの多くの高度な機能をサポートしています。BtrFSは、これらの機能の多くをデフォルトでLinuxにもたらします。各ファイルにはチェックサムがあるため、ZFSはファイルが破損しているかどうかを判断できます。 Sun CDDLライセンスに基づくSunオープンソースZFS。つまり、Linuxカーネルに含めることはできません。ただし、ZFSサポートは任意のLinuxディストリビューションにインストールできます。 Ubuntuは、Ubuntu16.04以降の公式ZFSサポートも提供するようになりました。 UbuntuはデフォルトでコンテナにZFSを使用します。
  • XFSは、1994年にSGI IRXオペレーティングシステム用にシリコングラフィックスによって開発され、2001年にLinuxに移植されました。ファイルの断片化を支援するために遅延割り当てを使用し、マウントされたスナップショットを許可しないという点で、Ext4に似ています。その場で拡大することはできますが、縮小することはできません。 XFSは、大きなファイルを処理する場合は優れたパフォーマンスを発揮しますが、多くの小さなファイルを処理する場合は他のファイルシステムよりもパフォーマンスが低下します。これは、主に大きなファイルを処理する必要がある特定のタイプのサーバーに役立つ場合があります。
  • JFS、または「ジャーナリングファイルシステム」は、1990年にIBMAIXオペレーティングシステム用にIBMによって開発され、後にLinuxに移植されました。 CPU使用率が低く、大きなファイルと小さなファイルの両方で優れたパフォーマンスを発揮します。 JFSパーティションは動的にサイズ変更できますが、縮小することはできません。これは非常によく計画されており、ほとんどすべての主要なディストリビューションでサポートされていますが、Linuxサーバーでの本番テストは、AIX用に設計されているため、Extほど広範囲ではありません。 Ext4はより一般的に使用され、より広くテストされています。
  • スワップはドライブをフォーマットするときのオプションですが、実際のファイルシステムではありません。仮想メモリとして使用され、ファイルシステム構造はありません。マウントして内容を表示することはできません。スワップは、Linuxカーネルによって「スクラッチスペース」として使用され、RAMに収まらないデータを一時的に格納します。また、休止状態にも使用されます。Windowsはページングファイルをファイルとしてメインシステムパーティションに保存しますが、Linuxはスワップスペース用に別の空のパーティションを予約するだけです。

関連:FAT32、exFAT、NTFSの違いは何ですか?

  • FAT16FAT32、および exFAT:Linuxでドライブをフォーマットする場合、MicrosoftのFATファイルシステムがオプションになることがよくあります。これらのファイルシステムにはジャーナルが含まれていないため、外付けUSBドライブに最適です。これらは、Windows、macOS、Linux、およびその他のデバイスなど、すべてのオペレーティングシステムが読み取ることができる事実上の標準です。これにより、他のオペレーティングシステムで使用する外付けドライブをフォーマットするときに使用する理想的なファイルシステムになります。FAT32は古いです。exFATは、FAT32とは異なり、サイズが4 GBを超えるファイルと、サイズが8TBを超えるパーティションをサポートするため理想的なオプションです。

組み込みデバイスやSDカードのフラッシュストレージ用に特別に設計されたファイルシステムなど、他のLinuxファイルシステムもあります。ただし、これらはLinuxを使用するときに最も頻繁に表示されるオプションです。