ext2 (second extended filesystem) は、Linuxオペレーティングシステムで広く利用されていたファイルシステムである。初期のextファイルシステムを拡張したためext2と名付けられた。現在の多くのディストリビュータext4を標準で採用している。

ext2
開発者 Rémy Card
正式名 Second extended file system
導入 1993年1月 (Linux)
パーティション識別子 Apple_UNIX_SVR2(Apple Partition_Map)
0x83 (MBR)
EBD0A0A2-B9E5-4433-
87C0-68B6B72699C7
(GPT)
構造
領域管理 inode
限度
最大ファイル サイズ 2TiB
最大ファイル数 1018
最大ファイル名長 255バイト
最大ボリューム サイズ 16TiB
ファイル名の文字 NULと/以外使用可能
特徴
タイムスタンプ 変更, 属性変更, アクセス
日付範囲 1901年12月14日 - 2038年1月18日
日付分解能 1s
フォーク 可能
パーミッション POSIX
透過的圧縮 任意
透過的暗号化 なし
重複排除 無し
対応OS LinuxBSDWindowsIFS経由)、macOS
テンプレートを表示

パーティションの上限は当初2GiBであったが、2.4系カーネルでは4TiBまで拡張されている。255バイトまでのファイル名や、可変長のディレクトリエントリに対応している。また、一部をスーパーユーザー (root) のために予約しており、通常の領域を使い切ってもメンテナンスを行うことができる。

ext2は、ジャーナリングを備えていないため、いったんクラッシュするとファイルシステムの復旧に時間がかかる。そのため、ext3ReiserFSなどのジャーナリングファイルシステムの普及に努めている。

歴史

編集

初期のLinuxの開発は、MINIX上でクロス開発されていた。extがLinuxで採用されたのはその経緯があったためである。しかし、システム内部の構造は16ビットであり、64MiBまでのファイルサイズのサイズ制限があり、14文字までのファイル名長もそのままLinuxにも残された。

新しいファイルシステムの追加を安易にするためのAPIをLinuxカーネルに加えたのち、extは、VFS APIを用いた最初のファイルシステム (ext) が1992年4月に公表され、Linux 0.96cにそのファイルシステムが含まれることになった。改訂されたextはMINIXのファイルシステムの2つの制約を解決することに至ったが、inodeとタイムスタンプのサポートが不完全なままであった。

1993年1月、この問題の解決として2つの新しいファイルシステムであるxiafs英語版とext2が開発された。Berkeley Fast File Systemから多くのアイディアを取り込んだ。

それ以降、ext2はVFS APIの新規の拡張を多く取り込みテスト段階になった。

最終的にext2は4TiBと255バイトまでのファイル名長、可変長ブロックサイズを得ることとなった。

構造

編集

ext2の空間はフラグメントを減らし、ディスクシークを最小化するためにブロックで分けられており、ブロックグループを作り組織化する。

スーパーブロックはOSの起動にとって重要な情報を含む。