संपीड़न के साथ btrfs रूट का उपयोग करने के लिए ट्रिक इंस्टॉलर


9

मैं BTRFS रूट विभाजन पर Maverick स्थापित करना चाहता हूं। मज़ेदार या परीक्षण के लिए नहीं, लेकिन क्योंकि मुझे एक छोटी फ्लैश डिस्क (4 जीबी) के कारण संपीड़न की आवश्यकता है ।

अब 10.10 इंस्टॉलर अंततः btrfs का समर्थन करता है, लेकिन इसमें compressध्वज को सक्षम करने का कोई तरीका नहीं है। क्या मैं किसी तरह इंस्टॉलर को धोखा दे सकता हूं? पुराने संस्करणों के लिए और LUKS पाने के लिए आप विभाजन को प्री-माउंट कर सकते हैं। या btrfs + कंप्रेस प्री इंस्टाल को सक्षम करने के लिए एक आसान मंकीपैक संभव है?


क्या आपने वैकल्पिक (टेक्स्ट-मोड इंस्टॉलर) डिस्क की कोशिश की है?
ओली

@ ओली: अभी अभी कोशिश की है। -Alternate डेबियन इंस्टॉलर अधिक विस्तृत है। लेकिन यह केवल मानक फाइलसिस्टम झंडे (noatime, नोडव, noexec) को सूचीबद्ध करता है। यह compressया जैसे btrfs- विशिष्ट विकल्प सेट करने से रोकता है ssd। कोई भाग्य नहीं।
मारियो

जवाबों:


2

मैं इस धागे के पार आया क्योंकि मैं एक फ्लैश ड्राइव पर लिनक्स मिंट डेबियन संस्करण को स्थापित करने और गेट-गो से संकुचित btrfs पर स्थापित करना चाह रहा था। हालाँकि ये समाधान सीधे मेरे परिणामों तक पहुँचने के लिए लागू नहीं थे लेकिन मैंने अपने लक्ष्य तक पहुँचने के लिए इस जानकारी का कुछ उपयोग किया।

समस्या यह थी कि इंस्टॉलर का विभाजन और विभाजन को प्रारूपित करना और फ़ाइलों को कॉपी करना शुरू करना एक दूसरे के ठीक बगल में था, इसलिए मैं ऊपर दूसरों द्वारा उल्लिखित "रिमाउंट" विकल्प का प्रदर्शन करने में असमर्थ था।

इंस्टॉलर स्क्रिप्ट का LMDE संस्करण अजगर (usr / lib / लाइव-इंस्टॉलर / इंस्ट्रूमेंटहोम) में था। मुझे यकीन नहीं है कि यह उबंटू के साथ समान है, लेकिन अगर यह है, तो यह सीधे लागू होगा। इसने मुझे स्क्रिप्ट को संपादित करने और इस पंक्ति को उस रेखा के नीचे जोड़ने की अनुमति दी जो मूल रूप से "/" के लिए विभाजन को माउंट करती है।

os.system("mount -o remount,compress /dev/sda3 /target -t btrfs")

आपके डिवाइस के आधार पर "/ देव / sda3" अलग-अलग होंगे।

मैं समझता हूं कि यह एक उबंटू मंच है, लेकिन जैसा मैंने कहा कि यह खोज के साथ आया था और यह समाधान सीधे प्रासंगिक होगा यदि इंस्टॉलर अजगर आधारित है। हम सभी डेबियन यहाँ वैसे भी हैं, है ना !?


10

