Birden fazla btrfs alt hacimli bir dizin nasıl silinir?


9

Kök dosya sistemim bir btrfs bölümünde. Benim /chrootdizin ile silerek beni engeller içinde btrfs alt hacim bir numarası vardır rm -rf /chroot. Tüm alt hacimleri silmeye çalışırken, man sayfasında "yalnızca belirtilen yolun altındaki alt hacimleri yazdır" dediği /chrootşekilde -o, yalnızca alt hacimleri listelemeyi denedim .

# btrfs subvolume list -o /chroot
ID 593 gen 6616 top level 5 path chroot/base-devel/root
ID 594 gen 6618 top level 5 path chroot/multilib-devel/root
ID 595 gen 6620 top level 5 path chroot/base/root
ID 597 gen 6624 top level 5 path chroot/twm/root
ID 599 gen 6628 top level 5 path chroot/lxde/root
ID 601 gen 6655 top level 5 path chroot/wheezy/root
ID 602 gen 6684 top level 5 path chroot/sid/root
ID 603 gen 6862 top level 5 path var/lib/machines

Benim için sürpriz, bu / var / lib / macines (ki ben silmek istemiyorum) alt birim döndürür. Bu beni 3 soruya yönlendiriyor:

  1. Ne geliyor -oseçenek mi?

  2. Yalnızca aşağıdaki alt hacimleri nasıl listeleyebilirim? /chroot

  3. Alt hacimleri bilinmeyen bir dizini nasıl silebilirim?

4.2.5 çekirdeği ve btrfs-progs v4.3.1 ile Arch Linux çalıştırıyorum


Hangi çekirdeği çalıştırıyorsunuz ve btrfs araçlarının hangi sürümünü yüklediniz? Bu muhtemelen araçlarda bir hata.
David King

@DavidKing bkz. Düzenleme. Oldukça yeni bir çekirdek ve btrfs-progs çalıştırıyorum.
StrongBad

Ben btrfs ile bir hata raporu dosya. Bu süre zarfında dizinlerin listesini yapabilir misiniz grep chroot?
David King

Yanıtlar:


2

Aşağıdaki komut /chrootdizindeki tüm alt hacimleri kaldırır :

ls /chroot | xargs btrfs subvolume delete

Btrfs alt birimleri olmayan dosyalar veya dizinler varsa, bir hata yazdırılır, ancak bunlar kaldırılmaz.

(Debian üzerinde 4.6.0 çekirdek ve btrfs-progs v3.17 ile test edilmiştir)


0

Üçüncü sorunuza cevap vermek için btrfs-rm kullanabilirsiniz .

Tüm docker dizinini düzenli olarak temizlemek için btrfs üzerinde çalışan bir docker kurulumunda kullanıyorum. Kendi sorumluluğunuzdadır kullanın, ancak benim için çalışıyor (TM).

sudo ./btrfs-rm  /var/lib/docker/*   # create clean empty dir for docker

İndir: https://github.com/DirkTheDaring/btrfs-rm

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.