Ext2、Ext3、およびExt4はすべて、Linuxシステムで使用されるファイルシステムです。 現在のほとんどのLinuxファイルシステムは、デフォルトでext4ファイルシステムを使用します。では、以前のExt2やExt3とはどう違うのでしょうか?今回はMiniToolよりLinuxのファイルシステム(ext2/ext3/ext4)の違いについて紹介していきます。
Extとも呼ばれる拡張ファイルシステムは、Linuxカーネル専用に開発された最初のファイルシステムであります。1992年4月に実装されたこのシステムは、MINIXファイルシステムの限界を打破することを目的としています。仮想ファイルシステム(VFS)を使用することで、Extは最大2GBのファイルシステムを扱うことができます。
しかし、Extファイルシステムには、フラグメンテーションやinodeの不変性などの欠点がありました。そこで、1993年に2番目の拡張ファイルシステム(Ext2)がリリースされました。それ以降、Ext3、Ext4というファイルシステムが次々と登場します。この3種類の拡張ファイルシステムは、Linuxのファイルシステムとして一般的に使用されています。しかし、その違いを知らない人が多いと思いますので、次に詳しく説明します。
Ext2/Ext3/Ext4の比較
Ext2、Ext3、Ext4は、いずれもLinux用に開発された拡張ファイルシステムです。しかし、ファイルサイズの制限、デフォルトのinodeサイズ、ジャーナリングなど、多くの点で違いがあります。次に、Ext4とExt3、Ext2の違いを詳しく説明します。
Ext2
Ext2は、フランスのソフトウェア開発者Rémy Cardが1993年に設計した、Linuxの2番目の拡張ファイルシステムでります。Linux用の最初の商用ファイルシステムとして、Ext2はExtのいくつかの制限を打ち破り、個々のファイルの最大サイズは2TB、ファイルシステムのサイズはブロックサイズに応じて4TBから32TBとなっていました。
また、Ext2はDebianやRed Hat Linuxを含むいくつかのLinuxディストリビューションの中で最も基本的でポータブルなファイルシステムです。さらに、Ext2は、ジャーナリングのオーバーヘッドを実行する必要がないため、SDカードやUSBフラッシュドライブなどのフラッシュベースのストレージデバイスに適したファイルシステムです。これにより、書き込みの数を最小限に抑え、パフォーマンスを向上させることができます。
しかし、Ext2ファイルシステムにはいくつかの欠点があります。Ext2ファイルシステムは、ストレージメディア上の同じサイズのブロックにデータを保持するように設計されているため、各ファイルでブロックサイズの平均半分が無駄になってしまいます。例えば、ブロックサイズが1024バイトの場合、1025バイトのファイルには2ブロックが必要となり、ブロックサイズの半分以上が無駄になってしまいます。
また、Ext3やExt4に比べて、Ext2にはジャーナリング機能がないため、万が一、電源が切れた場合でもデータの破損を最小限に抑えることができます。ここでは、その長所と短所を以下のようにまとめました。
長所:
- 個別ファイルサイズ:16GB~2TB
- ボリュームファイルシステムのサイズ:4TB~32TB
- ファイル名の最大長:255バイト(キャラクター)
- ファイルの最大数 10^18
短所:
- 無駄なブロックサイズ
- ジャーナリングなし
Ext2の全体像を理解した上で、Ext3とExt4にはどのような違いがあるのかを見ていきましょう。
Ext3
Ext3は、2001年11月のLinux 2.4.15で導入された3番目の拡張ファイルシステムです。これは、ダイアリーモードを使用するファイルシステムであり、ほとんどのLinuxディストリビューションで使用できます。 Ext2と比較して、Ext3の主な利点は、すべての変更のログレコードを追跡できることです。これにより、データ保護の信頼性が向上し、システムクラッシュや電源障害によるファイルシステムの損傷の可能性が減少します。
また、Ext3では、データのバックアップやリストアをすることなく、Ext2からインプレースでアップグレードできることも大きなメリットです。Ext2とExt3のファイルシステムは、どちらもユーティリティーの標準セットとしてe2fsporgsを採用しているため、両者の変換が容易になっています。Ext2の後継として設計されたExt3は、ジャーナル、オンラインでのファイルシステムの成長、より大きなディレクトリのためのHTreeインデックスなど、いくつかの新機能を備えています。
ある調査によると、Ext3は、Ext4やXFSなどの他のLinuxファイルシステムよりもCPUパワーの使用量が少ないという。Ext4とExt3を比較した場合、多くの専門家は、比較的シンプルでテストベースが広いことから、Ext3の方が安全であると考えています。重大なデータ破損が発生した場合、Ext2とExt3のファイルシステムは、Ext4と比較して、データの冗長性があるため、より可能性が高く、簡単にデータを回復することができます。
しかし一方で、Ext3には、エクステントブロッキングマッピング、ダイナミックアロケーションinode、デフラグなどの高度なファイルシステム機能がありません。
長所
- 個別ファイルサイズ:16GB~2TB
- ボリュームファイルシステムのサイズ:4TB~32TB
- ファイル名の最大長:255バイト(キャラクタ)
- ファイルの最大数:可変
- ファイル名の NULL(‘0’)と’/’を除くほぼすべての文字に対応
- 3種類のジャーナリングが可能。ジャーナル、オーダード、ライトバック
- ファイルシステム変換:バックアップ・リストアなしでExt2からExt3へのファイル変換が可能
- タイムスタンプ:秒
- プレアロケート:インコア予約
- マルチブロックアロケーション:ベーシック
短所
- 特徴 エクステント、ダイナミックアロケーションinode、ブロックサブアロケーションなどの高度な機能がありません。
- 削除の取り消し。Ext3ドライバーでは、ファイルのinodeを消去してファイルを削除するため、削除されたファイルの復元は困難です。
- 余分なキャッシュを持つストレージデバイスのジャーナルに書き込む際、ジャーナルのチェックサムが行われません。
- スナップショットのサポートなし
次に、Ext4とExt3、Ext2をさらに比較してみます。
Ext4
Ext4はジャーナリングファイルシステムを継承し、Ext3との下位互換性を持つ拡張シリーズです。現在のほとんどのLinuxディストリビューションは、Ext4ファイルシステムを採用しています。また、Ext4は、Windows(ext2fsdで読み書き可能)、FreeBSD(バージョン12.0以降)、macOS(ext4fuseで読み書き可能、ExtFSでフル)、KolibriOS(読み書き可能)など、いくつかの非Linux OSでもサポートされています。
このファイルシステムは、最初にLinuxカーネル2.6.19でストレージ制限を拡張し、パフォーマンスを向上させるために使用されていました。 Ext2およびExt3と比較すると、Extファイルシステムは標準の4Kブロックサイズを使用して、最大1EBのボリュームサイズと最大16TBの単一ファイルサイズをサポートできます。
また、Ext2やExt3で採用されていた従来のブロックマッピングに代わるExtentsを搭載しており、大容量ファイルのパフォーマンスを向上させ、フラグメンテーションを低減します。Ext4は、Ext2およびExt3との下位互換性があるため、それらをExt4としてマウントすることで、より高いパフォーマンスを得ることができます。
Ext4は、データをタイムリーにディスクにフラッシュできるようにするDelayed allocation技術を採用しています。そのため、一度に大量のデータを効率よく割り当てることができます。また、Ext3のサブディレクトリは32000個までですが、Ext4では1つのディレクトリ内のサブディレクトリの数に制限がありません。
さて、Ext4のファイルシステムにも制限があります。ファイル属性の「安全な削除」をサポートしていないため、削除後に機密データがファイルシステムのジャーナルに表示される可能性があります。また、「遅延割り当て」機能により、データがディスクに書き込まれる前にシステムクラッシュや電源障害が発生した場合、データ損失の可能性があります。
長所
- 個別ファイルサイズ:16GB~16TB
- ボリュームファイルシステムのサイズ:4TB~1EB
- ファイル名の最大長:255バイト(キャラクタ)
- ファイルの最大数 40億個
- ファイル名の NULL(‘0’)と’/’を除くほとんどの文字に対応
- ファイルシステムの変換。Ext3のファイルシステムをExt4に変換可能
- 高度な機能 エクステント、ディレクトリインデックス、ディレイドアロケーション、デフラグ
- サブディレクトリー 無制限
- タイムスタンプ:ナノ秒
- プレアロケーション:エクステントファイル用
- マルチプルブロックアロケーション:アドバンスド
短所
- データセキュリティ:セキュリティ削除に対応していない
- スナップショット:異なるボリューム上のアプリケーションの一貫したスナップショットを作成することは困難です。
- ディスクスペース:ディスクリソースの使用量が若干多くなります
以上の情報をもとに、Ext2、Ext3、Ext4の違いを大まかに理解してください。
どれを使うべきか
この3つのファイルシステムの違いを知った上で、どのファイルシステムを選べばいいのでしょうか?特別な事情がないのであれば、Ext4ファイルシステムが理想的な選択です。Ext4は、現在、ほとんどのLinuxディストリビューション(DebianやUbuntuを含む)のデフォルトファイルシステムです。他の2つの拡張ファイルシステムに比べて、大容量のファイルを保存する際の柔軟性が高く、より高度な機能を備えています。
さらに、Ext4は後方互換性を持つように設計されています。まだExt2やExt3を使いたい場合は、Ext4のファイルシステムをExt3としてマウントしたり、Ext2/Ext3のファイルシステムをExt4としてマウントしたりすることができます。ファイルの断片化の軽減、フラッシュメモリーの寿命向上、大容量ファイルの保存など、Ext2やExt3よりも多くのメリットがあります。
Ext4とExt3とExt2を直感的に比較できるように、次のような形を描いてみました。
補足:WindowsでExt2/Ext3/Ext4ファイルシステムを作成する方法
現在、多くのコンピュータユーザーはWindowsを使用していますので、WindowsとLinuxを同時に使用したり、パーシステントストレージを搭載したLinux USBを作成したいと思う場合はあるかもしれません。そのため、Windowsシステム上にExt2/Ext3/Ext4パーティションを作成する必要があるかもしれません。ここはMiniTool Partition Wizardを使うことを強くお勧めします。
FAT16/32、NTFS、exFAT、そしてExt2/3/4、Linux Swapを含む多くのファイルシステムの作成をサポートするオールインワンのパーティションマネージャです。この強力なツールを使って、ハードディスクのフォーマット、NTFSからFATへの変換、MBRからGPTへの変換、失われたデータの復元、OSをSSDへの移行、MBRの再構築などを行うことができます。
手順1. 以下のボタンを押して、MiniTool Partition Wizardをダウンロードし、起動します。
MiniTool Partition Wizard Freeクリックしてダウンロード100%クリーン&セーフ
手順2. メインインターフェイスに入り、ディスクマップで未割り当て領域を選択して、左ペインから「パーティションの作成」をクリックします。
手順3. ポップアップウィンドウで、「ファイルシステム」のドロップダウンメニューから「Ext2/3/4」を選択し、必要に応じて、パーティションラベル、ドライブレター、クラスタサイズ、パーティションサイズ、ロケーションを指定します。その後、「OK」をクリックして変更を保存します。
手順3. 「適用」をクリックして、この操作を実行します。
結語
この記事はLinuxのファイルシステムExt2、Ext3、およびExt4の基本情報と違いについて紹介しました。少しでもお役に立ちましたら幸いでございます。また、もしMiniToolについて何かご質問/ご意見がありましたら、お気軽に[email protected]までご連絡ください。