Linux の標準ファイル システム (Ext2/Ext3/Ext4) についての深い理解

WBOY
リリース: 2023-12-31 22:18:29
転載
964 人が閲覧しました

内線

正式名称は、Linux 拡張ファイル システム extfs で、Linux 拡張ファイル システムです。Ext2 は、第 2 世代のファイル拡張システム、Ext3/Ext4 などを表します。これらはすべて Ext2 のアップグレード バージョンですが、次の機能が追加されています。相互に下位互換性があるため、Ext2 はインデックス ファイル システム、Ext3/Ext4 はジャーナル ファイル システムと呼ばれます。

注: Linux は、ネットワーク ファイル システム (NFS) や Windows のファット ファイル システムなど、多くのファイル システムをサポートしています。

Linux でサポートされているファイル システムを確認します: ls -l /lib/modules/$(uname -r)/kernel/fs

Linux の標準ファイル システム (Ext2/Ext3/Ext4) についての深い理解

Linux でサポートされているファイル システム (メモリにロードされている) を表示します: cat /proc/filesystems

Linux の標準ファイル システム (Ext2/Ext3/Ext4) についての深い理解

コア設計

データ領域

これらの要素は比較的安定しており、ディスクがフォーマットされた後に修正されます。

1. i ノード (インデックス ノード)
ファイルのアクセス権、属性、およびデータが配置されているブロックの番号を記録します。各ファイルには 1 つの i ノードがあります。各 i ノードには独自の番号があります。inode は、単純にドキュメントのインデックスとして理解できます。

2.ブロック(データブロック)
保存されるファイルの内容はデータブロックとも呼ばれ、各ブロックには独自の番号が付けられ、Ext2 がサポートする単位ブロック容量は 1k、2k、4k のみです。

注: i ノードの記録を容易にするために、ディスクのフォーマット後にブロック サイズが固定されています。各ブロックには 1 つのファイルのデータしか保存できません。ファイルが大きすぎると複数のブロックを占有し、ファイルが小さすぎるとブロックの残りの領域を使用できず、ディスク領域の無駄が発生します。したがって、ディスクがパーティション分割された後、ファイル システムをフォーマットする前に、ファイル システムの予想される使用方法について慎重に検討してください。

メタデータ

これらの要素は、ファイル システムの状態を維持するために設計されており、主にファイル システムの動的構成情報を表し、説明的な情報です。

1.スーパーブロック(スーパーブロック)

ファイルシステム (ファイルシステム) の総量、使用量、残量、inode/ブロックのサイズ、およびファイルシステムのフォーマットと関連情報を含む全体的な情報を記録します。

注意: ファイルシステム全体の基本情報はすべてスーパーブロックに記録されており、そのサイズは通常 1024 バイトであり、これが壊れると修復に非常に時間がかかります。 ! !

2.ブロックグループ

想像してみてください。ディスク容量が数百 G にも達すると、フォーマットすると i ノードとブロックが非常に大きくなります。管理を容易にするために、Ext ファイル システムではフォーマット時にブロック グループが導入されます。概念各ブロック グループは独立した inode/ブロック/スーパーブロックを維持し、固定数のブロックを持ち、基本的なサブファイル システムのグループに分割されます。

注: スーパーブロックはファイル システムにとって非常に重要ですが、ファイル システムにはスーパーブロックが 1 つしかないため、スーパーブロックを含む最初のブロック グループに加えて、後続のブロック グループにはバックアップ スーパーブロックが含まれる可能性があります。単一のスーパーブロック。ポイントは救出できません。

3. ブロック ビットマップ (ブロック比較テーブル)

ブロックは 1 つのファイルでのみ使用できます。新しいファイルを追加するときは、新しいブロックを使用してファイル データを記録する必要があります。では、どのブロックが新しいかをすぐに知るにはどうすればよいでしょうか?どのブロックがすでに使用されていますか?ブロック ビットマップは、使用済みおよび未使用のブロック番号をすべて記録するように設計されています。同様に、ファイルを削除するときは、まずブロック ビットマップから対応するブロック番号を見つけ、次にフラグを未使用に更新し、最後にブロックを解放します。

inode ビットマップ(inode 比較テーブル)

ブロック ビットマップと同じ設計コンセプトですが、使用済みおよび未使用の i ノード番号を記録する点が異なりますが、ここでは説明しません。

グループ記述子

各セクション (ブロック グループ) の最初と最後のブロック番号を記述し、各セクション (inodemap、ブロックマップ、inode テーブル) がどのブロック番号の間にあるかを説明します。

現在のシステム内のフォーマットされたデバイスをすべてリストします: blkid

Linux の標準ファイル システム (Ext2/Ext3/Ext4) についての深い理解

フォーマットされたデバイスを選択し、ファイル システムの詳細情報を表示します: dumpe2fs /dev/vda1

Linux の標準ファイル システム (Ext2/Ext3/Ext4) についての深い理解

Linux の標準ファイル システム (Ext2/Ext3/Ext4) についての深い理解

注: 上記の Magic 署名は 0xEF53 で、ディスク パーティションが ext2 および ext3 ファイル システムであることを示しています。ファイルの先頭のマジックと同様に、ファイルの種類を決定できます。

要約

Ext ファミリは、Linux で最も広くサポートされている完全なファイル システムです。ディスクをフォーマットした後、すべての inode/block/metadate およびその他のデータが計画されているため、システムは動的ファイル システムなしで直接使用できます。 Centos7.x では、デフォルトのファイル システムとして xfs が選択されています。

以上がLinux の標準ファイル システム (Ext2/Ext3/Ext4) についての深い理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:jb51.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!