Linuxで「デバイスにスペースが残っていません」というエラーを修正する3つの方法

明確な原因のないエラーは、対処するのが最も厄介な問題です。通常、Linuxのエラー メッセージは具体的なものですが、これはボールを落とす数少ないケースの 1 つです。

特にドライブがいっぱいになっていない場合は、「デバイスエラーに場所がありません」というエラーが発生しても、ほとんど説明できません。このエラー メッセージが表示されるのはなぜですか? ディスクに十分なスペースがあるにもかかわらず、新しいファイルを作成できないのはなぜですか? そして最も重要なことは、それをどのように修正するかです。

確認してみましょう。

あなたのハードドライブには十分なスペース(Hard Drive Actually Have Enough Space)がありますか?

急いで修正を見つける前に、まず問題があることを確認してください。システムのディスク容量が実際になくなった場合でも、慌てる必要はありません。不要なデータを削除するだけで、より多くのスペースを解放できます。

ディスク容量に関する情報を取得するためのLinuxシステム コマンドには、du と df の2 つがあります。du コマンドはディスク容量の使用量を推定し、df コマンドはディスク上の空き容量を分析します。それらをsudo(sudo)と組み合わせて使用​​すると、ディスク上で実際に使用可能なスペースの正確なレポートが得られます。

  1. du コマンドから始めましょう。その出力はかなり長くて面倒なので、-s フラグと -h フラグを使用します。-s は結果を要約し、 -h は人間が判読できるようにします。したがって、コマンド sudo du -sh / を入力します。ここで、/ はベース ディレクトリを指します。

  1. すべての許可拒否メッセージについて心配する必要はありません。これが、システムのすべてのサブディレクトリをトロールする方法です。ドライブのサイズによっては、すべてを再帰的に処理するため、しばらく実行したままにしておく必要がある場合があります。

  1. du がスキャンを終了すると、ディレクトリの単純なリストとそのサイズが出力されます。たとえば、これは通常のディレクトリに適用された du コマンドの出力です。

次に、df を使用して、利用可能な空き容量を確認します。df コマンドは、マウントされたファイルシステムとその使用状況の統計のみを表示するため、はるかに簡単に使用できます。ここでも -h フラグを使用して、出力を人間が読めるようにします。

sudo df -h

アイデアは、du および df コマンドの結果を集計することです。不一致は、ファイルやフォルダーで使用されていないにもかかわらず、自由に利用できないディスク容量を示しています。

Linux(Does Linux Show)で「デバイスに空き容量 (Space Left)ありません」と表示されるのはなぜですか?

ディスクに十分な空き容量があるにもかかわらず、「デバイスに空き容量がありません」というエラー メッセージが表示される場合は、ハードウェアに問題があるわけではありません。エラーの正確な原因を突き止めるには、多少のトラブルシューティングが必要になる場合があります。

  • 最近削除されたファイル: このエラーが表示される最も一般的な理由は、最近削除されたファイルです。多くの場合、プロセスがまだファイルを使用している間にファイルが削除され、ファイルが既になくなっていてもスペースが予約されたままになります。
  • i ノード(Enough Inodes)が不十分: もう 1 つのよくある原因は、十分なi ノード(inodes)がないことです。inode はUnix(Unix)ファイルシステムのインデックス ページであり、ストレージ上のすべてのファイルのメタデータを保持します。ただし、inode は無制限ではなく、ストレージ容量が不足する前に inode が不足すると、「デバイスに空き容量がありません」というエラーが発生する可能性があります。
  • ハード(Hard)ドライブの故障: もちろん、ハードドライブが単に故障している可能性があり、明らかな空き領域の多くが不良セクタによって占められています。システムはこれらの場所へのファイルの書き込みに失敗するため、エラーがスローされます。

修正 1:削除されたファイルを使用してプロセスを再起動する(Using Deleted Files)

