Journaling file system for Linux
ext4 ( 第 4 拡張ファイルシステム ) は、 ext3 の後継として開発された、 Linux 用の ジャーナリングファイルシステム です。
ext4は当初、ext3の下位互換性を持つ 拡張機能のシリーズであり 、その多くは 2003年から2006年にかけてCluster File Systemsによって Lustreファイルシステム用に開発されたもので、ストレージ容量の拡張やその他のパフォーマンス向上を目的としていました。 [4] しかし、他の Linuxカーネル 開発者は安定性上の理由からext3への拡張機能の受け入れに反対し、 [5] ext3のソースコードを フォークし て ext4に改名し、既存のext3ユーザーに影響を与えずにそこですべての開発を行うという提案を行いました。この提案は受け入れられ、2006年6月28日、 ext3のメンテナーである Theodore Ts'oが ext4の新しい開発計画を発表しました。 [6]
ext4 の初期開発版は、 Linux カーネルのバージョン 2.6.19 [7]に含まれていました。2008 年 10 月 11 日、ext4 を安定コードとしてマークするパッチが Linux 2.6.28 ソースコードリポジトリに統合され [8] 、開発フェーズの終了が示され、ext4 の採用が推奨されました。ext4 ファイルシステムを含むカーネル 2.6.28 は、最終的に 2008 年 12 月 25 日にリリースされました [9]。2010 年 1 月 15 日、 Google はストレージインフラストラクチャを ext2 からext4 に アップグレードすると発表した [10] 。2010年 12 月 14 日、Google は Android 2.3 で YAFFSの代わりに ext4 を使用すると発表した [11] 。
ext3に対する改良点としては、日付範囲が2038 年 ではなく2446年までとなり、タイムスタンプの精度が1秒ではなくナノ秒になり、サイズ制限が引き上げられたことが挙げられる。 [12] [13]
採択
ext4はDebian や Ubuntu を含む多くのLinuxディストリビューションのデフォルトのファイルシステムです 。 [14]
特徴
大規模ファイルシステム
ext4ファイルシステムは、理論上は最大64 ZiBの ボリューム と、 標準の4 KiB ブロックサイズ で最大16 TiB の単一ファイル、および64 KiBクラスターで最大1 YiB のボリュームを サポートできます が、エクステント形式の制限により、実質的な制限は1 EiB になります。 [15]ファイル、ディレクトリ、およびファイルシステムの最大サイズ制限は、 ARM および PowerPC / Power ISA CPUで利用可能な最大64 KiBブロックサイズまで、ファイルシステムのブロックサイズに少なくとも比例して増加します 。
範囲
エクステントは 、ext2およびext3で使用されていた従来の ブロックマッピング 方式に代わるものです。エクステントとは連続した物理ブロックの範囲であり、大容量ファイルのパフォーマンスを向上させ、断片化を軽減します。ext4では、1つのエクステントで最大128MiBの連続領域を4KiBのブロックサイズでマッピングできます 。 [ 4] inode には4つのエクステントを直接格納できます 。ファイルに4つ以上のエクステントがある場合、残りのエクステントは ツリー構造 でインデックス化されます。 [16]
下位互換性
ext4は ext3 および ext2 と 下位互換性があり、ext3およびext2をext4として マウントする ことが可能です 。これにより、ext4実装の特定の新機能(新しいブロック割り当てアルゴリズムなど)がディスク上のフォーマットに影響を与えることなくext3およびext2でも使用できるため、パフォーマンスがわずかに向上します。 [17]
ext3はext4と部分的に 前方互換性が あります。実際には、 ext4 の作成時に ^extent、、、、、、 などの特定の新機能を無効にしない限り、ext4はそのままではext3ファイルシステムとしてマウントされません 。 [ 18 ] ^flex_bg^huge_file^uninit_bg^dir_nlink^extra_isize
永続的な事前割り当て
ext4は、ファイル用のディスク領域を事前に割り当てることができます。ほとんどのファイルシステムでは、これを実現するために、ファイル作成時にゼロが書き込まれます。ext4(および XFS などの一部のファイルシステム)では fallocate()、Linuxカーネルの新しいシステムコールを使用できます。割り当てられた領域は保証され、連続している可能性が高いです。この状況は、メディアストリーミングやデータベースへの応用が考えられます。 [ 要出典 ]
遅延割り当て
ext4は、 allocate-on-flush ( 遅延割り当て とも呼ばれる) と呼ばれるパフォーマンス向上技術を採用しています 。つまり、ext4はデータがディスクにフラッシュされるまでブロック割り当てを遅延させます。一方、一部のファイルシステムは、データが書き込みキャッシュに入ってもブロックを即座に割り当てます。遅延割り当ては、 一度に大量のデータを効率的に割り当てることで、パフォーマンスを向上させ、 断片化を軽減します。 [19]
サブディレクトリの数は無制限
ext4 では、ディレクトリ自体の固有のサイズ制限を除いて、単一ディレクトリ内のサブディレクトリの数に制限はありません。 (ext3 では、ディレクトリは最大 32,000 のサブディレクトリを持つことができます。) [20] [ 旧ソース ] より大きなディレクトリと継続的なパフォーマンスを可能にするために、Linux 2.6.23 以降の ext4 では、 HTree インデックス( B ツリー の特殊バージョン ) がデフォルトでオンになっており、ファイル名の長さに応じて、4 KiB のブロックサイズに対して最大約 1000 - 1200 万のエントリを 2 レベルの HTree インデックスに格納でき、ディレクトリのサイズは 2 GB に制限されます。Linux 4.12 以降では、この large_dir機能によって 3 レベルの HTree と 2 GB を超えるディレクトリ サイズが有効になり、単一ディレクトリに約 60 億のエントリを含めることができるようになりました。
ジャーナルチェックサム
ext4は 、ジャーナルがディスク上で最も頻繁に使用されるファイルの一つであるため、信頼性を向上させるためにジャーナル内のチェックサム [ 21] を使用します。この機能には副次的な利点があり、ジャーナリング中のディスクI/O待機を安全に回避できるため、パフォーマンスがわずかに向上します。ジャーナルチェックサムは、 ウィスコンシン大学の研究論文 「IRONファイルシステム 」 [22] に着想を得ており、IRONファイルシステム(元々はRedHatサミットでSam Naghshineh氏によって提案された)によって実行される複合トランザクションの実装に修正が加えられています。
メタデータのチェックサム
メタデータチェックサムのサポートは、2012年にリリースされたLinuxカーネルバージョン3.5で追加されました。 [23] [24]多くのデータ構造が CRC-32C チェックサムを追加するために変更されました が、一部のデータ構造は、4バイト全体を収容するのに十分な予約領域がないため、32ビットチェックサムの下位16ビットのみを格納します。インプレース変換は、を使用して行うことができます tune2fs -O metadata_csum。 [25]
ファイルシステムのチェックの高速化
ext4では、未割り当てブロックグループとinodeテーブルのセクションは、そのようにマークされます。これにより、 e2fsckは 未割り当てブロックグループとセクションを完全にスキップできるようになり、ファイルシステムのチェック時間を大幅に短縮できます。Linux 2.6.24はこの機能を実装しています。 [ 要出典 ]
マルチブロックアロケータ
ext3 はファイルに追加する際に、ブロックごとにブロックアロケータを呼び出します。そのため、複数の同時書き込みがあると、ディスク上でファイルが 断片化しやすいという問題があります。しかし、ext4 は遅延割り当てを採用しており、データをバッファリングしてブロックのグループを割り当てることができます。その結果、マルチブロックアロケータはディスク上でファイルを 連続的に 割り当てる際に、より適切な選択を行うことができます 。マルチブロックアロケータは、ファイルが O_DIRECT モードで開かれている場合にも使用できます。この機能はディスクフォーマットには影響しません。
タイムスタンプの改善
コンピュータ全般の高速化と、Linuxが ミッションクリティカルな アプリケーションでより多く利用されるようになるにつれ、秒単位のタイムスタンプの粒度は不十分になってきました。これを解決するために、ext4は ナノ秒単位 の タイムスタンプ を提供しています。さらに、拡張タイムスタンプフィールドの2ビットをタイムスタンプの秒フィールドの最上位ビットに追加することで、 2038年問題 をさらに408年間延期しています。 [3]
ext4は作成日時のタイムスタンプのサポートも追加しています。しかし、 Theodore Ts'o氏 が指摘するように、 inode に作成日時フィールドを追加するのは簡単です(したがって、技術的にはext4でこれらのタイムスタンプのサポートが可能になります)。しかし、 stat() (おそらく新しいバージョンが必要になるでしょう) のような必要な システムコールや、それらに依存する様々な ライブラリ ( glibc など)を変更または追加するのは困難です。これらの変更には、多くのプロジェクトの調整が必要になります。 [26] そのため、ext4によって保存される作成日時は、現在、Linux上のユーザープログラムがAPI経由でのみ利用できます 。 [27] statx()
プロジェクト割り当て
プロジェクトクォータのサポートは、2016年1月8日にLinuxカーネル4.4で追加されました。この機能により、特定のプロジェクトIDに ディスククォータ 制限を割り当てることができます。ファイルのプロジェクトIDは各ファイルに格納される32ビットの数値で、割り当てられたプロジェクトIDを持つ親ディレクトリの下に作成されるすべてのファイルとサブディレクトリに継承されます。これにより、UIDとGIDに依存するユーザークォータやプロジェクトクォータなど、ファイルのファイルアクセス権限とは独立して、特定のサブディレクトリツリーにクォータ制限を割り当てることができます。これはディレクトリクォータに似ていますが、主な違いは、同じプロジェクトIDを複数の最上位ディレクトリに割り当てることができ、厳密に階層化されていないことです。 [28]
透過的な暗号化
透過的な暗号化のサポートは、2015年6月にLinuxカーネル4.1で追加されました。 [29]
遅延初期化
lazyinit機能は、バックグラウンドでinodeテーブルを消去し、新しいext4ファイルシステムを作成する際の初期化を高速化します。 [30] これは2010年からLinuxカーネルバージョン2.6.37で利用可能です。 [31]
書き込みバリア
ext4はデフォルトで書き込みバリアを有効にします。これにより、書き込みキャッシュの電源が切れた場合でも、ファイルシステムのメタデータがディスク上に正しく書き込まれ、順序付けされます。これは、特にfsyncを頻繁に使用したり、小さなファイルを多数作成・削除したりするアプリケーションではパフォーマンスの低下を招きます。バッテリバックアップ式の書き込みキャッシュを搭載したディスクでは、バリアを無効にする(オプション「barrier=0」)ことで、パフォーマンスを安全に向上できる可能性があります。 [32]
制限事項
2008年、ext3およびext4ファイルシステムの主要開発者である セオドア・ツォは 、ext4は機能が改善されているものの、大きな進歩ではなく、古い技術を用いており、一時的なものに過ぎないと述べた。ツォは、 Btrfsの 方が「スケーラビリティ、信頼性、管理の容易さにおいて向上している」ため、より良い方向性であると考えている。 [33] Btrfsには、「 reiser3 / 4 と同じ設計思想がいくつかある 」とも述べている。 [34] しかし、ext4はファイル暗号化やメタデータチェックサムなどの新機能を継続的に追加している。
ext4ファイルシステムは、「セキュア削除」 ファイル属性 (削除時にファイルの上書きを強制するはず)を尊重しません。セキュア削除を実装するためのパッチは2011年に提案されましたが、機密データがファイルシステムジャーナルに残ってしまう問題は解決されませんでした。 [35]
遅延割り当てと潜在的なデータ損失
遅延割り当ては、プログラマがext3で頼りにしてきた動作を変更するため、すべてのデータがディスクに書き込まれる前にシステムがクラッシュしたり電源が落ちたりした場合に、データ損失のリスクが高まります。そのため、カーネルバージョン2.6.30以降のext4では、ext3と同様にこれらのケースを自動的に処理します。
これが発生する典型的なシナリオは、 fsync を使ってディスクへの書き込みを強制せずにファイルの内容を置き換えるプログラムです 。Unixシステムでは、ファイルの内容を置き換える一般的な方法が2つあります。 [36]
fd=open ("file", O_TRUNC); write(fd, data); close(fd);
この場合、既存のファイルはオープン時に( O_TRUNCフラグにより)切り詰められ、その後新しいデータが書き出されます。書き込みには時間がかかるため、ext3でも内容が失われる可能性はありますが、通常はごくわずかです。しかし、ext4ではファイルデータの書き込みが長時間遅延する可能性があるため、この可能性ははるかに高くなります。
次のようないくつかの問題が発生する可能性があります。
書き込みが成功しない場合 (書き込みプログラムのエラー状態、またはディスクがいっぱいなどの外部状態が原因の可能性があります)、ファイルの元のバージョン と 新しいバージョンの両方が失われ、ファイルの一部しか書き込まれないためにファイルが破損する可能性があります。
ファイルの書き込み中に他のプロセスがそのファイルにアクセスすると、破損したバージョンが表示されます。
他のプロセスがファイルを開いており、その内容が変更される予定がない場合、それらのプロセスはクラッシュする可能性があります。顕著な例としては、実行中のプログラムにマッピングされる共有ライブラリファイルが挙げられます。
これらの問題のため、多くの場合、上記の慣用句よりも次の慣用句が好まれます。
fd=open("file.new"); write(fd, data); close(fd); rename ("file.new", "file");
新しい一時ファイル("file.new")が作成され、最初は新しい内容が格納されます。その後、新しいファイルの名前が変更され、古いファイルが上書きされます。この呼び出しによるファイルの置き換えは、 POSIX rename()標準によりアトミックであることが保証されています 。つまり、古いファイルはそのまま残るか、新しいファイルで上書きされます。ext3のデフォルトの「順序付き」ジャーナリングモードでは、ファイルデータがメタデータよりも先にディスクに書き込まれるため、この手法によって古いファイルまたは新しいファイルの内容のいずれかがディスク上に保持されることが保証されます。ext4の遅延割り当てはこの期待に反します。ファイルの書き込みが長時間遅延される可能性があり、通常、名前の変更は新しいファイルの 内容が ディスクに到達する前に実行されるためです。
fsync()ext4のリスクを軽減するために頻繁に 使用すると data=ordered、フラグ(ほとんどのLinuxディストリビューションではデフォルト)を使用してマウントされたext3ファイルシステムのパフォーマンスが低下する可能性があります。両方のファイルシステムがしばらく使用されることを考えると、これはエンドユーザーアプリケーション開発者にとって問題を複雑にします。これに対し、Linuxカーネル2.6.30以降のext4は、これらの一般的なケースの発生を検出し、ファイルを強制的に即時割り当てます。パフォーマンスはわずかに低下しますが、これによりext3の順序付きモードと同様のセマンティクスが提供され、どちらのバージョンのファイルもクラッシュを生き延びる可能性が高まります。この新しい動作はデフォルトで有効になっていますが、「noauto_da_alloc」マウントオプションで無効にできます。 [36]
新しいパッチはメインラインカーネル2.6.30の一部になりましたが、さまざまなディストリビューションでは2.6.28または2.6.29にバックポートすることを選択しました。 [37]
これらのパッチは、潜在的なデータ損失を完全に防ぐことはできず、新規ファイルに対しても全く効果がありません。安全を確保する唯一の方法は、 fsync()必要な時に適切な処理を実行するソフトウェアを開発し、使用することです。パフォーマンスの問題は、頻度の低い重要なディスク書き込みを制限することで最小限に抑えることができます fsync()。 [38]
実装
Linux カーネルの簡素化された構造: ext4 は、Linux カーネルの仮想ファイル システムと汎用ブロック レイヤーの間に実装されています。
Linuxカーネル仮想ファイルシステムは、Linuxカーネル内部のサブシステムまたはレイヤーです。これは、複数のファイルシステムを秩序だった単一の構造に統合する試みの成果です。その核となるアイデアは、1986年にサン・マイクロシステムズの従業員が行った先駆的な研究 [39] にまで遡りますが、ファイルシステムの共通部分を抽象化し、そのコードを別のレイヤーに配置して、基盤となる具体的なファイルシステムを呼び出して実際にデータを管理させるというものです。
ファイル(または擬似ファイル)に関連するすべてのシステムコールは、 初期処理のためにLinuxカーネルの仮想ファイルシステムに送られます。ユーザープロセスから実行されるこれらのシステムコールは、、、、などの標準的なPOSIX open コール です
read 。 write lseek
相互運用性
ext4 ファイル システムは Linux 用に設計され、主に Linux で使用されますが、相互運用性ツールを介して他のオペレーティング システムからもアクセスできます。
Windowsは 、Windows Subsystem for Linux (WSL)テクノロジーを介してアクセスを提供します 。具体的には、2番目のメジャーバージョンであるWSL 2は、ext4をサポートする最初のバージョンです。これは、 Windows 10 Insider Preview Build 2021 で初めてリリースされました。 [40] [41] [42] [43] WSL 2を使用するには、x64システムの場合はWindows 10バージョン1903以降、ビルド18362以降、ARM64システムの場合はバージョン2004以降、ビルド19041以降が必要です。 [44]
パラゴンソフトウェアは、 Windows用のext2/3/4(Linuxファイルシステム) [45] および Mac用のextFS [46] への完全な読み取り/書き込みアクセスを提供する商用製品を提供しています 。
フリーソフトウェア ext4fuse は限定的な (読み取り専用) サポートを提供します。
一般的なアーキテクチャ
ext4ファイルシステムは、パーティションをブロック(セクターの集合体で、通常は1KiB~64KiB)と呼ばれる小さな塊に分割します。デフォルトでは、ブロックサイズはページサイズ(4KiB)と同じですが、ファイルシステム作成時に mkfs コマンドで変更できます。ブロックは、ブロックグループと呼ばれる大きな塊にグループ化されます。
スーパーブロック
これはファイルシステムの心臓部であり、ディスク上の1ブロックのみに存在します。 [47] 通常、ブロックグループの最初の項目となりますが、グループ0の場合は最初の数バイトが ブートセクター 用に予約されています。スーパーブロックはファイルシステムにとって非常に重要であり、ファイルシステムの作成時にパーティション全体にバックアップコピーが書き込まれるため、破損した場合でも復元可能です。
グループ記述テーブル
GDTはスーパーブロックに次ぐものです。GDTはファイルシステム上の各ブロックグループのブロックグループ記述子を格納します。これはディスク上の複数のブロックにまたがって存在します。各GDTのサイズは64バイトです。この構造はファイルシステムにとっても重要であり、冗長バックアップがファイルシステム全体にわたって保存されます。
ブロックビットマップ
ブロックビットマップは、ブロックグループ内のすべてのブロックの使用状況を追跡します。ビットマップ内の各ビットはブロックを表します。ブロックが使用中の場合は対応するビットがセットされ、そうでない場合はセットされません。ブロックビットマップの位置は固定されておらず、それぞれのブロックグループ記述子に格納されます。
iノードビットマップ
ブロックビットマップと同様に、Inodeビットマップの位置も固定ではありません。そのため、グループ記述子はInodeビットマップの位置を指します。Inodeビットマップは、Inodeの使用状況を追跡します。ビットマップ内の各ビットは、1つのInodeを表します。Inodeが使用中の場合、Inodeビットマップ内の対応するビットがセットされ、そうでない場合はセットされません。
ブロックグループ記述子
各ブロックグループは、ブロックグループ記述子によって表されます。この記述子には、空きinode 、空きブロック、inodeビットマップ、ブロックビットマップ、および特定のブロックグループのinodeテーブルの位置など、ブロックグループに関する重要な情報 が含まれています。
柔軟なブロックグループ
Ext4では、柔軟なブロックグループが導入されました。flex_bgでは 、 複数のブロックグループが1つの論理ブロックグループにグループ化されます。最初のブロックグループのブロックビットマップとinodeビットマップは、他のブロックグループのビットマップとinodeテーブルを含むように拡張されます。
参照
参考文献
^ ab 以前、LinuxはデータパーティションにWindowsと同じGUIDを使用していました(基本データパーティション: EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 )。Linuxは、データパーティションに固有のパーティションタイプGUIDを個別に定義していませんでした。そのため、UEFI-GPT環境でLinuxとWindowsをデュアルブートする際に問題が発生していました。新しいGUID(Linuxファイルシステムデータ: 0FC63DAF-8483-4772-8E79-3D69D8477DE4 )は、GPT fdiskとGNU Partedの開発者によって共同で定義されました。これはGPT fdiskではタイプコード 0x8300 として識別されます。(gdiskのparttypes.ccの定義を参照)
^ "DiscoverablePartitionsSpec". freedesktop.org . 2018年 4月7日 閲覧 。
^ ab "ext4: 拡張tv_secの処理を修正". Linux安定版カーネルツリー. 2017年 2月14日 閲覧 。
^ ab Mathur, Avantika; Cao, MingMing; Bhattacharya, Suparna ; Dilger, Andreas; Zhuravlev (Tomas), Alex; Vivier, Laurent (2007). 「新しいext4ファイルシステム:現状と今後の計画」 (PDF) . Proceedings of the Linux Symposium . Ottawa, ON, CA: Red Hat. 2010年7月6日時点 のオリジナル (PDF)からアーカイブ。 2008年 1月15日 閲覧 。
^ Torvalds, Linus (2006年6月9日). 「エクステントと48ビットext3」. Linuxカーネルメーリングリスト .
^ Ts'o, Theodore (2006年6月28日). 「ext2/3の今後の開発作業に関する提案と計画」 Linuxカーネルメーリングリスト .
^ Leemhuis, Thorsten (2008年12月23日). 「さらに進化:Linux 2.6.28のイノベーション(2ページ目)」Heise Online. 2009年1月3日時点のオリジナルよりアーカイブ。 2010年 1月9日 閲覧 。
^ “ext4: ext4dev を ext4 に名前変更”. Linus のカーネルツリー. 2012年5月29日時点のオリジナルよりアーカイブ。 2008年 10月20日 閲覧 。
^ Leemhuis, Thorsten (2008年12月23日). 「さらに高く、さらに先へ:Linux 2.6.28のイノベーション」Heise Online.
^ Paul, Ryan (2010年1月15日). 「GoogleがExt4にアップグレード、元Linux FoundationのCTOを採用」 Ars Technica .
^ 「Android 2.3 GingerbreadはExt4ファイルシステムを採用」 The H Open 2010年12月14日。
^ ext4: 拡張 tv_sec の処理を修正 - kernel/git/stable/linux.git - Linux カーネル安定ツリー
^ 「ext4 一般情報 — Linux カーネルドキュメント」 。 2025年 8月17日 閲覧 。
^ 「Debianのファイルシステム」2019年9月14日。
^ "ext4 – High Level Design". kernel.org . 2023年 12月8日 閲覧 。
^ Pomeranz, Hal (2011年3月28日). 「EXT4を理解する(パート3):エクステントツリー」 SANSデジタルフォレンジックおよびインシデントレスポンスブログ . 2019年8月18日時点のオリジナルよりアーカイブ。
^ 「ext4の解剖学」 IMB Developer . 2024年 5月27日 閲覧 。
^ “RH6.2でext4(エクステントなしで作成)をext3としてマウントすると失敗する”. www.linuxquestions.org . 2023年8月5日時点のオリジナルよりアーカイブ 。 2023年 12月8日 閲覧。
^ 「2. High Level Design — Linuxカーネルドキュメント」. docs.kernel.org . 2025年 1月9日 閲覧 。
^ 「Ext4 – Linuxカーネル初心者」. kernelnewbies.org .
^ “New ext4 features – Ext4”. ext4.wiki.kernel.org . 2023年9月23日時点のオリジナルよりアーカイブ。 2023年 12月8日 閲覧 。
^ Prabhakaran, Vijayan; Bairavasundaram, Lakshmi N.; Agrawal, Nitin; Gunawi, Haryadi S.; Arpaci-Dusseau, Andrea C.; Arpaci-Dusseau, Remzi H. (2005年10月). IRON ファイルシステム (PDF) . Symposium on Operating Systems Principles (SOSP '05). ブライトン、イギリス: ウィスコンシン大学コンピュータサイエンス学部. セクション6.1、パラグラフ5「トランザクションチェックサム」 . 2023年 12月8日 閲覧 。
^ “Ext4 メタデータチェックサム – Ext4”. ext4.wiki.kernel.org . 2023年11月6日時点のオリジナルよりアーカイブ。 2023年 12月8日 閲覧 。
^ 「Linux_3.5 – Linuxカーネル初心者」. kernelnewbies.org .
^ 「2. 高レベル設計」 Linuxカーネルドキュメント。 2025年 4月3日 閲覧 。
^ Ts'o, Theodore (2006年10月5日). 「Re: ext4の作成タイムスタンプ?」
^ Edge, Jake (2017年3月31日). “Extending statx()”. 2023年9月20日時点のオリジナルよりアーカイブ 。 2023年 12月8日 閲覧。
^ Li, Xi (2016年1月12日). 「ext4: プロジェクトクォータサポートの追加」(メーリングリスト). 2023年9月20日時点のオリジナルよりアーカイブ。 2023年 12月8日 閲覧 。
^ Ts'o, Theodore (2015年4月8日). “Ext4暗号化”. 2023年10月12日時点のオリジナルよりアーカイブ。 2023年 12月8日 閲覧 。
^ “Ext4 ファイルシステム”. Thomas-Krenn-Wiki . 2022年2月14日時点のオリジナルよりアーカイブ。 2023年 12月8日 閲覧 。
^ "kernel/git/torvalds/linux.git – Linuxカーネルソースツリー". git.kernel.org .
^ 「Ext4 –」。 ArchWiki 。
^ Paul, Ryan (2009年4月14日). 「Linuxコラボレーションサミットでカーネルについて議論するパネリストたち」 Ars Technica . 2009年 8月22日 閲覧 。
^ Theodore Ts'o (2008年8月1日). "Re: reiser4 for 2.6.27-rc1". linux-kernel (メーリングリスト) . 2010年 12月31日 閲覧 。
^ Corbet, Jonathan (2011年10月11日). 「ext4ファイルシステムからファイルを安全に削除する」
^ ab 「Linuxカーネルソースのext4ドキュメント」2009年3月28日。
^ Ubuntu バグ #317781 Ubuntu 開発者と Theodore Ts'o の間で、データ損失の可能性について長い議論が行われました
^ テッドの考えブログ記事、2009年3月12日 セオドア・ツォのこの件に関するブログ投稿
^ クライマン
^ Brandon LeBlanc (2020年9月10日). 「Windows 10 Insider Preview Build 20211 を発表」. Windows Blogs . 2021年 5月25日 閲覧 。
^ Pierre Boulay (2020年9月10日). 「WindowsとWSL 2でLinuxファイルシステムにアクセスする」. Windows Command Line . 2021年 5月25日 閲覧 。
^ 「WSL 2でLinuxディスクのマウントを開始する」 Microsoft Docs . 2021年 5月25日 閲覧 。
^ Craig Loewen (2019年6月12日). 「WSL 2がWindows Insidersで利用可能になりました」. Windows Command Line . 2021年 5月25日 閲覧 。
^ 「Windows 10用Windows Subsystem for Linuxインストールガイド」。Windows Docs 。 2021年 5月25日 閲覧 。
^ 「Windows用Linuxファイルシステム」 Paragon Software . 2021年 5月25日 閲覧 。
^ 「extFS for Mac」. Paragon Software . 2021年 5月25日 閲覧 。
^ 「2. 高レベル設計 — Linux カーネルのドキュメント」。
外部リンク
Linuxカーネルソースのext4ドキュメント
セオドア・ツォによるext4に関する議論、2006年6月29日
「ext4オンラインデフラグ」 Wayback Machine で2019年12月30日にアーカイブ(オタワLinuxシンポジウム2007の資料)
「新しい ext4 ファイルシステム: 現状と将来の計画」(オタワ Linux シンポジウム 2007 の資料)
カーネルログ: Ext4 は btrfs への中間ステップとして開発フェーズを完了、2008 年 10 月 17 日
「Ext4 ブロックと inode アロケータの改善」 Wayback Machine に 2010 年 3 月 31 日にアーカイブ(Ottawa Linux Symposium 2008 の資料)
「Ext4: Ext2/3 ファイルシステムの次世代」
Ext4 (および Ext2/Ext3) ウィキ
kernelnewbies.org の Ext4 wiki
CROSSMETA の Ext4 およびその他の FS のネイティブ Windows ポート
Ext2read エクステントと LVM2 をサポートする ext2/ext3/ext4 ファイルを読み取り/コピーする Windows アプリケーション。
Ext2Fsd オープンソースの Windows 用 ext2/ext3/ext4 読み取り/書き込みファイルシステムドライバ。ext4 はバージョン 0.50 以降でサポートされています。
Ext4fuse FUSE 用のオープンソースの読み取り専用 ext4 ドライバ 。( MacFuse を使用して Mac OS X 10.5 以降をサポート)
Oracle 投稿 ext4 ディスクレイアウトの理解