ऐसा करने का एक आसान तरीका mountलाइव वातावरण की कमांड को बदलना है।

  1. लाइव सत्र के लिए हमेशा की तरह बूट करें।
  2. mountनिष्पादन योग्य को किसी अन्य स्थान पर ले जाएं :

    sudo mv /bin/mount /bin/mount.bin
    
  3. sudoedit /bin/mountनिम्नलिखित स्क्रिप्ट का उपयोग करके एक नई फ़ाइल को संपादित करें और इसमें दिए गए विकल्पों को बदलें (जैसे आप चाहते हैं, यहाँ हमने जोड़ा है compress):

    #!/bin/sh
    if echo "$@" | grep -q -- "-t btrfs"; then
        /bin/mount.bin "$@" -o compress
    else
        /bin/mount.bin "$@"
    fi
    

    आप विभिन्न उपकरणों और फाइल सिस्टम के लिए विभिन्न माउंट विकल्पों का उपयोग करने के लिए और चेन एस के /dev/sda1बजाय ब्लॉक डिवाइस से भी मिलान कर सकते हैं ।-t btrfselif

  4. नई स्क्रिप्ट पर मूल अनुमतियों की प्रतिलिपि बनाएँ:

    sudo chmod --reference=/bin/mount.bin /bin/mount
    
  5. हमेशा की तरह स्थापित करें और आपके btrfs विभाजन को निर्दिष्ट विकल्पों (यहां, compress) के साथ रखा जाएगा ।

  6. इंस्टॉलेशन समाप्त होने के बाद, लाइव एनवायरमेंट से बाहर निकलने से पहले, /etc/fstabनिर्दिष्ट विकल्पों से मिलान करने के लिए नए इंस्टॉल किए गए सिस्टम को बदल दें , इसलिए यह नए बूट्स पर समान विकल्पों का उपयोग करेगा।

मैंने उपयोग किया: defaults,noatime,compress-force=lzo,space_cacheमाउंट विकल्प के रूप में।

यह मात्रात्मक दैनिक (30/6/12) के साथ काम करता है।

मैं के रूप में btrfs विभाजन /और एक स्वैप विभाजन का उपयोग किया।

क्रेडिट इस पोस्ट ( इस थ्रेड में ) पर जाते हैं, जो बदले में इस ब्लॉग पोस्ट का हवाला देते हैं ।


काश मैं इसे ट्रिपल-अप कर सकता, क्योंकि यह तीसरी बार है जब मैं भूल गया कि इसे कैसे ठीक से करना है, और यह अभी भी है जहां मैं इसे गहनता से समाप्त कर देता हूं। हालांकि आपको अधिकांश बिंदुओं पर sudo का उपयोग करने की आवश्यकता है, ज़ाहिर है, जो कम अनुभवी उपयोगकर्ताओं के लिए स्पष्ट नहीं हो सकता है। इतना ठंडा!
डैनियलस्मेडगार्डबस

4

इंस्टॉलर आपके विभाजन को मापने के बाद, आप एक शेल पर स्विच करने और ए करने की कोशिश कर सकते हैं mount -o remount,compress /target, यह काम कर सकता है।


यह काम लग रहा था! (हालांकि मैं कुछ और ऊपर खराब कर दिया ..) लेकिन यह mount -o remount,compress,ssd /dev/mapper/target /target -t btrfsस्रोत डिवाइस के साथ पूर्ण कमांड की आवश्यकता थी ।
मारियो

सबसे श्रेष्ठ। कुछ परीक्षण के बाद, रिमाउंट ट्रिक ने त्रुटिपूर्ण रूप से काम किया। 1.2G के बजाय 2.6G का उपयोग किया, ध्यान देने योग्य गति प्राप्त।
mario

2

13.04 (रेयरिंग रिंगटोन) के रूप में, आपको बिना किसी संपीड़न के एक btrfs वॉल्यूम पर स्थापित करने में सक्षम होना चाहिए और फिर नई स्थापना के लिए बूट होने के बाद पूरे वॉल्यूम पर प्रत्येक फ़ाइल को संपीड़ित करना चाहिए।

ओरेकल के प्रलेखन के अनुसार, आप मौजूदा फ़ाइलों को मौजूदा फाइल सिस्टम पर -clzo विकल्प के साथ डीफ़्रैग्मेन्ट करके संपीड़ित कर सकते हैं।

sudo btrfs filesystem defragment -clzo /

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

देखें: http://docs.oracle.com/cd/E37670_01/E37355/html/ol_use_case1_btrfs.html

एक बार जब आप कर लें, तो अपनी पसंद की लाइन में / etc / fstab में compress = lzo (या compress = zlib जोड़ें, लेकिन lzo को गति के लिए अनुशंसित किया जाता है) जोड़ें और रिबूट करें ताकि डिस्क पर लिखी गई कोई भी फाइल संपीड़ित हो जाए।


2

