机の上で頭をつぶして一日を過ごした後、私はいくつかの助けをいただければ幸いです。
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
誰でも私が空き領域を「取り戻す」ために何を試みることができるか考えていますか?
推測では、ディスクブロックではなくiノードが不足しています。つまり、データの合計量ではなく、ファイルシステムが保持できるファイルの数に制限があります。
df -i
を使用してこれを確認できます。
Linuxは、スーパーユーザー用に一定の割合のブロックを予約します。通常は5%に設定されています。 50%は異常に高いです。 tune2fs -m
あなたはそれを変えることができます。
これは、btrfsを使用している場合に発生する可能性があり、その場合、これらの救済策は機能しません。
多くの誤った道をたどった後、私は検索を開始した後、最終的に正しい軌道に乗った
btrfsいいえ
と
btrfsデバイスにスペースが残っていません
最初の完成として。それが BTRFS問題ウィキにつながりました。 これは明らかに一般的な問題です。
しかし、そこからでも私の問題を解決するのはそれほど簡単ではありませんでした。リカバリモードで起動し、ファイルシステムをマウントする選択を行ってから、rootにドロップすることで、適切なユーティリティを実行できました。
ウィキの記事には、btrfsバランスを実行すると書かれていましたが、すべてのファイルシステムで実行できるわけではなく、最終的には ここ (2番目の検索でもあります)を見つけました。結果。)
ファイルシステムが本当にいっぱいの場合、バランスさえも実行されません。または、-dusageの値が小さい場合にのみ実行されます。
この場合のレシピは、投稿の下部にあります。ポスターがスナップショットを削除するので、最初は混乱し、解決策として拒否しました。これは必須だと思いました。スナップショットを撮っていなかったので、適用されないと思いました。しかし、そうしました。スナップショットの手順は一部の人にとって重要かもしれませんが、私にとってはそうではありませんでした。
概要の解決策は次のとおりです。
参照されている投稿は、コマンドラインの手順を示しています。