Як змінити назву пристрою 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 має поняття "переважний неповнолітній". Наприклад, коли певному незначному номеру призначено масив і зберігається у суперблоку, він буде використовуватися щоразу, коли цей масив буде автоматично зібраний. Перевірте це:

mdadm - роздріб / dev / md127

Якщо на ньому написано "Кращий неповнолітній: 127", це ваша проблема. Потрібно оновити бажаний неповнолітній. Як це зробити:

Ви не можете просто змінити бажаний неповнолітній. Вам потрібно завантажитися в режим відновлення або в єдиному режимі користувача, якщо це ваш кореневий пристрій, відключіть файлову систему після цього:

mdadm - стоп / dev / md127
mdadm - збирати --update = супер-мінор / dev / md1 / dev / sdb8 / dev / sda8

Тоді ваш md127 буде зібраний як md1. І так має залишитися і надалі.

З масивами 1.x:

Більш нові масиви не зберігають номер "Уподобаний мінор" і не підтримують "--update = супер-мінор". Натомість вони зберігають ім’я, яке можна змінити за допомогою:

mdadm - стоп / dev / md127
mdadm - збирати --update = ім'я - ім'я = 2 / dev / md1 / dev / sdb8 / dev / sda8

Або ви можете вказати "ім'я хоста: 2", щоб все відповідало іншим масивам (знайдіть поточну назву за допомогою --detail).


дуже добре! просто те, що я шукав. тому фокус полягав у тому, щоб також оновити супер-мінор .. дякую!
XXL

Ти рятівник життя! Я використовував це для розблокування пристрою WD NAS, який використовує md.
Влад

Це рішення теоретично правильне, але мені було важко реалізувати для мене живу систему. Також варіант №1 для мене не працював. Я поїхав з superuser.com/questions/287462/…
горн

+1 за останню частину рішення, що було дуже корисно при переміщенні рейдового масиву з однієї машини на іншу. "ім'я хоста: 2" і зміна md127 на md1 - саме те, що мені потрібно було, щоб імена відповідали
yahol

13

Просто для додання відмінної відповіді Хаймга. Може трапитися так, що навіть з 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 насправді не використовується під час завантаження і оновлюється лише після встановлення нового ядра або відтворення initramfs вручну. Тож по суті вам просто потрібно:

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 Це число ніде не зберігається, воно вибирається досить довільно, коли масив збирається.
Жил 'ТАК - перестань бути злим'

хм .. не розумію. Тоді чому я завжди отримую / dev / md127, коли я mdadm -Esv ? Чи не можу я отримати щось інше, випадкове, окрім статичного імені? Тобто, якщо це дійсно "довільно" ..
XXL
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.