「デバイスにスペースが残っていません」、dfは矛盾を示しています


15

数時間前にルートパーティションがいっぱいになり、そこからファイルを移動してdfが報告しました。

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/hda1             183G  174G     0 100% /

したがって、9GBの空き領域が必要ですが、availは0を報告し、Useは100%のままです。

ルートとしてテストしました、例えば

# echo test >a ; cat a
test

期待どおりに機能します。しかし、通常のユーザーとして、私はまだエラーが発生します:

$ echo test >a ; cat a
bash: echo: write error: No space left on device

ポジティブテストを実施したルートホームディレクトリとホームディレクトリは同じパーティションにあります。fstabエントリは次のとおりです。

/dev/hda1 / ext3 noatime,defaults,errors=remount-ro 0 1

回答:


34

ほとんどのファイリングシステムはルートに対して一定の割合を予約しているため、ルートとしてログインし、ディスクスペースの問題を解決できます。通常、これは5%です。9GBは183GBの約5%なので、これは理にかなっています。tune2fsを使用して、どれだけ予約されているかを確認できます。

# tune2fs -l /dev/sda1 | grep -i reserved
Reserved block count:     936488
Reserved GDT blocks:      1019
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)

を使用して変更できます

# tune2fs -m 3 /dev/sda1
tune2fs 1.41.9 (22-Aug-2009)
Setting reserved blocks percentage to 3% (561893 blocks)

最近の大容量ドライブでは、おそらく5%が少し過剰であり、おそらく低く設定する必要があります。ゼロに設定したくありません。


1
知らなかったなんて信じられない。私はより良い...私は現在、Linuxを使用してきたどのくらい言わない
マーク

@nfmねえ、私は長年ホームボックスで基本的なLinux管理を行ってきましたが、聞いたことはありません。+1:すばらしい情報:-)
トファーファンジオ


3

INODESもご覧ください。「バニラ」インストールでは、多くの小さなファイルが必要な場合、iノードを消費できますが、スペースは消費できません。使用可能なスペースがあることがわかりますが、iノードがいっぱいなので、このスペースを使用することはできません。


3
現代のほとんどのユニックスには、小さなファイルシステム上でも非常に多くのiノードがあります。問題になることもありますが、ユーザーがファイルcを作成できる場合は、inodeの問題になることはほとんどありません。(ディレクトリエントリは、スペースを必要としない場合でもiノードを必要とします)。
クリス

2

「デフォルトでは、Unixのすべてのファイルシステムには、スーパーユーザー(ルート)用に予約されたスペースがあります。つまり、通常のUnixユーザーはファイルシステムを100%まで使用できないため、通常の機能を継続するための十分な空きスペースが常にあります。 」

から: http://www.unixtutorial.org/commands/tune2fs/


1

もう1つ確認するのは、そのファイルシステム(特にログ)に開いているファイルがあるかどうかを確認することです。ファイルを削除しても、ファイルが実際に閉じられるまでディスク上のスペースはクリアされません。


0

私は、Clydeが答えを持っていると1ドル賭けます。プロセスはそのデバイス上でファイルを開いています。Linuxでは、ファイルを開いたままにするプロセスがファイルを解放するまで、ファイルは実際には削除されません。

私は次のことから始めます: lsof | grep hda1

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.