BTRFS'de “rm: xxx kaldırılamıyor: Cihazda Boş Alan Kalmadı”


17

OpenSuse'u Çalıştırma 12.2.

Aniden kök dizini dolu görünüyor (% 99) ama artık dosyaları manuel olarak kaldıramıyorum.

"rm: xxx kaldırılamıyor: Cihazda boş alan kalmadı" df'ye göre 450mb hala boş. Dosya sistemi BTRFS'dir.

Ben btrfsck kullanarak FS kontrol etmeye çalıştı ama yardımcı olmadı.

Ne yapalım?


1
Anlık görüntüleriniz etkin mi?
MadHatter

dosyayı kullanarak hala çalışan bir işlem olup olmadığını kontrol ettiniz mi? (lsof ile kontrol edin), lütfen işlemi durdurun ve dosyayı tekrar kaldırmayı deneyin.
chocripple

Yanıtlar:


20

Büyük olasılıkla, BTRFS'nin dosyayı kaldırabilmesi için biraz meta veri ayırması gereken bir sorunla karşılaşıyorsunuz. BTRFS'nin zayıf noktalarından biri, alan dışı durumu ele alması; bu alandaki davranışların iyileştirilmesi projenin önceliklerinden biridir.

Btrfs wiki ile ilgili bir öneri dosyayı kaldırmak yerine tıkamaktır.

#instead of this
rm -f ./some_file

# do this
true >| ./some_file

Böylece dizin içeriği değiştirilmeden dosyanın içeriği kaldırılır. Bulunduğunuz köşeden çıktıktan sonra normal gibi dosyaları silebilirsiniz. Bu size sorun çıkarırsa, nodatacowyazma üzerine kopyalama davranışını kapatan seçeneğe geçici olarak yeniden monte etmek isteyebilirsiniz . Ama ... bunun işe yarayıp yaramayacağından emin değilim.

Yine de genel olarak: BTRFS dosya sistemini kuru çalıştırmayın. Hala üretim öncesi yazılım ve köşe kasaları biraz kaba.


2
Hile ayrıca bir cifs monte ağ sürücüsü için de iyi çalışıyor, teşekkürler!
markusN

2

Aynı hata mesajıyla karşılaştım, ancak benim durumumda dosya sistemi tam olarak rapor edilmedi:

user@host:/# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       2.8G  2.0G  618M  77% /

Ancak BTRFS'ye sormak, bunun gerçekten dolu olduğunu ortaya çıkardı:

user@host:/# btrfs fi show
Label: none  uuid: {UUID redacted because reasons}
        Total devices 1 FS bytes used 1.92GiB
        devid    1 size 2.79GiB used 2.79GiB path /dev/sda3

Herhangi bir dosyanın üzerine yazılması bile (tylerl'in önerdiği gibi) imkansızdı. Çözümüm , http://marc.merlins.org/perso/btrfs/post_2014-05-04_Fixing-Btrfs-Filesystem-Full-Problems.html adresinde , dosya sisteminin manuel olarak yeniden dengelenmesini çalıştırmayı önerdi btrfs balance start -dusage=55 /path/to/filesystem.


0

Benim için, ZFS kullanarak, diğer dosyaları silmenin ZFS bölümünde yeterli alan bıraktığını ve sonra söz konusu dosyaları silebildiğimi fark ettim.


0

Benim durumumda, Linux'ta bir ZFS dosya sistemi ile dosyayı bile kesemedim. Eski anlık görüntüleri yok etmek işe yaradı (varsa).

zfs destroy /path/of/snapshot

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.