MD डिवाइस का नाम कैसे बदलें (mdadm)


25

यहाँ mdadm से आउटपुट है :

ARRAY / देव / md127 स्तर = raid0 संख्या-उपकरण = 2 UUID = d89d9d45: 9a420812: c44c77eb: 7ee19756 उपकरण = / dev / sd88, / dev / sda8

यह एक v0.90 सरणी है। सवाल इस प्रकार है: mdadm एक अनुसार डिवाइस के लिए नाम कैसे बताता है, इसे कहां संग्रहीत करता है और कोई इसे कैसे बदलता है?

मैं जो हासिल करना चाहता हूं वह है md127 का नाम बदलकर अपनी पसंद के हिसाब से कुछ अलग करना।

जवाबों:


31

चेतावनी : कृपया यहाँ दिए गए किसी भी सलाह का पालन करने से पहले बैकअप लें :-)

विकल्प 1:

संपादित करें /etc/mdadm.conf:

ARRAY / देव / md1 स्तर = raid0 संख्या-उपकरण = 2 UUID = d89d9d45: 9a420812: c44c77eb: 7ee19756 उपकरण = / dev / sdb8, / dev / sda8

मैंने सिर्फ आपके स्वयं के आउटपुट में प्रवेश किया और 127 को 1. रीबूट में बदल दिया और इसे अब md1 होना चाहिए।

विकल्प 2:

आप नहीं है, तो mdadm.conf, और यह md1 को इकट्ठा करने के लिए चाहते हैं स्वतः , आप यह कर सकते हैं:

mdadm में "पसंदीदा नाबालिग" की अवधारणा है। उदाहरण के लिए, एक बार एक निश्चित मामूली संख्या को एक सरणी को सौंपा जाता है, और सुपरब्लॉक में संग्रहीत किया जाता है, इसका उपयोग हर बार किया जाएगा जब यह सरणी ऑटो-असेंबल की जाती है। इसे सत्यापित करें:

mdadm - detail / dev / md127

यदि यह कहता है "पसंदीदा माइनर: 127" यह आपकी समस्या है। आपको पसंदीदा नाबालिग को अपडेट करने की आवश्यकता है। यह कैसे करना है:

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

mdadm --stop / dev / md127
mdadm --assemble --update = सुपर-माइनर / dev / md1 / dev / sdb8 / dev / sda8

तब आप अपने md127 को md1 के रूप में इकट्ठा करेंगे। और इसे भविष्य में भी इसी तरह रहना चाहिए।

1.x सरणियों के साथ:

नए सरणियाँ 'पसंदीदा माइनर' नंबर को संग्रहीत नहीं करती हैं और "--upate = सुपर-माइनर" का समर्थन नहीं करती हैं। इसके बजाय वे एक नाम संग्रहीत करते हैं जिसे निम्न के साथ बदला जा सकता है:

mdadm --stop / dev / md127
mdadm --assemble --update = name --name = 2 / dev / md1 / dev / sdb8 / dev / sda8

या आप अन्य सरणियों के साथ सब कुछ संगत रखने के लिए 'hostname: 2' को निर्दिष्ट कर सकते हैं (वर्तमान नाम --detail के साथ)।


बहुत अच्छा! मुझे इसकी ही खोज थी। तो ट्रिक भी थी सुपर-माइनर को अपडेट करने की .. धन्यवाद!
XXL

तुम एक जीवन रक्षक हो! मैंने इसका उपयोग WD NAS उपकरण का उपयोग करने के लिए किया है जो md का उपयोग करता है।
व्लाद

यह समाधान सैद्धांतिक रूप से सही है, लेकिन मेरे लिए जीवित प्रणाली पर लागू करना मेरे लिए मुश्किल था। इसके अलावा विकल्प # 1 ने मेरे लिए काम नहीं किया। मैं साथ चला गया superuser.com/questions/287462/...
Gorn

+1 समाधान के अंतिम भाग के लिए जो एक मशीन से दूसरी मशीन पर छापे सरणी ले जाते समय बहुत मददगार था। 'hostname: 2' और md12 को md1 में बदलना वास्तव में वही था जो मुझे नामों के अनुरूप रखने के लिए जरूरी था
योहोल

13

