कैसे एक btrfs स्नैपशॉट बनाने के लिए?


22

मेरे / घर के विभाजन में संपूर्ण भौतिक डिस्क शामिल है। इसे btrfs के रूप में स्वरूपित किया गया है। मैं इसे स्नैपशॉट करना चाहता हूं। मैं विशेष रूप से सबवोल्यूम नामकरण के बारे में उलझन में हूं।

मुझे पता है कि समान प्रश्न हैं, लेकिन प्रत्येक समान प्रश्न मुझे जो पूछ रहा है, उससे अलग कुछ पूछ रहा है (और वे पुराने हैं, जिसका अर्थ है कि शायद पुराना है, जिसे btrfs का तेजी से विकास बताया गया है)। उदाहरण के लिए, इस प्रश्न का उत्तर स्पष्ट रूप से मेरे प्रश्न का उत्तर नहीं है क्योंकि मेरा / होम विभाजन एक अलग वॉल्यूम है और btrfs का मैन पेज अब स्नैपशॉट बनाने के लिए एक अलग कमांड दिखाता है।

एक और समान समस्या, कोई ठोस समाधान नहीं
नामकरण के मुद्दों पर किसी और ने मुझे भ्रमित किया

मेरा प्रश्न:

सरल शुरू करना: यह मेरे घर विभाजन का एक सरल स्नैपशॉट लेने के लिए सही कमांड है?

btrfs subvolume snapshot /home/@home /home/@home_snapshot_20120421

मैं वास्तव में साहसी हो गया और इसका परीक्षण किया और यह काम नहीं करता है। त्रुटि है error accessing /home/@home। जैसा कि नीचे दिखाया गया है, @home सूचीबद्ध है।

मैं स्पष्ट रूप से सबवोल्यूम नामों पर भ्रमित हूं। क्या मुझे स्नैपशॉट बनाने में उनका उपयोग करने की आवश्यकता है? कुछ उदाहरण /homeस्रोत पैरामीटर के रूप में उपयोग करके घर का स्नैपशॉट दिखाते हैं , लेकिन रूट वॉल्यूम के उदाहरणों के आधार पर, यह मुझे लगता है कि मुझे उपयोग करने की आवश्यकता है /home/@home

क्या यह कमांड काम करेगा? और यदि नहीं, तो क्यों?

btrfs subvolume snapshot /home /home/@home_snapshot_20120421

क्या @सिर्फ नामकरण सम्मेलन है? क्या यह सार्थक है?

यहां कुछ आउटपुट दिए गए हैं जो प्रासंगिक हो सकते हैं:

btrfs subvolume list /home
ID 256 top level 5 path @home

मुझे यकीन नहीं है कि इसका क्या मतलब है, बिल्कुल। जब मैं कोशिश btrfs device scanकरता हूं तो यह एक त्रुटि देता है (उदाहरण के लिए डिवाइस / dev / sda1 को स्कैन करने में असमर्थ)। मेरे फाइल सिस्टम में कोई त्रुटि नहीं है। सब कुछ ठीक है।

यहाँ मेरे विभाजन हैं। एक उत्तर के जवाब में, नहीं / घर मेरा एकमात्र ट्राउट विभाजन नहीं है।

/dev/sda1: (boot partition) TYPE="ext2"  
/dev/sda2: (root partition) TYPE="btrfs"  
/dev/sdb1: (home partition) TYPE="btrfs"  
/dev/sdc1: (shared partition) TYPE="btrfs"  
/dev/sdc2: TYPE="swap"  

रेपो के बारे में फैसला करेगा समुदाय ...
वन जीरो

जवाबों:


19

Ubuntu 12.04 पर मेरे होम विभाजन का स्नैपशॉट बनाने के लिए सही कमांड क्या है?

इस तथ्य को देखते हुए कि घर एक btrfs विभाजन पर है और इसे / घर के रूप में माउंट किया जाता है, सही कमांड है:

sudo btrfs subvolume snapshot /home/ /home/<any_name_you_choose_for_the_snapshot>

यहाँ मेरे परिणाम हैं:

आज कमांड चलाने से पहले:

$ btrfs subvolume list /home  
ID 256 top level 5 path @home  
ID 257 top level 5 path @home/@snapshot_20120521_1936

आदेश:

$ sudo btrfs subvolume snapshot /home/ /home/@snapshot_20120611_1307  
Create a snapshot of '/home/' in '/home/@snapshot_20120611_1307'

आज कमांड चलाने के बाद:

