बाल सबवूम्स के साथ बैकट्रॉफ़ सबवोल्यूम को रोल करना


9

क्या एक सबवोल्यूम स्नैपशॉट में वापस रोल करने का एक विहित तरीका है जिसमें बाल सबवोल्यूम हैं। इसलिए उदाहरण के लिए, यह मेरा btrfs वॉल्यूम लेआउट है:

ID 257 gen 59802 top level 5 path __active
ID 258 gen 59784 top level 5 path __snapshot
ID 259 gen 59802 top level 257 path home
ID 260 gen 36538 top level 257 path opt
ID 261 gen 59802 top level 257 path var

तो आप देख सकते हैं कि घर, ऑप्ट, और var __active के बच्चे सबवोल्यूम हैं। यदि मैं __ सक्रिय को स्नैपशॉट देता हूं तो यह मेरा नया लेआउट है:

ID 257 gen 59802 top level 5 path __active
ID 258 gen 59784 top level 5 path __snapshot
ID 259 gen 59802 top level 257 path home
ID 260 gen 36538 top level 257 path opt
ID 261 gen 59802 top level 257 path var
ID 416 gen 59784 top level 258 path __snapshot/__active

अगर मैं __active के स्नैपशॉट में वापस रोल करना चाहता हूं, तो क्या नया __active घर, ऑप्ट और var को रीटच करने का एक तरीका है?

जवाबों:


3

यदि आप रीटेटिंग से मतलब रखते हैं कि आपका btrfs subvolume listप्रदर्शन होगा:

ID 257 gen 59802 top level 5 path __active
ID 258 gen 59784 top level 5 path __snapshot
ID 259 gen 59802 top level 416 path home
ID 260 gen 36538 top level 416 path opt
ID 261 gen 59802 top level 416 path var
ID 416 gen 59784 top level 258 path __snapshot/__active

उसके बाद अब ऐसा करने का कोई तरीका नहीं है btrfs-progs

उप-खंड केवल तभी हटाए जा सकते हैं यदि सभी बच्चे-सबवोल्यूम (साथ बनाए गए btrfs subvolume create ...) खाली हैं, हालांकि यह स्नैपशॉट्स के लिए सही नहीं है (जो कि बनाए गए हैं btrfs subvolume snapshot ...। स्नैपशॉट हमेशा हटाए जा सकते हैं और इसलिए यदि आप उन्हें स्थानांतरित कर सकते हैं, तो वहाँ होगा। स्नैपशॉट को हटाने के साथ समस्या।

यद्यपि दोनों बच्चे सबवूम्स और स्नैपशॉट एक ही पेड़ की संरचना में दिखाई देते हैं, और यहां तक ​​कि btrfs subvolume delete ..कमांड भी साझा करते हैं , वे एक ही कार्य नहीं करते हैं।


1

सबसे पहले, बनाते समय __snapshot/__active, सबवोल्यूम (घर, ऑप्ट, var) को स्नैप नहीं किया जाता है। इसके बजाय खाली निर्देशिका बनाई जाती हैं। इस प्रकार __snapshot/__activeआसानी से हटाया जा सकता है, जबकि __activeनहीं।

लेकिन मुख्य बिंदु के __activeसाथ बहाल हो रहा था __snapshot/__active। जहां तक ​​मुझे पता है, यह परमाणु रूप से नहीं किया जा सकता है। लेकिन आप ख़ुशी से mvस्नैपशॉट्स और अन्य सबवोल्यूम्स को इधर-उधर कर सकते हैं (जब तक वे लिखने योग्य हैं)। इसलिए कर रहे हैं उदा

mv __active __snapshot/__active.old
mv __snapshot/__active __active

__activeस्नैपशॉट से पुनर्स्थापित करता है, लेकिन सबवोल्यूम को स्थानांतरित कर रहा है __snapshot/__active.old/{home,opt,var}। उन्हें फिर से उपयोग करने के लिए अब आप उपयोग कर सकते हैं

mv __snapshot/__active.old/{home,opt,var} __active/

और आपको मिलेगा

ID 257 gen 59804 top level 258 path __snapshot/__active.old
ID 258 gen 59786 top level 5 path __snapshot
ID 259 gen 59802 top level 416 path home
ID 260 gen 36538 top level 416 path opt
ID 261 gen 59802 top level 416 path var
ID 416 gen 59784 top level 5 path __active

यदि आपका स्नैपशॉट केवल पढ़ने के लिए बना है, तो आप उदाहरण के लिए कर सकते हैं

mv __active __snapshot/__active.old
btrfs subvolume snapshot __snapshot/__active __active
mv __snapshot/__active.old/{home,opt,var} __active/
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.