बूट विभाजन को lvm पर डालने की अनुशंसा क्यों नहीं की जाती है?


12

मैंने कहीं पढ़ा है कि यह lvm आधारित विभाजन पर बूट विभाजन को रखने के लिए अनुशंसित नहीं है। लेकिन, मैं इसे वैसे भी कर रहा हूं। तब मैंने इस पर एक ही समस्या का सामना किया है, कभी-कभी जब मैं एक नया लिनक्स डिस्ट्रो स्थापित करता हूं और इसे lvm पर बूट विभाजन डाल देता हूं, तो ग्रब इसे पहचानता है। grub-mkconfigआदेश आम तौर पर पैदा करने पर एक गलती करते हैं grub.cfgफ़ाइल। लेकिन, अगर यह lvm आधारित बूट विभाजन पर एकमात्र समस्या है, मुझे लगता है कि यह ठीक है। क्योंकि मुझे पता है कि इसे कैसे ठीक करना है, बस बूट करने के लिए इच्छित बूट विभाजन को एक उचित पता दें और फिर सब कुछ ठीक हो जाता है।

तो, क्या इसके अलावा कुछ और है जो lvm समस्या पैदा कर सकता है? क्योंकि, मेरी राय में lvm बहुत लचीला है और सिस्टम को धीमा नहीं करता है।

जवाबों:


13

यह एक प्रदर्शन समस्या नहीं है, यह एक समस्या निवारण है और चीजों को ठीक करना समस्या है। /bootबूटस्ट्रैप स्थान है - कुछ फाइलें हैं जो आपके सिस्टम में बाकी सभी चीजों को शुरू करती हैं।

और कभी-कभी आपको एक समस्या को ठीक करने के लिए वहां (जैसे कि ग्रब कॉन्फिग या समान) ठीक करने के लिए प्रहार करने की आवश्यकता होती है।

यदि आपको ऐसा करना है, तो फ़ाइल सिस्टम का एक सामान्य कॉमन डिनोमिनेटर सबसे कम होना उपयोगी है, इसे जितना संभव हो उतना आसान बनाने के लिए जैसे कि आपको ड्राइव को निकालना होगा और इसे एक अन्य बॉक्स में एक कॉन्फिगर फाइल को एडिट करना होगा।

यदि आप इस स्थिति में हैं, तो आप अपने LVM को जीवन में 'ठगना' नहीं चाहते हैं , बस इसे पढ़ने में सक्षम होने के लिए :)।


1
या बस GRUB के पुराने संस्करण LVM को नहीं समझते हैं।
तोगरोल्ड

