20

Вот вывод из mdadm -Esv:

ARRAY /dev /md127 level = raid0 num-devices = 2 UUID = d89d9d45:9a420812:c44c77eb:7ee19756 devices = /dev /sdb8, /dev /sda8

Это массив v0.90. Вопрос в следующем: как mdadm назначает имя соответствующему устройству, где оно хранится и как его изменить?

Чего я хочу добиться, так это переименовать md127 во что-то другое, что мне нравится.

5 ответов5

25

Предупреждение: Пожалуйста, сделайте резервную копию, прежде чем следовать любым советам, данным здесь :-)

Опция 1:

Отредактируйте /etc/mdadm.conf:

ARRAY /dev /md1 level = raid0 num-devices = 2 UUID = d89d9d45:9a420812:c44c77eb:7ee19756 devices = /dev /sdb8, /dev /sda8

Я только что ввел свой вывод и изменил 127 на 1. Перезагрузитесь, и теперь это должно быть md1.

Вариант № 2:

Если у вас нет mdadm.conf и хотите, чтобы собрать в md1 автомагически, вы можете сделать это:

У mdadm есть понятие "привилегированный несовершеннолетний". Например, если определенный младший номер назначен массиву и сохранен в суперблоке, он будет использоваться каждый раз, когда этот массив собирается автоматически. Проверьте это:

mdadm - подробности /dev /md127

Если он говорит «Предпочитаемый несовершеннолетний: 127», это ваша проблема. Вам необходимо обновить предпочтительный несовершеннолетний. Как это сделать:

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

mdadm --stop /dev /md127
mdadm --assemble --update = супер-минорный /dev /md1 /dev /sdb8 /dev /sda8

Тогда ваш md127 будет собран как md1. И так должно быть и в будущем.

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

Более новые массивы не хранят число «Предпочитаемый несовершеннолетний» и не поддерживают «--update = super-minor». Вместо этого они хранят имя, которое можно изменить с помощью:

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

Или вы можете указать 'hostname:2', чтобы все было согласовано с другими массивами (ищите текущее имя с помощью --detail).

9

Просто чтобы добавить к отличному ответу Хеймга. Может случиться так, что даже с mdadm.conf система (по крайней мере, для Ubuntu) может по-прежнему автоматически собирать массивы перед чтением mdadm.conf. Поэтому, когда он находит его, он просто игнорирует массивы, которые только что были собраны.

Чтобы учесть это, запустите sudo update-initramfs -u для регенерации правильного initrd.

Соответствующие ссылки: http://ubuntuforums.org/showthread.php?t=1764861%29%3a

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 - это не имя массива, это имя файла устройства массива, что является прямым следствием младшего номера устройства raid block , Этот младший номер выбирается довольно произвольно при сборке массива.

UUID предоставляет уникальный идентификатор для массива, если он вам нужен. Если вы предпочитаете удобочитаемое или структурированное имя, поместите физический том LVM в массив.

1

haimg ответил на это отлично, и это сработало и для меня.

Единственное, что я хотел бы добавить, это то, что в Centos 7 вы должны запустить ' dracut -f ', чтобы обновить initrd. (некоторые другие пользователи также указали на это, но я решил, что разумно поделиться этой командой с вами.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .