web-dev-qa-db-ja.com

Linux:50%の空き容量があるデバイスエラーに空き容量がありません

机の上で頭をつぶして一日を過ごした後、私はいくつかの助けをいただければ幸いです。

Fedora 14でSquid-Proxyを実行しています。touch /tmp/fooを実行しようとしても、「デバイスに空き容量がありません」というエラーが表示されます。私はすでにfsckを実行しました。たとえば1MBのファイルを削除すると、1MBのデータを再度保存できますが、それ以上は保存できません。注目すべきは、私には十分な空き容量があるということです。

df出力:

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda3             16311208   7614872   7867768  50% /
tmpfs                  1028548         0   1028548   0% /dev/shm
/dev/sda1               198337     55345    132752  30% /boot
/dev/sdb1             25803036  19407324   5084996  80% /mnt/squid-cache

誰でも私が空き領域を「取り戻す」ために何を試みることができるか考えていますか?

8
Layticia

推測では、ディスクブロックではなくiノードが不足しています。つまり、データの合計量ではなく、ファイルシステムが保持できるファイルの数に制限があります。

df -iを使用してこれを確認できます。

16
TomH

Linuxは、スーパーユーザー用に一定の割合のブロックを予約します。通常は5%に設定されています。 50%は異常に高いです。 tune2fs -mあなたはそれを変えることができます。

0
LawrenceC

これは、btrfsを使用している場合に発生する可能性があり、その場合、これらの救済策は機能しません。

多くの誤った道をたどった後、私は検索を開始した後、最終的に正しい軌道に乗った

btrfsいいえ

btrfsデバイスにスペースが残っていません

最初の完成として。それが BTRFS問題ウィキにつながりました。 これは明らかに一般的な問題です。

しかし、そこからでも私の問題を解決するのはそれほど簡単ではありませんでした。リカバリモードで起動し、ファイルシステムをマウントする選択を行ってから、rootにドロップすることで、適切なユーティリティを実行できました。

ウィキの記事には、btrfsバランスを実行すると書かれていましたが、すべてのファイルシステムで実行できるわけではなく、最終的には ここ (2番目の検索でもあります)を見つけました。結果。)

ファイルシステムが本当にいっぱいの場合、バランスさえも実行されません。または、-dusageの値が小さい場合にのみ実行されます。

この場合のレシピは、投稿の下部にあります。ポスターがスナップショットを削除するので、最初は混乱し、解決策として拒否しました。これは必須だと思いました。スナップショットを撮っていなかったので、適用されないと思いました。しかし、そうしました。スナップショットの手順は一部の人にとって重要かもしれませんが、私にとってはそうではありませんでした。

概要の解決策は次のとおりです。

  1. 大きなファイルを作成する
  2. ループデバイスにする
  3. バランスが取れないfsにデバイスを接続します
  4. バランスを実行します
  5. デバイスを取り外します
  6. そのスペースを取り戻すためにファイルを削除します

参照されている投稿は、コマンドラインの手順を示しています。

0
WolfReporter