busyboxअधिकांश आदेशों के लिए अधिक हालिया वितरण का उपयोग किया जाता है mount। इन विज्ञप्ति में, /bin/mountकरने के लिए एक सिमलिंक है /bin/busyboxऔर सिमलिंक चाहिए सही ढंग से काम करने के लिए "माउंट" नाम दिया जाना है, और नहीं "mount.bin"। इस प्रकार, Mskje द्वारा उपरोक्त उत्तर को निम्नलिखित में बदला जा सकता है:

  1. लाइव सत्र के लिए सामान्य रूप से बूट करें।
  2. sudo rm /bin/mount
  3. sudo mkdir /bin/orig
  4. sudo ln -s /bin/busybox /bin/orig/mount
  5. sudo nano /bin/mount - यह एक नई स्क्रिप्ट बनाएगा।
  6. इसे स्क्रिप्ट में कॉपी करें और सहेजें (आप की तरह विकल्पों को बदलें, यहाँ संक्षिप्त करें):

    #!/bin/sh  
    if echo $@ | grep "btrfs" >/dev/null; then  
        /bin/orig/mount $@ -o compress  
    else  
        /bin/orig/mount $@  
    fi
    
  7. sudo chmod 755 /bin/mount निष्पादन योग्य बनाने के लिए।

  8. सामान्य के रूप में स्थापित करें और आपके btrfs विभाजन को निर्दिष्ट विकल्पों (यहां सेक) के साथ माउंट किया जाएगा।
  9. इंस्टॉलेशन समाप्त होने के बाद, लाइव एनवायरमेंट से बाहर निकलने से पहले, fstabनिर्दिष्ट विकल्पों से मिलान करने के लिए नए इंस्टॉल किए गए सिस्टम को बदल दें , इसलिए यह नए बूट्स पर समान विकल्पों का उपयोग करेगा।

1

मैन्युअल रूप से चयन: / देव / sda1 के लिए btrfs के रूप में / कुछ ext? / कुछ स्वैप करें

एक टर्मिनल में: सुडो बैश

प्रेस स्थापित करें

टर्मिनल लाइन पर एंटर दबाएं: (sudo done) माउंट-टी btrfs -o रीमाउंट, सेक / देव / sda1 / लक्ष्य


1

आप मैन्युअल रूप से mkfs.btrfs कमांड चलाकर किसी भी या सभी नए Btrfs फीचर्स प्राप्त कर सकते हैं । वैकल्पिक इंस्टॉलर अपनी पसंद का एक पिछले चरण पर वापस जाने के लिए किसी भी बिंदु पर एक विकल्प होता है। इंस्टॉलर के btrfs बनाने के बाद, आप इसका उपयोग कर सकते हैं, अपने खुद के btrfs बना सकते हैं और फिर इंस्टॉलर को पिछले चरण में शुरू कर सकते हैं ताकि आपके fs का उपयोग हो जाए।

  1. विभाजन चरण के बाद इंस्टॉलर को चलाएं।
  2. इसे आधार प्रणाली स्थापित करने दें।

  3. alt-F2 टर्मिनल पर जाते हैं और mkfs.btrfs - / dev / sdXY चलाते हैं

  4. इंस्टॉलर alt-F1 पर वापस जाएं
  5. "गो बैक बटन" पर क्लिक करें फिर विभाजन विकल्प को फिर से चुनें। चूक सुधार नहीं करने के लिए होगी ताकि आप बस जारी रख सकें। यह आधार प्रणाली को फिर से स्थापित करेगा। पुनः स्वरूपण नहीं करने के बारे में चेतावनी के लिए हाँ।

  6. का आनंद लें।


1

मैं इसे छड़ी पर ext4 विभाजन की जगह एक संकुचित btrfs विभाजन के साथ काम करके मिला। यह दूसरे कंप्यूटर का उपयोग करके किया जा सकता है।

  1. के माध्यम से सब कुछ नकल

    sudo cp -ar / ext4Partition / * / backupspace /
  2. एक भाग के साथ gparted का उपयोग कर विभाजन को बदलें

  3. सुडो माउंट माउंट -o कंप्रेस / देव / yourdevice / btrfsPartition का उपयोग करके नया पार्ट माउंट करें
  4. सब कुछ वापस कॉपी करें

    sudo cp -ar / backupspace / * / btrfsPartition /
  5. अद्यतन / btrfsPartition / etc / नए डिवाइस uuids और नए विभाजन प्रकार के लिए fstab। रिमाउंट ऑप्शन को हटा दें, क्योंकि btrfs में यह नहीं है।
  6. बूट लोडर को पुन: स्थापित करें (जैसे BootRepair के माध्यम से )

