ホームページ  >  記事  >  運用・保守  >  Linux でファイル作成が失敗する原因は何ですか?

Linux でファイル作成が失敗する原因は何ですか?

青灯夜游
青灯夜游オリジナル
2022-06-10 19:18:416616ブラウズ

Linux でファイル作成が失敗する原因: 1. カレントディレクトリに対応するディスク容量が不足しているため、あるディレクトリにファイルを作成する場合、実際にはそのディレクトリに対応するディスク上でファイルが操作されます。がいっぱいの場合、作成は当然失敗します。 2. i ノードが不十分です。1 つのファイルが 1 つの i ノードに対応するため、ディスク上に小さなファイルが多すぎると、多くのブロックが存在しますが、i ノードは割り当てられており、まだ多くのスペースがあります。ファイルは作成されるのですが、ファイルが作成できないので、inode番号の申請に失敗しました。

Linux でファイル作成が失敗する原因は何ですか?

#このチュートリアルの動作環境: linux7.3 システム、Dell G3 コンピューター。

ファイルの作成に失敗しました

Linux システムでファイルの作成に失敗することは比較的一般的です。もちろん、ここでファイルを作成すると失敗します。これは、ユーザーが手動でファイルを作成することを意味するだけではなく、多くの場合、一部のネットワーク サービス、ログ システムなどでは、継続的にファイルの書き込みとファイルの作成を行う必要があります。実際のユーザーがファイルの作成に失敗することはほとんどありません。次に、作成が失敗する理由を分析します。

ファイル作成失敗の原因:

1. 現在のディレクトリに対応するディスク容量が不足しています

によると上記の説明は、「あるディレクトリにファイルを作成する場合、実際にはそのディレクトリに対応するディスク上でファイルを操作することになります。ディスクがいっぱいであれば当然作成は失敗します。より具体的に説明すると、ファイルを作成する際、アプリケーションはfor ブロックは失敗します。次のコマンドを使用して確認できます:

# 查看当前目录所在磁盘的空间使用情况
df -h ./

2. inode が不十分です

これは、ファイル作成が失敗するもう 1 つの理由です。ファイルは i ノードに対応するため、ディスク上に小さなファイルが多すぎると、ブロックが多くなりますが、i ノードは割り当てられています。つまり、まだ十分なスペースがあるのに作成できません。これは、ファイルを作成するときに i ノード番号が適用されるためです。次のコマンドを使用して、innode が割り当てられているかどうかを確認できます。

# 查看当前目录所在磁盘的inode的使用情况
df -i ./

知識を広げる: いくつかの重要な名詞

  • スーパーブロック: より一般的なものを使用します。説明: スーパーブロックはディスク領域を管理し、ファイルに対するすべての操作 (作成、アクセス、削除) はディスク管理ハウスキーパーとして機能するスーパーブロックを経由する必要があります。

  • i ノード: ディスク フォーマットで事前に分割された小さなディスク領域。通常、各 i ノードは 128 バイトで、ファイルのアクセス許可、属性、占有ブロック、その他の情報を記録するために使用されます。各ファイルは i ノードに対応し、inode の適用と返却はスーパーブロックで管理され、inode の数には制限があります。

  • ブロック: ファイルのコンテンツが実際に保存される場所。ブロックのサイズもディスク フォーマットに従って分割されます。システムに応じて、各ブロックは 1K、2K、またはサイズは 4K です。ファイルのコンテンツは整数のブロックを占有する必要があります。残りのスペースが使い果たされると、無駄になります。例: 各ブロックは 4K です。サイズが 1K のファイルがある場合、そのファイルにブロックを割り当てる必要があります。このブロックの残りの 3K は他のファイルで使用できません。それはディスクの断片化と呼ばれます。別の状況では、ファイルが 10K で、3 ブロックを占有する必要があり、実際の使用率は 10/12 で、これら 3 つのブロックの番号がファイルに対応する i ノードに記録されます。

  • マウント ポイント: Linux システムでは、各物理ディスクは特定のディレクトリにマウントされます。このディレクトリにファイルを作成することは、この物理ディスクにファイルを配置することと同じです。何かを書き込みます。

    平たく言うと、物理ディスクは、最初にファイル ツリー内のディレクトリにマウントされます。物理ディスクは複数の領域に分割されます。各領域には、その領域を管理するスーパーブロックがあります。この領域は、ディスク。フォーマットは番号付きの特定の数の i ノードとブロックに事前に分割されます。1 つの i ノードが 1 つのファイルに対応します。新しいファイルを作成するときは、スーパーブロックに移動して最初に i ノード番号を申請し、次にいくつかの i ノード番号を申請する必要がありますファイルのサイズに応じてブロックを分割し、それらを inode に記録し、ファイルの属性、権限、占有ブロック番号、そして最後にファイルの実際の内容が、割り当てられたブロックに書き込まれます。

関連する推奨事項: 「Linux ビデオ チュートリアル

以上がLinux でファイル作成が失敗する原因は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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