ホームページ システムチュートリアル Linux Linux の標準ファイル システム (Ext2/Ext3/Ext4) についての深い理解

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

Dec 31, 2023 pm 10:18 PM
linux ファイルシステム

内線

正式名称は、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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? Apr 01, 2025 pm 05:09 PM

LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

Docker環境にPECLを使用して拡張機能をインストールするときにエラーが発生するのはなぜですか?それを解決する方法は? Docker環境にPECLを使用して拡張機能をインストールするときにエラーが発生するのはなぜですか?それを解決する方法は? Apr 01, 2025 pm 03:06 PM

エラーの原因とソリューションPECLを使用してDocker環境に拡張機能をインストールする場合、Docker環境を使用するときに、いくつかの頭痛に遭遇します...

ランプアーキテクチャの下でnode.jsまたはPythonサービスを効率的に統合する方法は? ランプアーキテクチャの下でnode.jsまたはPythonサービスを効率的に統合する方法は? Apr 01, 2025 pm 02:48 PM

多くのウェブサイト開発者は、ランプアーキテクチャの下でnode.jsまたはPythonサービスを統合する問題に直面しています:既存のランプ(Linux Apache MySQL PHP)アーキテクチャWebサイトのニーズ...

APSChedulerタイミングタスクをMACOSのサービスとして構成する方法は? APSChedulerタイミングタスクをMACOSのサービスとして構成する方法は? Apr 01, 2025 pm 06:09 PM

nginと同様に、APSChedulerタイミングタスクをサービスとして構成する場合、APSChedulerタイミングタスクをMACOSプラットフォームでサービスとして構成します...

PythonインタープリターはLinuxシステムで削除できますか? PythonインタープリターはLinuxシステムで削除できますか? Apr 02, 2025 am 07:00 AM

Linux Systemsに付属するPythonインタープリターを削除する問題に関して、多くのLinuxディストリビューションは、インストール時にPythonインタープリターをプリインストールし、パッケージマネージャーを使用しません...

マルチスレッドをC言語で実装する4つの方法 マルチスレッドをC言語で実装する4つの方法 Apr 03, 2025 pm 03:00 PM

言語のマルチスレッドは、プログラムの効率を大幅に改善できます。 C言語でマルチスレッドを実装する4つの主な方法があります。独立したプロセスを作成します。独立して実行される複数のプロセスを作成します。各プロセスには独自のメモリスペースがあります。擬似マルチスレッド:同じメモリ空間を共有して交互に実行するプロセスで複数の実行ストリームを作成します。マルチスレッドライブラリ:pthreadsなどのマルチスレッドライブラリを使用して、スレッドを作成および管理し、リッチスレッド操作機能を提供します。 Coroutine:タスクを小さなサブタスクに分割し、順番に実行する軽量のマルチスレッド実装。

web.xmlを開く方法 web.xmlを開く方法 Apr 03, 2025 am 06:51 AM

web.xmlファイルを開くには、次の方法を使用できます。テキストエディター(メモ帳やテキストエディットなど)を使用して、統合開発環境(EclipseやNetBeansなど)を使用してコマンドを編集できます(Windows:Notepad web.xml; Mac/Linux:Open -A Textedit Web.xml)

See all articles