डिफॉल्ट सबवोल्यूम (सबवॉल्ड = 0) पर btrfs का उपयोग करके लिनक्स इंस्टॉलेशन को दूसरे सबवोल्यूम में ले जाएं


15

एक रूट btrfs फाइल सिस्टम के लिए एक अधिष्ठापन करते समय, कई लिनक्स वितरण डिफ़ॉल्ट सबवॉल्म में स्थापित होते हैं। यदि असमतल छोड़ दिया जाता है, तो यह लेआउट किसी भी स्नैपशॉट या सबवोल्यूम को रूट फाइल सिस्टम के अंदर बनाने के लिए मजबूर करेगा, जो अवांछनीय हो सकता है। एक अन्य संभावित लेआउट यह होगा कि डिफॉल्ट सबवोल्यूम में एक snapshotsडायरेक्टरी और एक rootfsसबवोल्म हो, जो रूट फाइलसिस्टम हो। मैं एक लाइव एलसीडी से बूट किए बिना इस सबवोल्यूम लेआउट का उपयोग करने के लिए डिस्ट्रो-डिफॉल्ट btrfs इंस्टॉलेशन को कैसे बदल सकता हूं?

जवाबों:


15

सबसे पहले, हम डिफ़ॉल्ट सबवूलेम में इच्छित लेआउट बनाएँगे:

btrfs subvolume snapshot / /rootfs
mkdir /snapshots

ध्यान दें कि /rootfsहमारा नया रूट फाइल सिस्टम होगा, इसलिए इस चरण के बाद वर्तमान में कोई बदलाव न करें।

/rootfs/etc/fstabसिस्टम को रूट फाइलसिस्टम के रूप में नए रूटफुट सबवोल्यूम का उपयोग करने के लिए संपादित करें । उसके लिए, subvol=rootfsविकल्प को शामिल करने के लिए आपको इसे संशोधित करना होगा ।

हमारे नए रूट फाइलसिस्टम को कहीं माउंट करें, प्रासंगिक फाइल सिस्टम माउंट करें (देव, एसआईएस, प्रोक, बूट यदि आपके पास है तो), इसे चुरोट करें और ग्रब अपडेट करें:

mount -o subvol=rootfs /dev/sdXX /media/temporary
cd /media/temporary
mount -o bind /dev  dev
mount -o bind /sys  sys
mount -o bind /proc proc
mount -o bind /boot boot
chroot .
update-grub
exit

बस। रिबूट, और आपके रूट फाइलसिस्टम को रूटफुट सबवोल्यूम होना चाहिए। यदि यह सफल हुआ, तो कोई भी / स्नैपशॉट निर्देशिका नहीं होनी चाहिए। अब आप डिफ़ॉल्ट सबवूमल में पुराने रूट फाइल सिस्टम की सामग्री को हटा सकते हैं।

यदि आप चाहें, तो आप डिफ़ॉल्ट सबवूमल के लिए एक स्थायी माउंट पॉइंट बना सकते हैं:

mkdir /media/btrfs/root

तब आप mount -o subvolid=0 /dev/sdXX /media/btrfs/rootअपना स्नैपशॉट / सबवूम्स बना सकते हैं ।


1
इसके अलावा, ध्यान दें कि बढ़ते, चेरोटिंग और ग्रब को अपडेट करने के बजाय, आप बस रूट करने के लिए डिफ़ॉल्ट सबवोल्यूम सेट कर सकते हैं btrfs subvolume set-default ID /ID
सबवॉल्म

मैंने जोड़ा subvol=/rootfs(ध्यान दें /) fstabजैसा कि (btrfs wiki) [ btrfs.wiki.kernel.org/index.php/Mount_options] में वर्णित 'उचित' तरीका प्रतीत होता है
go2null

@ go2null उपयोग की समस्या यह subvol=/rootfsहै कि कोई भी प्रोग्राम जो आपके लेआउट (डिस्ट्रो इंस्टालर, उदाहरण के लिए) के बारे में पता नहीं है, इसके बजाय डिफ़ॉल्ट सबवोल्यूम को माउंट करेगा। यदि प्रोग्राम को उम्मीद है कि फाइल सिस्टम एक linux filesystem की तरह दिखाई देगा, यदि वह विफल हो जाएगा, या इससे भी बदतर होगा - अपने डिफ़ॉल्ट सबवूमल को उन चीजों के साथ भरें जो आप नहीं चाहते हैं
goncalopp

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