「デバイスにスペースが残っていません」というエラーの最も可能性の高い原因は、削除されたファイルをまだ使用しているプロセスです。ありがたいことに、このエラーを修正するのは簡単です。プロセスを再起動(restart the process)して、予約済みストレージを解放 するだけです。

  1. 問題のあるプロセスを見つけるには、lsof および grep コマンドを使用する必要があります。lsof コマンドは、実行中のプロセスによって使用されているすべての開いているファイルのリストを提供し、grep は選択を削除されたファイルに絞り込むことができます。sudo lsof / | と入力します。/ はベース ディレクトリ、| は削除された grep です。lsof の出力を grep にリンクするためのパイプ。

  1. これで、sudo systemctl restart service_name コマンドを使用して、影響を受けるプロセスを再起動できます。サービス名は、検索で見つかったサービスの名前です。

  1. このようなプロセスが複数ある場合、または特定のサービスを探すのに煩わされたくない場合は、sudo systemctl daemon-reload コマンドを使用してそれらをすべてリセットできます。これにより、ファイルシステムの変更を考慮して、すべての依存関係が再生成されます。

この後、プロセスによって保持されていたストレージスペースが再び利用可能になり、エラーが発生することなくファイルを書き込むことができるようになります.

修正 2: inode を確認する

各ドライブには多数の inode がありますが、有限です。また、システムに信じられないほどの数のファイルが散らばっている場合、ドライブのストレージ容量を使い果たす前にこの制限に達する可能性があります. これが、小さなファイルが多すぎるよりも、大きなファイルを持つほうがよい理由です。

df コマンドで -i フラグを使用すると、inode の可用性を簡単に確認できます。このような:

sudo df -i

これにより、ファイルシステムに存在する inode の総数と、現在使用中の量が明確にわかります。システムに空き i ノードが残っていない場合、これが「デバイスにスペースが残っていません」というエラーの原因です。

i ノードは最初にドライブをフォーマットしたときにのみ作成されるため、さらに i ノードを生成する方法はありません。できることは、不要なファイルを削除して、将来のファイルのために inode を解放することだけです。

修正 3: 不良ブロックをマークする

データ(Data)の破損は、ハード ドライブの避けられない宿命です。新しいドライブではこの問題は発生しませんが、古いハードディスクは徐々に「不良」になり始めます。

これが意味することは、ファイルシステムではまだ機能していると見なされていても、ハード ドライブの一部が使用できなくなるということです。これらの不良ブロックは、実際にはファイルを書き込むことができない場合でも、ドライブ上の見かけの空き領域を誤って膨らませます。これにより、オペレーティング システムがこれらの場所にデータを保存しようとして失敗するため、「デバイスに空き領域がありません」というエラーが発生します。

不良セクタはハード ドライブの物理的な摩耗の結果であるため、この問題を修正する実際の方法はありません。あなたができる唯一のことは、不良セクタをマークして、ファイル システムによって参照されないようにすることです。

これを行うには、実行中のドライブ内でファイル システム チェック(File System Check)を実行できないため、Live CDから起動する必要があります。それができたら、次のコマンドを使用します。

sudo fsck -vcck /dev/sda

これにより、/dev/sda が、修復するドライブのパスに置き換えられます。これにより、ドライブ上のすべての不良ブロックが自動的に検出され、使用不可としてマークされます。ただし、追加のストレージ容量は得られないため、不要なファイルをクリーンアップしてドライブのスペースを解放する準備をしてください.

「デバイスに空き容量がありません」エラーを修正する最善の方法は何ですか?

Ubuntuまたはその他のLinuxディストリビューションで「デバイスにスペースが残っていません」というエラーが表示される通常の理由は、実行中のプロセスによってまだ使用されている削除されたファイルです。これにより、ファイルが占有していたストレージが予約され、他の操作がそのスペースにデータを書き込むことができなくなります。

問題のプロセスを再起動するだけでよいため、この問題の修正も最も簡単です。ただし、エラーのその他の原因は簡単には解決できません。

ドライブが不良データ ブロックに悩まされているか、inode が不足しているかにかかわらず、これらの問題を直接修正する方法はありません。新しいデータを書き込むための領域を確保するには、既存のファイルを削除する必要があります。



About the author

私は 10 年以上の経験を持つコンピューターの専門家です。余暇には、オフィスのデスクを手伝ったり、子供たちにインターネットの使い方を教えたりしています。私のスキルには多くのことが含まれますが、最も重要なことは、人々が問題を解決するのを助ける方法を知っていることです. 何か緊急のことを手伝ってくれる人が必要な場合や、基本的なヒントが必要な場合は、私に連絡してください!



Related posts