btrfsエラー:バランシング中のエラー-デバイスにスペースが残っていません


15

Kubuntu 12.04システムでルートパーティションのスペースが不足し、起動しません。このコマンドdf -hは、使用可能な多くのスペースを表示します(37%しか使用されていません)。

/dev/sda2        45G   17G   29G  37%

次のページは、balanceコマンドを実行する必要があることを示しています。

https://btrfs.wiki.kernel.org/index.php/Problem_FAQ#I_get_.22No_space_left_on_device.22_errors.2C_but_df_says_I.27ve_got_lots_of_space

$ sudo btrfs fi balance start -dusage=5 /mount/point

これが最良のアプローチであるとは完全には確信していませんが、私が見つけた唯一のアプローチです。ただし、そのコマンドを実行すると、次のエラーが表示されます。

ERROR: error during balancing '/blah/blah/blah' - No space left on device

私は同じエラーを受け取ります:

$ sudo btrfs fi balance start -dusage=1 /mount/point

適切なソリューションは何ですか?

回答:


15

balanceこの状況で実行するにはいくつかの方法があります。

sudo btrfs fi show
sudo btrfs fi df /mount/point
sudo btrfs fi balance start -dusage=10 /mount/point

balanceコマンドが「Done、0を0個のXXチャンクに再配置する必要があります」で終了する場合、少なくとも1つのチャンクが再配置されるまで「dusage」パーセンテージパラメータを増やす必要があります。

balanceコマンドが次のように失敗した場合:

ERROR: error during balancing '/blah/blah/blah' - No space left on device

実際にデバイスからファイルを削除して、スペースを確保する必要がある場合があります。次に、balanceコマンドを再度実行します。

ただし、Marcのブログに感謝します。

これを回避するための1つのトリックは、btrfsファイルシステムにデバイスを追加することです(USBキーでも可能です)。これにより、バランスが開始され、バランスが終了したらbtrfs device deleteを使用してデバイスを削除できます。カーネル3.14は、古いカーネルではできないいくつかのバランスの問題を修正できるとリストで言われているので、カーネルが古い場合は試してみてください。


7
時折mount -oremount,clear_cache /mountpoint、空き領域の計算を修正する必要もあることがわかりました。(それらは破損します...)
rrauenza

1
@rrauenza、ありがとう!それを答えとして追加する必要があります:)
mwfearnley

0

私は受け入れられた答えとMarcのブログのすべてを試してみました。-dusageパラメータを増やしたり、別のブロックデバイスを追加したりするなど、まったく役に立ちませんでした。いくつかのファイルを削除し、ディスク上の空き容量が少なくなった後でも、balance完了できませんでした。何らかの理由で、データがほぼ満杯のディスクに常に移動しているように見えました。結局、私にとってうまくいったのは、バランスを完全なデバイスに制限することでした:

btrfs balance start -ddevid=<dev_id> <path>

どこdev_idで見つけることができます:

btrfs fi show 

これらのどれも働いていない
メット

これによりシステムがクラッシュし、システムを再起動してもボリュームが使用できなくなりました。EXT4を使用してボリュームをインストールしましたが、今では、設計上の多くの問題があると考えられる非常に繊細なBTRFSシステムを取り除くことができることを願っています。
アル・バンディ

0

sudo apt-btrfs-snapshot delete-older-than 3d 3日より古いスナップショットを削除します。データを移動すると、スナップショットデータが適切ではなくなり、ドライブ上の複数の場所に実際のデータを書き込む必要があります。これにより、古い場所にある古いデータに関するスナップショットが削除され、それらのセクターが再び使用できるようになります。また、btrfsファイルシステムでデータとエクステントを重複排除するためにduperemoveをお勧めします。

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