$ btrfs subvolume list /home  
ID 256 top level 5 path @home  
ID 257 top level 5 path @home/@snapshot_20120521_1936  
ID 258 top level 5 path @home/@snapshot_20120611_1307

इस पद्धति के साथ एकमात्र समस्या यह है कि स्नैपशॉट्स तब दिखाई देते हैं जब आप ls (सूची) / होम।

उबंटू समुदाय विकी को इसके लिए एक समाधान के साथ अद्यतन किया गया है। यह रहा:

उबंटू के लेआउट में स्नैपशॉट के साथ काम कैसे करें

उबंटू लेआउट में / या / घर के स्नैपशॉट के साथ काम करने के लिए, एक अलग स्थान पर btrfs फाइल सिस्टम को माउंट करना बहुत सुविधाजनक है, और माउंट किए गए सबवूल्म्स के बजाय btrfs ट्री के शीर्ष से काम करें। <- यही उपाय है। दुर्भाग्य से, यह सुविधाजनक नहीं है

sudo mount /dev/sdX# /mnt

स्नैपशॉट बनाने के लिए मैं उसी सिंटैक्स का उपयोग करता हूं जिसका मैंने ऊपर उपयोग किया है:

sudo btrfs subvolume snapshot /mnt/@ /mnt/@_snapshot

यह @_snapshot नाम के @ सबवूलेशन का एक स्नैपशॉट बनाएगा जो कि btrfs ट्री के शीर्ष पर भी स्थित है। चूंकि यह पेड़ के शीर्ष में है, यह माउंटेड वॉल्यूम में फाइलों को सूचीबद्ध करते समय दिखाई नहीं देगा।

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

sudo mv /mnt/@ /mnt/@_badroot
sudo mv /mnt/@_snapshot /mnt/@

स्नैपशॉट उपयोग को हटाने के लिए:

sudo btrfs subvolume delete /mnt/@_badroot

btrfs स्नैपशॉट अपने आप में सबवोल्यूम हैं, और पुराने @ सबवूल को इस तरह से डिलीट करना ठीक है, बशर्ते हमारा कोई रिप्लेसमेंट हो।

नोट: btrfs- उपकरण कमांड set-defaultउबंटू के लेआउट को तोड़ देगा।


तो तुम सही हो? अब आपको अपना स्नैपशॉट माउंट करने में सक्षम होना चाहिए।
टर्बो

मैंने वास्तव में उन्हें अभी तक बढ़ाने की कोशिश नहीं की है। और मैंने बस apt-btrfs-snapshot पैकेज के बारे में psusi का उत्तर देखा। यह दिलचस्प लग रहा है, है ना?
मोनिका सेलियो

हाँ, मैंने तीसरे बिंदु में भी इसका उल्लेख किया है। क्षमा करें इसे इंगित करना था;)
टर्बो

मेरा सुझाव है कि आप अपने समाधान को उत्तर के रूप में चिह्नित करें।
टर्बो

स्नैपशॉट का एक समाधान है जब आप ls / home दिखाते हैं। मैं अपने जवाब को अब जानकारी के साथ संपादित कर रहा हूं।
मोनिका सेलियो 28/12 के लिए 0X

11

ठीक है पहली बातें पहले:

  • आपके द्वारा देखे जा रहे सबवोल्यूम का नाम इस प्रकार @homeहै btrfs subvolume list /home। इसमें आरूढ़ है /home। @home सबवूमल का नाम है, इसमें आईडी 256 भी है, इसलिए सबसे अधिक संभावना है कि आपके / घर को btrfs के रूप में बनाया गया है।

  • अब आपको @home का स्नैपशॉट बनाना है: sudo btrfs subvolume snapshot /home/ /home/@home_snapshot_20120421

  • उपवेद का कोई भी नाम हो सकता है। @ @ स्थापित समय पर उबंटू का सम्मेलन है। (यदि आप apt-btrfs-snapshotरूट सबवोल्यूम का उपयोग करते हैं तो इसे @btw नाम दिया जाना चाहिए ।) समुदाय विकी दृढ़ता से @रूट और @homeघर के रूप में रखने की सिफारिश करता है क्योंकि यह उस तरह से घुड़सवार होता है। यह विशेष रूप से महत्वपूर्ण है यदि आप वापस रोल करना चाहते हैं: आपको btrfs सबवोल्यूम सेट-डिफॉल्ट का उपयोग नहीं करना चाहिए (उद्देश्य से सिंटैक्स हाइलाइटेड नहीं)।

  • के लिए btrfs device scanआप का उपयोग करने के लिए है sudo

  • एक सबवोल्यूम को हटाने के लिए जिसका आप उपयोग कर सकते हैं sudo btrfs subvolume delete @home_snapshot_20120421

