Linux
 Computer >> コンピューター >  >> システム >> Linux

Linuxで「デバイスに空き容量がありません」エラーを解決する方法

Linuxで「デバイスに空き容量がありません」エラーを解決する方法

Linuxは通常、エラーメッセージがとても具体的です。「この操作は失敗しました。○○というパッケージをインストールしてください」のように、次の対処法まで示してくれることがほとんどです。しかし、その中でも特に原因をつかみにくいのが「No space left on device(デバイスに空き容量がありません)」というエラーです。「2TBものストレージがあったはずなのに、どうして満杯になっているのか」「そもそもどこから調べればいいのか」と戸惑う方も多いでしょう。この記事では、Linuxでこのエラーが発生したときの原因の特定方法と解決策を、順を追ってわかりやすく解説します。

まずはディスクの空き容量を確認しよう

作業を始める前に、ディスクに本当に空き容量があるかどうかを確認しましょう。デスクトップ環境に付属のツールでも確認できますが、コマンドラインから直接調べたほうが手早く済むことがあります。

GUIツールを使いたい場合は、GNOMEの「ディスク使用量アナライザー(baobab)」などが視覚的で読みやすい結果を表示してくれます。筆者の環境(Fedora+GNOME)では、以下のように表示されました。

Linuxで「デバイスに空き容量がありません」エラーを解決する方法

まずはduコマンドを実行します。問題が発生しているドライブのルートディレクトリを指定してください。ここでは「/」パーティションだと仮定します。

sudo du -sh /
Linuxで「デバイスに空き容量がありません」エラーを解決する方法

すべてのファイルを走査するため、完了まで少し時間がかかります。続いてdfコマンドも試してみましょう。

sudo df -h
Linuxで「デバイスに空き容量がありません」エラーを解決する方法

「/」と、その配下にマウントされているファイルシステムの数値を合計します。たとえば「/home」が別ドライブにある場合は、その分も「/」の数値に加算してください。合計値がduの結果とほぼ一致していれば問題ありません。大きく食い違っている場合は、削除済みのファイルをプロセスが掴んだままになっている可能性があります。

重要なのは、これらのコマンドの合計値がドライブの総容量を下回っているかどうかです。もし総容量を超えているようなら、何らかの異常が起きています。

「デバイスに空き容量がない」エラーの主な原因

このエラーの原因は大きく分けて3つあります。dudfの結果に食い違いが見られた場合は最初の項目へ、そうでなければ2番目の項目から確認していきましょう。

原因1:削除したファイルをプロセスが使用し続けている

ファイルを削除しても、それを使用中のプロセスがまだ動いていることがあります。Linuxではプロセスが稼働している間、そのファイルに関連付けられたストレージは解放されません。該当するプロセスを見つけて再起動すれば、容量は回復します。

Linuxで「デバイスに空き容量がありません」エラーを解決する方法

まず、対象のプロセスを探します。

sudo lsof / | grep deleted

問題のプロセスが一覧に表示されるので、それを再起動してください。

sudo systemctl restart サービス名

どのプロセスかすぐに特定できない場合は、デーモン全体をリロードしてみましょう。

sudo systemctl daemon-reload

原因2:iノード(inode)の枯渇

ファイルシステムには「iノード(inode)」と呼ばれるメタデータ領域があります。iノードには各ファイルの情報が記録されており、多くのファイルシステムではiノードの総数が固定されています。そのため、ディスク自体に空きが残っていても、iノードの上限に達すると新しいファイルを作成できなくなるのです。dfコマンドで確認できます。

sudo df -i /
Linuxで「デバイスに空き容量がありません」エラーを解決する方法

使用済みiノード数と総iノード数を比較してください。空きがなくなっている場合は、残念ながらiノードを追加することはできません。不要になったファイルや古いファイルを削除して、iノードを解放しましょう。

原因3:不良ブロック(バッドブロック)

最後に考えられるのが、ファイルシステム上の不良ブロックです。ファイルシステムは長年の使用で破損することがあり、ハードディスク自体も寿命を迎えます。OSは、明示的にマークされていない限り、こうしたブロックを使用可能な領域として認識してしまうことがあります。不良ブロックを検出してマークする最良の方法は、-ccオプション付きのfsckを実行することです。なお、fsckは検査対象と同じファイルシステム上からは実行できないため、Live CDなど別の環境から起動する必要がある点に注意してください。

sudo fsck -vcck /dev/sda2

「/dev/sda2」の部分は、実際にチェックしたいドライブのデバイス名に置き換えてください。デバイス名は先ほどのdfコマンドで確認できます。また、この処理はかなり時間がかかることもあるので、コーヒーを淹れて待つくらいの余裕を持って臨みましょう。

まとめ

以上の方法のいずれかで問題が解決できれば幸いです。このエラーは状況によって診断が難しいこともありますが、落ち着いて一つずつ確認していけば、システムを通常どおり動作させられるはずです。

Linuxに関するその他のヒントをお探しなら、LinuxでBluetoothをセットアップする方法のガイドもあわせてご覧ください。ちょっと変わった話題としては、LinuxにMacのSafariブラウザをインストールする方法もあります。それでは、快適なLinuxライフを!

  1. Windowsコード38エラーの原因と対処法 – デバイスマネージャーのエラーを修復する手順

    Windowsコード38エラーは、Windowsの「デバイスマネージャー」が報告する問題の一つです。このエラーは、使用しようとしているプログラムに関連する正しいデバイスドライバーをWindowsが読み込めない場合に発生します。多くの場合、ソフトウェア上の問題、つまりデバイスが使用しているリソースをめぐる競合が原因であり、設定情報の破損や損傷が引き金になることもあります。エラーメッセージを解消し、デバイスを再び正常に使うためには、この問題を修正する必要があります。難しく聞こえるかもしれませんが、正しい手順を知っていれば誰でも簡単に修復できます。この記事では、Windows PCで発生するコード

  2. Windows 10でキャッシュマネージャーエラー(BSOD)を解決する方法

    PCの起動時にブルースクリーンエラーが表示されて困っていませんか?実はこのトラブルは非常によくあるものです。ブルースクリーン・オブ・デス(BSOD)は、システムドライバーの破損、ハードウェアの不具合、メモリの故障、パーツの過熱など、さまざまな原因によって発生します。その中でも「キャッシュマネージャー」エラーは、起動時のブルースクリーンに表示される代表的なエラーの一つです。 本記事では、Windowsの設定を少し調整するだけで、キャッシュマネージャーエラーを解決できる複数の方法をご紹介します。 それでは早速見ていきましょう。 Windows 10でキャッシュマネージャーエラーが発生する主な原因