btrfs ERROR: error saat balancing - Tidak ada ruang tersisa di perangkat

15

Sistem Kubuntu 12.04 saya kehabisan ruang di partisi root dan tidak bisa boot. Perintah ini df -hmenunjukkan banyak ruang yang tersedia (dengan hanya 37% digunakan):

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

Halaman berikut menunjukkan bahwa saya harus menjalankan perintah keseimbangan:

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

Saya tidak sepenuhnya yakin bahwa ini adalah pendekatan terbaik, tetapi itu satu-satunya yang saya temukan. Namun, ketika saya menjalankan perintah itu, saya mendapatkan kesalahan ini:

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

Saya mendapatkan kesalahan yang sama dengan:

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

Apa solusi yang tepat?

MountainX-for-Monica
sumber

Jawaban:

15

Ada cara balanceuntuk menjalankan dalam situasi ini.

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

Jika perintah keseimbangan diakhiri dengan "Selesai, harus memindahkan 0 dari XX potongan", maka Anda perlu meningkatkan parameter persentase "dusage" sampai setidaknya satu potongan dipindahkan.

jika perintah keseimbangan gagal dengan:

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

Anda mungkin benar-benar perlu menghapus file dari perangkat untuk membuat beberapa ruang. Kemudian jalankan perintah keseimbangan lagi.

Namun, terima kasih kepada Marc's Blog: btrfs - Memperbaiki Filesystem Lengkap Btrfs di sini adalah pilihan lain:

Satu trik untuk menyiasatinya adalah dengan menambahkan perangkat (bahkan kunci USB akan melakukannya) ke sistem file btrfs Anda. Ini harus memungkinkan keseimbangan untuk memulai, dan kemudian Anda dapat menghapus perangkat dengan menghapus perangkat btrfs ketika saldo selesai. Juga dikatakan pada daftar bahwa kernel 3.14 dapat memperbaiki beberapa masalah penyeimbangan yang tidak bisa dilakukan kernel lama, jadi coba coba jika kernel Anda sudah tua.

MountainX-for-Monica
sumber
7
Saya menemukan bahwa kadang-kadang saya juga perlu mount -oremount,clear_cache /mountpointmemperbaiki perhitungan ruang kosong. (Mereka menjadi rusak ...)
rrauenza
1
@rrauenza, terima kasih! Anda harus menambahkan itu sebagai jawaban :)
mwfearnley
0

Saya mencoba segala sesuatu dalam jawaban yang diterima, dan blog Marc, termasuk menambah -dusageparameter dan menambahkan perangkat blok lain, semuanya sia-sia. Bahkan setelah menghapus beberapa file dan membebaskan sedikit ruang pada disk yang penuh, balancetidak dapat menyelesaikan. Untuk beberapa alasan sepertinya selalu memindahkan data ke disk yang hampir penuh. Pada akhirnya apa yang berhasil bagi saya adalah membatasi penyeimbangan ke perangkat lengkap:

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

di mana dev_iddapat ditemukan dengan:

btrfs fi show 
z7sg
sumber
Tak satu pun dari ini bekerja
Bertemu
Ini crash sistem saya dan volume menjadi tidak tersedia bahkan saya reboot sistem. Saya menginstal volume dengan EXT4 dan sekarang saya berharap saya dapat menyingkirkan sistem BTRFS yang sangat sensitif yang saya anggap sebagai kegagalan dengan banyak masalah desain.
Al Bundy
0

sudo apt-btrfs-snapshot delete-older-than 3d Menghapus foto yang lebih lama dari 3 hari. Saat Anda memindahkan data, data foto menjadi tidak pada tempatnya dan data aktual perlu ditulis di banyak tempat di drive. Ini menghapus snapshot yang berkaitan dengan data lama di lokasi lama dan membebaskan sektor-sektor itu untuk digunakan lagi. Saya juga merekomendasikan duperemove untuk mendupuplikasi data dan luasan pada sistem file btrfs.

D337z
sumber