วิธีเปลี่ยนชื่อของอุปกรณ์ MD (mdadm)


25

นี่คือเอาต์พุตจากmdadm -Esv :

ARRAY / dev / md127 level = raid0 num-devices = 2 UUID = d89d9d45: 9a420812: c44c77eb: อุปกรณ์ 7ee19756 = / dev / sdb8, / dev / sda8

นี่คืออาร์เรย์ v0.90 คำถามมีดังนี้: mdadm กำหนดชื่อให้กับอุปกรณ์อ้างอิงได้อย่างไรมันเก็บไว้ที่ไหนและจะเปลี่ยนได้อย่างไร?

สิ่งที่ฉันต้องการทำให้สำเร็จคือเปลี่ยนชื่อmd127เป็นสิ่งที่แตกต่างจากที่ฉันชอบ

คำตอบ:


31

คำเตือน : โปรดสำรองข้อมูลก่อนที่จะทำตามคำแนะนำใด ๆ ที่นี่ :-)

ตัวเลือกที่ 1:

แก้ไข/etc/mdadm.conf:

ARRAY / dev / md1 level = raid0 num-devices = 2 UUID = d89d9d45: 9a420812: c44c77eb: อุปกรณ์ 7ee19756 = / dev / sdb8, / dev / sda8

ฉันเพิ่งป้อนเอาต์พุตของคุณเองและเปลี่ยน 127 เป็น 1 รีบูตและควรเป็น md1 ทันที

ตัวเลือก # 2:

หากคุณไม่มีmdadm.confและต้องการให้มันรวมตัวกับ md1 โดยอัตโนมัติคุณสามารถทำได้:

mdadm มีแนวคิดของ "รองลงมา" เช่นเมื่อมีการกำหนดหมายเลขย่อยให้กับอาร์เรย์และเก็บไว้ใน superblock มันจะถูกใช้ทุกครั้งที่อาร์เรย์นี้ประกอบอัตโนมัติ ยืนยันสิ่งนี้:

mdadm - รายละเอียด / dev / md127

หากมีข้อความว่า "ผู้เยาว์ที่ต้องการ: 127" นี่เป็นปัญหาของคุณ คุณต้องอัปเดตผู้เยาว์ที่ต้องการ วิธีทำ:

คุณไม่สามารถเปลี่ยนผู้เยาว์ที่ต้องการ คุณต้องบูตเข้าสู่การกู้คืนหรือโหมดผู้ใช้เดี่ยวหากนี่เป็นอุปกรณ์รูทของคุณให้ถอดระบบไฟล์หลังจากนั้น:

mdadm - หยุด / dev / md127
mdadm - ประกอบ - อัปเดต = super-minor / dev / md1 / dev / sdb8 / dev / sda8

จากนั้นคุณจะรวม md127 ของคุณเป็น md1 และมันควรจะอยู่ต่อไปในอนาคตเช่นกัน

ด้วย 1.x อาร์เรย์:

อาร์เรย์ที่ใหม่กว่าจะไม่เก็บหมายเลข 'ผู้เยาว์ที่ต้องการ' และไม่สนับสนุน "--update = super-minor" แต่พวกเขาเก็บชื่อซึ่งสามารถเปลี่ยนแปลงได้ด้วย:

mdadm - หยุด / dev / md127
mdadm - ประกอบ - อัปเดต = ชื่อ - ชื่อ = 2 / dev / md1 / dev / sdb8 / dev / sda8

หรือคุณสามารถระบุ 'ชื่อโฮสต์: 2' เพื่อให้ทุกอย่างสอดคล้องกับอาร์เรย์อื่น ๆ (ค้นหาชื่อปัจจุบันด้วย --detail)


ดีมาก! สิ่งที่ฉันกำลังมองหา ดังนั้นเคล็ดลับคือการอัปเดตสุดยอดผู้น้อย .. ขอบคุณ!
XXL

คุณเป็นผู้ช่วยชีวิต! ฉันใช้สิ่งนี้เพื่อปลดบล็อคอุปกรณ์ WD NAS ที่ใช้ md
Vlad

การแก้ปัญหานี้ถูกต้องตามหลักวิชา แต่มันยากสำหรับฉันที่จะนำไปใช้กับฉันในระบบการใช้ชีวิต ตัวเลือก # 1 ไม่ทำงานสำหรับฉัน ฉันไปกับsuperuser.com/questions/287462/…
gorn

+1 สำหรับส่วนสุดท้ายของโซลูชันซึ่งมีประโยชน์มากเมื่อย้ายอาร์เรย์การโจมตีจากเครื่องหนึ่งไปยังอีกเครื่องหนึ่ง 'ชื่อโฮสต์: 2' และการเปลี่ยน md127 เป็น md1 เป็นสิ่งที่ฉันต้องการเพื่อให้ชื่อสอดคล้องกัน
yahol

13

เพียงเพิ่มคำตอบที่ยอดเยี่ยมของ haimg อาจเกิดขึ้นได้แม้ว่าจะมี mdadm.conf ระบบ (อย่างน้อยสำหรับ Ubuntu) อาจยังคงรวบรวมอาร์เรย์โดยอัตโนมัติก่อนที่จะอ่าน mdadm.conf ดังนั้นเมื่อพบว่ามันเป็นเพียงละเว้นอาร์เรย์ที่เพิ่งถูกประกอบต่อไป

หากต้องการบัญชีให้เรียกใช้sudo update-initramfs -uเพื่อสร้าง initrd ที่เหมาะสม

ลิงค์ที่เกี่ยวข้อง: http://ubuntuforums.org/showthread.php?t=1764861%29%3a


2
วิธีนี้แก้ไขปัญหาสำหรับฉัน (หลังจากรีบูตเครื่องอีกครั้ง) บน Ubuntu 16.04 ในกรณีของฉันมันเป็นเพราะฉันได้สร้างอาร์เรย์ขึ้นใหม่และมี UUID ใหม่ หลังจากอัปเดตในmdadm.confแล้วการรีบูตเครื่องเพียงอย่างเดียวไม่เพียงพอ การอัปเดต initramfs นั้นได้ทำการหลอกลวง
nh2

3

ไม่มีคำตอบอื่นใดที่เหมาะกับฉัน แต่ใน Centos ฉันใช้คำแนะนำต่อไปนี้ ปัญหาคือ /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เป็นชื่อของอาเรย์ ฉันคิดว่าฉันได้ให้รายละเอียดที่แน่นอนเกี่ยวกับสิ่งที่ฉันต้องการจะทำ ดังนั้นคำถามยังคงอยู่ฉันจะเปลี่ยนได้อย่างไรและจะเก็บไว้ "ตัวเลขรอง" นี้ได้อย่างไร ฉันคิดว่ามันเป็นส่วนหนึ่งของ superblock หรือไม่? มันจะทำลายซูเปอร์บล็อกเช็คซัมเมื่อแก้ไข hex หรือไม่
XXL

@XXL หมายเลขนั้นไม่ได้ถูกเก็บไว้ที่ไหนมันจะถูกเลือกโดยพลการเมื่อมีการประกอบอาร์เรย์
Gilles 'หยุดชั่วร้าย'

อืม .. ฉันไม่เข้าใจ แล้วทำไมผมเคยได้รับ/ dev / md127เมื่อฉันmdadm -Esv ? ฉันไม่ควรได้รับอย่างอื่นนั่นคือการสุ่มนอกจากชื่อคงที่หรือไม่ นั่นคือถ้ามันเป็น "ตามอำเภอใจ" จริงๆ ..
XXL
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.