Mój główny system plików znajduje się na partycji btrfs. Mój /chroot
katalog zawiera wiele podwoluminów btrfs, które uniemożliwiają mi jego usunięcie rm -rf /chroot
. Próbując usunąć wszystkie podwoluminy, próbowałem wyświetlić tylko te podwolumeny poniżej /chroot
, używając strony -o
, która mówi: „drukuj tylko podwolumny poniżej określonej ścieżki”.
# 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
Ku mojemu zdziwieniu zwraca to podobjętość w / var / lib / macines (których nie chcę usuwać). To prowadzi mnie do 3 pytań:
Co robi
-o
opcja?Jak wyświetlić poniżej tylko podobjętości
/chroot
Jak mogę usunąć katalog z nieznaną liczbą podwoluminów?
Używam Arch Linux z jądrem 4.2.5 i btrfs-progs v4.3.1
grep chroot
?Odpowiedzi:
Następujące polecenie usuwa wszystkie podwoluminy z
/chroot
katalogu:ls /chroot | xargs btrfs subvolume delete
W przypadku plików lub katalogów, które nie są podwoluminami btrfs, zostanie wydrukowany błąd, ale nie zostaną one usunięte.
(Testowane na Debianie z jądrem 4.6.0 i btrfs-progs v3.17)
źródło
Aby odpowiedzieć na trzecie pytanie, możesz użyć btrfs-rm .
Używam go w instalacji dokera działającej na btrfs, aby regularnie czyścić cały katalog dokerów. Używaj na własne ryzyko, ale działa dla mnie (TM).
Pobierz: https://github.com/DirkTheDaring/btrfs-rm
źródło