बस हैमग के उत्कृष्ट उत्तर को जोड़ने के लिए। ऐसा हो सकता है कि mdadm.conf के साथ भी, सिस्टम (Ubuntu के लिए कम से कम) अभी भी mdadm.conf पढ़ने से पहले सरणियों को ऑटो-असेंबल कर सकता है। इसलिए जब यह पता चलता है तो यह सिर्फ उन सरणियों को नजरअंदाज कर देता है जिन्हें अभी भी इकट्ठा किया गया है।

उस के लिए खाते में, sudo update-initramfs -uउचित initrd पुनर्जीवित करने के लिए चलाएँ ।

प्रासंगिक लिंक: http://ubuntuforums.org/showthread.php?t=1764861%29%3a


2
इसने मेरे लिए समस्या (एक और रिबूट के बाद) उबंटू 16.04 पर तय की। मेरे मामले में ऐसा इसलिए था क्योंकि मैंने एरे को फिर से बनाया था, और इसमें एक नया यूयूआईडी था। इसे अपडेट करने के बाद mdadm.conf, केवल रिबूट करना पर्याप्त नहीं था; initramfs को अपडेट करने ने चाल चली।
nh2

3

अन्य किसी भी उत्तर ने मेरे लिए काम नहीं किया लेकिन सेंटोस में मैंने निम्नलिखित गाइड का उपयोग किया। मुद्दा यह है कि /etc/mdadm.conf वास्तव में बूट समय पर उपयोग नहीं किया जाता है और केवल तभी अपडेट किया जाता है जब एक नया कर्नेल स्थापित होता है या इनट्राम्राम्स मैन्युअल रूप से फिर से बनाया जाता है। तो अनिवार्य रूप से आप की जरूरत है:

dracut --force

स्रोत: http://realtechtalk.com/mdadm_change_wrong_device_name_md127_fix_and_solution_in_Linux-1783-articles


2

संस्करण 0.9 सुपरब्लॉक का कोई नाम नहीं है, उन्हें संस्करण 1 में पेश किया गया था। /dev/md127यह सरणी का नाम नहीं है, यह सरणी की डिवाइस फ़ाइल का नाम है, जो छापे ब्लॉक डिवाइस के मामूली संख्या का प्रत्यक्ष परिणाम है। यह लघु संख्या मनमाने ढंग से चुनी जाती है जब सरणी इकट्ठी होती है।

UUID आपको जरूरत पड़ने पर सरणी के लिए एक विशिष्ट पहचानकर्ता प्रदान करता है। यदि आप एक मानव-पठनीय या संरचित नाम पसंद करते हैं, तो सरणी में LVM भौतिक वॉल्यूम डालें।


मुझे बाद के संस्करण से --homehost की संभावना के बारे में पता है , यही कारण है कि मैंने जानबूझकर कहा है कि यह एक v0.90 मेटाडेटा सरणी है। हालाँकि, यह मेरा इरादा नहीं है और न ही यह संगत है। अपने पोस्ट के माध्यम से देखने पर मैं कुछ हद तक यह भी नोटिस नहीं कर सकता कि मैंने कहाँ उल्लेख किया है कि / dev / md127 सरणी का नाम था । मुझे लगता है कि मैंने जो कुछ भी करना चाहते हैं उसका सटीक विवरण प्रदान किया है। तो यह सवाल अभी भी बना हुआ है कि मैं इसे कैसे बदलूं और यह "मामूली संख्या" कहाँ संग्रहीत है? मुझे लगता है कि यह सुपरब्लॉक का हिस्सा है? क्या यह सुपरब्लॉक चेकसम को बर्बाद कर देगा, जब हेक्स-एडेड होता है?
XXL

@XXL उस नंबर को कहीं भी संग्रहीत नहीं किया जाता है, यह मनमाने ढंग से चुना जाता है जब सरणी इकट्ठी होती है।
गिल्स एसओ- बुराई को रोकें '21

हम्म .. मुझे समझ नहीं आ रहा है। जब मैं mdadm -Esv करता हूं तो मुझे हमेशा / dev / md127 क्यों मिलता है ? क्या मुझे कुछ और नहीं मिलना चाहिए, जो एक स्थिर नाम के अलावा यादृच्छिक है? अगर यह वास्तव में "मनमाना" है ..
XXL
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.