अच्छी बात यह भी है कि lvm एक जटिल सेटअप है, जिसमें संभवतः कई डिस्क शामिल हैं। यदि आपका बूट लोडर LVM पर निर्भर करता है, तो उदाहरण के लिए आप LVM के साथ किसी समस्या को ठीक करने के लिए एकल उपयोगकर्ता मोड में बूट नहीं कर सकते हैं (एक असफल डिस्क के रूप में इस तरह के
प्रतिबंध के

3

मेरे लिए, यदि आप कहते हैं, तो ग्रब आपके LVM /bootफाइल सिस्टम का पता नहीं लगा सकता है और grub-mkconfig आमतौर पर जनरेट करने में कोई गलती करता है grub.cfg, जो इस कॉन्फ़िगरेशन से बचने और उस चीज़ पर स्विच करने के लिए पर्याप्त कारण लगता है जो ग्रब बेहतर समर्थन करता है। जब आप कहते हैं, "अभी-अभी इच्छित बूट पार्टीशन को एक उचित पता दें", तो मुझे नहीं पता कि "एड्रेस" से आपका क्या मतलब है या आप वास्तव में वर्कअराउंड के रूप में क्या कर रहे हैं, लेकिन ईमानदारी से यह एक डरावनी और नाजुक हैक की तरह लगता है।

एक मूल और वस्तुतः आवश्यक विशेषता के रूप में, बूटलोडर एक सरल डिस्क विभाजन पर एक साधारण फाइल सिस्टम तक पहुंच सकता है और वहां से अगले चरण को लोड कर सकता है। यह सब वास्तव में करने की जरूरत है। बूटलोडर में अधिक सुविधाएँ, जैसे कि एलवीएम जैसे पार्सिंग कंटेनर और प्री-बूट वातावरण में कई डिस्क को टटोलना, बस अधिक लिनक्स (कर्नेल) सुविधाओं का मतलब है कि ग्रब (अधिक कोड, अधिक बग) में डुप्लिकेट करने की आवश्यकता है, लेकिन वास्तव में कभी नहीं बिल्कुल दोनों वातावरण (अधिक भ्रम) और अधिक समग्र जटिलता में एक ही तरह से काम करते हैं। बूटस्ट्रैपिंग के लिए, बेहतर सरल है।


मुझे पता से क्या मतलब है डिवाइस पथ। कलि लिनेक्स में, grub-mkconfigमूल रास्ता देने के लिए गलती की है /dev/dm-0क्योंकि यह लगातार नहीं है। इसलिए, मैंने इसे उचित पथ में बदल दिया, जो कि /dev/mapper/lvm-kali--bootमेरीकेस में है।
Mas Bagol

समझा। यह अलग है। यह रूट फाइलसिस्टम पथ है (जो कर्नेल कमांड लाइन के रूप में जोड़ा जाता है root=<path>) और जहां /bootस्थित है वहां से कोई लेना-देना नहीं है। grub-mkconfigनिश्चित रूप से गलत नहीं होना चाहिए। इसके आउटपुट के अनुरूप होना चाहिए grub-probe --target=device /
सेलाडा

क्षमा करें, मेरा मतलब /dev/mapper/lvm-kali--rootनहीं है boot। टाइपो
मास बागोल

ओह, मैंने टाइपो पर ध्यान भी नहीं दिया था। मैं के /dev/mapper/lvm-kali--rootसाथ शुरू पढ़ा !
सेलाडा

आप बूट (/ कम से कम 1 दुनिया के बाहर) का एक कम सामान्य (बूट के बाहर) विकल्प का उपयोग कर सकते हैं = / dev / mapper / $ UUID या $ lvm-name
linuxdev2013

1

मैं फेडोरा पर वर्षों से LVM "/" फाइलसिस्टम के अंदर "/ बूट" निर्देशिका का उपयोग करता हूं और कभी भी समस्या नहीं थी।

आपको केवल उस एकल भौतिक डिस्क को बनाने के लिए ध्यान रखना है जहां "/" आपके वॉल्यूम समूह पर एकल रहता है। इस भौतिक ड्राइव के लिए मेरे पास एक "vgmain" वॉल्यूम समूह है और बाकी सभी के लिए एक "vgdata" है। यदि आप किसी समस्या निवारण स्थिति में अपनी ड्राइव को किसी अन्य कंप्यूटर पर ले जाने की आवश्यकता है, तो यह महत्वपूर्ण है। LVM काम नहीं करेगा यदि यह कई भौतिक ड्राइव द्वारा रचित है। लेकिन यह अगर यह सिर्फ एक द्वारा रचित है।

लेकिन मुझे इस समस्या निवारण स्थिति से कभी नहीं गुजरना पड़ा।

नवीनतम फेडोरा इंस्टॉलेशन आपको स्वचालित रूप से ऐसा नहीं करने देंगे। आपको अपना "/ बूट" इंस्टॉल करने के दौरान एक नियमित विभाजन में रखना होगा, फिर सामान्य रूप से बूट करना होगा और फिर सामग्री को मैन्युअल रूप से LVM "/" फाइल सिस्टम में ले जाना होगा। सुनिश्चित करें कि आप LVM "/" के तहत एक सादे निर्देशिका के रूप में "/ बूट", और पुराने बूट विभाजन के रूप में "/ बूट 2" देखने के लिए पुनर्गठित करते हैं और फिर "ग्रब स्थापित / देव / sda" या कुछ इसी तरह बनाते हैं। रिबूट और फिर "/ boot2" फाइल सिस्टम को हटा दें और विभाजन को वापस LVM में शामिल करें, जो प्रयोग करने योग्य हो।

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