सभी btrfs आदेशों रूप में लंबे समय में संक्षिप्त किया जा सकता है के रूप में वे स्पष्ट कर रहे हैं, तो उदाहरण के लिए sudo btrfs device scanकरने के लिए छोटा किया जा सकता है sudo btrfs d s, sudo btrfs dev scया बीच में कुछ भी।

मुझे उम्मीद है कि आपके सवालों के जवाब दिए। नियमित बैकअप लेने के लिए कुछ उपकरण हैं, btrfs- स्नैपशॉट-रोटेशन एक उदाहरण है। सावधानी के साथ उन का उपयोग करें क्योंकि उनमें से कोई भी वास्तव में परिपक्व नहीं है या पर्याप्त कर्षण प्राप्त किया है, अर्थात उनमें बहुत अच्छी तरह से कीड़े हो सकते हैं।


मुझे एक त्रुटि मिलती है:$ sudo btrfs subvolume snapshot @home home/@snapshot_20120611_1257 ERROR: error accessing '@home'
मोनिका सेलियो

इसके अलावा, मुझे btrfs device scanअभी तक सफलता नहीं मिली । कोई भी संस्करण, जिसमें sudoत्रुटि शामिल है, "एरर: डिवाइस को स्कैन करने में असमर्थ '/ dev / sdX'" देता है, जहां X का कोई मान्य नाम जैसे a, a1, b, आदि है
मोनिका सेलियो

@ ओनेज़ेरो: मेरे पास अभी तक सभी उत्तर नहीं हैं, लेकिन मैंने उबंटू 12.04 पर अपने घर विभाजन का स्नैपशॉट बनाने के लिए सही कमांड का पता लगाया और मैंने नीचे दिए गए उत्तर के रूप में वह जानकारी प्रदान की।
मोनिका सेलियो

यह वास्तव में अजीब है। मैंने अपने btrfs विभाजन की जाँच की btrfs sub snap @ /mnt/randomऔर यह मेरे लिए काम किया। तब फिर से मैं / mnt जहां @ @ माउंट किया गया था। भ्रम के लिए खेद है
टर्बो

@ टर्बो: आपका जवाब बहुत मददगार था। मदद की कोशिश करने के लिए माफी मांगने की जरूरत नहीं है। यहां तक ​​कि उबंटू पृष्ठ भी स्पष्ट नहीं हैं। हम इसे अंततः पता लगा लेंगे।
मोनिका सेलियो

10

स्थापित apt-btrfs-snapshotपैकेज है, और उसके subcommands का उपयोग list, snapshot, deleteऔर set-default

यह एक स्क्रिप्ट है जो निचले स्तर के btrfsकमांड को लपेटता है । यह कहीं न कहीं btrfs रूट फाइलसिस्टम को पहले माउंट करके काम करता है। उस से मेरा तात्पर्य वास्तविक जड़ से है, जैसा /@कि सामान्य रूप से स्थापित होने वाले सबवोल्यूम के विपरीत है /। दूसरे शब्दों में, आप को चलाने के लिए की जरूरत है mount /dev/sda1 /mntताकि आप सबवॉल्यूम कि के रूप में सूचीबद्ध किया जाएगा देख सकते हैं /mnt/@, /mnt/@homeऔर किसी भी अन्य लोगों ने आपको बनाया है। वहां से आप कर सकते हैं btrfs subvolume snapshot /mnt/@home @snapshot-today, जो /@homeनाम का एक स्नैपशॉट बनाएगा /@snapshot-today। इसकी तुलना रनिंग से करें btrfs subvolume snapshot /home /home/@snapshot_today, जो स्नैपशॉट को एक बच्चे के रूप में बनाता है /@home, इसलिए यह दिखाता है कि आप ls /homeऔर इसका असली नाम कब है /@home/@snapshot-today

एक स्नैपशॉट को वापस रोल करना केवल एक सरल नाम बदलना ऑपरेशन है mv /mnt/@home @backup ; mv /mnt/@snapshot-today @home:। अगली बार बूट, जब यह माउंट करने के लिए चला जाता है /@homeमें /home, यह स्नैपशॉट मिल जाएगा।

यह अपने सिर को चारों ओर लपेटने के लिए थोड़ा मुश्किल है क्योंकि आपको इस बात को ध्यान में रखना होगा कि कैसे btrfs चीजों को देखता है बनाम कैसे कर्नेल चीजों को देखता है, जो माउंट विकल्पों (विशेष रूप से तर्क = तर्क) से प्रभावित होता है।

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