नोट: निर्देशिका /btrfsParition, /ext4Partitionऔर /backupspaceजैसा आप चाहते हैं सेट किया जा सकता है।


0

आप बस बाद में संपीड़न जोड़ सकते हैं। /etc/fstabअपने रूट फाइल सिस्टम के लिए लाइन खोलें और संपादित करें। compressइस तरह माउंट-विकल्प में जोड़ें :

UUID=0c8e6d48-e6b3-425a-ab33-24205a9cb586 / btrfs defaults,compress 0 1

अब या तो रीमाउंट करें या रिबूट करें और यह मत भूलो कि / बूट btrfs पर नहीं रह सकता है, फिर भी, चूंकि GRUB2 इसका समर्थन नहीं करता है।


2
जहाँ तक मुझे पता है, fstab में कंप्रेस को जोड़ने से मौजूदा फ़ाइलों पर कोई प्रभाव नहीं पड़ता है (जो कि 4 जीबी SSD का एक बड़ा हिस्सा पहले से ही होगा जब आप इसे इंस्टॉल करने के बाद ही जोड़ते हैं!)। मुझे लगता है कि लाइव-सीडी का उपयोग करते समय विभाजन को पूर्व-स्थापित करना और स्थापित करना सबसे अच्छा विकल्प है।
जेएनसी

हां, बाद में विकल्प जोड़ने से फाइलें संपीड़ित नहीं होती हैं। पिछली बार मैंने एक पूर्ण फ़ाइल बैकअप किया था, फिर फाइल सिस्टम झंडे को बदल दिया, और बाद में सब कुछ खत्म कर दिया। बहुत बोझिल। और यह सिर्फ इतना है कि tarकभी-कभी कुछ फ़ाइल विशेषताओं को भूल जाता है, सुनिश्चित नहीं है कि क्या मैंने झूठ में पैक्स या rsync का उपयोग किया है।
मारियो

क्या होगा यदि आप केवल ubuntu-न्यूनतम स्थापित करते हैं और बाकी को बाद में स्थापित करते हैं?
मुनि

0

आप हमेशा प्राचीन चीनी कहावत का पालन कर सकते हैं:

यदि आप इंस्टॉलर विभाजन को क्या पसंद नहीं करते हैं, तो इसे स्वयं विभाजित करें और इंस्टॉलर को उन विभाजनों पर स्थापित करने के लिए कहें।


पुराने चीनी कहावतों पर सवाल उठाने वाला मैं कौन हूं? लेकिन क्या नया 10.10 इंस्टॉलर एक घुड़सवार / लक्ष्य का सम्मान करता है? यदि यह रीमाउंटिंग पर जोर देता है, तो मेरे सभी कीमती मैनुअल विभाजन व्यर्थ हो जाएंगे।
mario

उत्तीर्ण करना। अगर मैं आईएसओ अभी भी था, मैं इसे VirtualBox में परीक्षण था लेकिन फिर से, मुझे लगता है कि आप शायद वैकल्पिक इंस्टॉलर के साथ बेहतर किस्मत होगा (यह उपयोगकर्ता के हस्तक्षेप करने के लिए बेहतर प्रतिक्रिया करने के लिए जाता है)
ओली

बस इसे एक और चक्कर दिया। दोनों इंस्टॉलर बहुत अनमाउंट-खुश हैं। मैनुअल विभाजन अभी भी LUKS के लिए एक समाधान है, लेकिन मैनुअल माउंट विकल्प btrfs के लिए बने नहीं रहते हैं। वैकल्पिक रूप से स्थापित विज़ार्ड गैर-मानक विकल्पों से आम तौर पर कम खुश लगता है, लेकिन कम से कम आप देख सकते हैं कि क्या चल रहा है। डेस्कटॉप इंस्टॉलर दो या तीन बार लक्ष्य को अनमाउंट करता है।
मारियो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.