Моя корневая файловая система находится в разделе btrfs. В моем /chroot
каталоге есть несколько подоболей btrfs, которые мешают мне удалить его с помощью rm -rf /chroot
. В попытке удалить все подобъемы, я попытался перечислить только подобъемы ниже /chroot
, используя -o
страницу руководства , которая гласит: «печатать только подобъемы ниже указанного пути».
# 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
К моему удивлению, это возвращает подобъем в / var / lib / macines (который я не хочу удалять). Это приводит меня к 3 вопросам:
Что делает
-o
опция?Как мне перечислить только подтомы ниже
/chroot
Как я могу удалить каталог с неизвестным количеством подразделов?
Я использую Arch Linux с ядром 4.2.5 и btrfs-progs v4.3.1
grep chroot
?Ответы:
Следующая команда удаляет все подобъемы в
/chroot
каталоге:ls /chroot | xargs btrfs subvolume delete
Если есть файлы или каталоги, в которых отсутствуют подобъемы btrfs, будет напечатана ошибка, но они не будут удалены.
(Проверено на Debian с ядром 4.6.0 и btrfs-progs v3.17)
источник
Чтобы ответить на третий вопрос, вы можете использовать btrfs-rm .
Я использую его при установке докера, работающей на btrfs, для регулярной очистки всего каталога докеров. Используй на свой страх и риск, но у меня работает (ТМ).
Загрузить: https://github.com/DirkTheDaring/btrfs-rm
источник