एक से अधिक btrfs सबवूल्म्स वाली डायरेक्टरी को कैसे हटाएं?


9

मेरा रूट फाइल सिस्टम एक 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 प्रश्नों की ओर ले जाता है:

  1. -oविकल्प क्या करता है?

  2. मैं नीचे केवल सबवोल्यूम कैसे सूचीबद्ध कर सकता हूं /chroot

  3. मैं अज्ञात संख्या में सबवॉल्म्स के साथ निर्देशिका को कैसे हटा सकता हूं?

मैं 4.2.5 कर्नेल और btrfs-progs v4.3.1 के साथ आर्क लिनक्स चला रहा हूं


आप किस कर्नेल को चला रहे हैं और आपके द्वारा इंस्टॉल किए गए btrfs टूल का कौन सा संस्करण है? यह शायद उपकरणों में एक बग है।
डेविड राजा

@DavidKing संपादन देखें। मैं हाल ही में एक कर्नेल और btrfs-progs चला रहा हूं।
स्ट्रॉन्गबैड

मैं btrfs के साथ एक बग रिपोर्ट दर्ज करूंगा। बीच के समय में आप निर्देशिका की सूची को grep chrootकिस माध्यम से पाइप कर सकते हैं ?
डेविड किंग

जवाबों:


2

निम्न आदेश /chrootनिर्देशिका में सभी उप-प्रजातियां निकालता है :

ls /chroot | xargs btrfs subvolume delete

यदि ऐसी फाइलें या निर्देशिकाएं हैं जो btrfs सबवूम्स मौजूद नहीं हैं, तो एक त्रुटि मुद्रित की जाएगी, लेकिन उन्हें हटाया नहीं जाता है।

(4.6.0 कर्नेल और btrfs-progs v3.17 के साथ डेबियन पर परीक्षण किया गया)


0

अपने तीसरे प्रश्न का उत्तर देने के लिए, आप btrfs-rm का उपयोग कर सकते हैं ।

मैं इसे नियमित रूप से पूरे docker dir को क्लीन करने के लिए btrfs पर चलने वाले docker इंस्टॉलेशन पर उपयोग करता हूं। अपने जोखिम पर उपयोग करें, लेकिन मेरे लिए (टीएम) काम करता है।

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

डाउनलोड करें: https://github.com/DirkTheDaring/btrfs-rm

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.