Sistem file root saya ada di partisi btrfs. /chroot
Direktori saya memiliki sejumlah subvolume btrfs di dalamnya yang mencegah saya menghapusnya rm -rf /chroot
. Dalam upaya untuk menghapus semua subvolume, saya mencoba mendaftar hanya subvolume di bawah ini /chroot
dengan menggunakan -o
, yang dikatakan halaman manual "hanya mencetak subvolume di bawah jalur yang ditentukan".
# 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
Yang mengejutkan saya, ini mengembalikan subvolume di / var / lib / macines (yang saya tidak ingin hapus). Ini menuntun saya ke 3 pertanyaan:
Apa yang dilakukan
-o
opsi?Bagaimana cara saya mendaftar hanya subvolume di bawah ini
/chroot
Bagaimana saya bisa menghapus direktori dengan jumlah subvolume yang tidak diketahui?
Saya menjalankan Arch Linux dengan kernel 4.2.5 dan btrfs-progs v4.3.1
grep chroot
?Jawaban:
Perintah berikut menghapus semua subvolume di
/chroot
direktori:ls /chroot | xargs btrfs subvolume delete
Jika ada file atau direktori yang bukan merupakan subvolume btrfs, kesalahan akan dicetak, tetapi tidak dihapus.
(Diuji pada Debian dengan kernel 4.6.0 dan btrfs-progs v3.17)
sumber
Untuk menjawab pertanyaan ketiga Anda, Anda dapat menggunakan btrfs-rm .
Saya menggunakannya pada instalasi buruh pelabuhan yang berjalan di btrfs, untuk membersihkan seluruh dir buruh pelabuhan secara teratur. Gunakan dengan risiko Anda sendiri, tetapi bekerja untuk saya (TM).
Unduh: https://github.com/DirkTheDaring/btrfs-rm
sumber