Я создал массив md на компьютере ARM с двумя дисками USB / SATA в RAID 1. Затем я переместил оба диска на рабочий стол Ubuntu и установил mdadm
. Установка обнаружила RAID и добавила определение в /etc/mdadm/mdadm.conf
. Итак, откуда это взялось?
Позже я снова создал RAID со своего рабочего стола и теперь (даже после перезагрузки) mdadm --examine --scan
показать оба двух массива:
ARRAY /dev/md/0 metadata=1.2 UUID=19846240:ff2a5429:8b22a9bd:a3760e2e name=microserver.delrio.red:0
ARRAY /dev/md/0 metadata=1.2 UUID=49a26458:5449d0ff:4606e203:ddad2fe8 name=ubuntu:0
Когда вы создаете RAID-массив с mdadm
в GNU / Linux где хранится определение массива?
Как я могу удалить только первый?
Метаданные хранятся в суперблок.
Чтобы удалить, я думаю, вы хотите посмотреть mdadm --zero-superblock. Прежде чем начинать возиться, убедитесь, что у вас есть резервная копия метаданных.
Это сильно отличается в разных системах. Программный raid linux использует raid superbock, который находится на последних 64 КБ каждого из устройств-членов.
Точнее, если размер устройства n
байт, суперблок рейда находится в n&~65535-65536
.
Суперблок рейда находится в конце, потому что на зеркальных уровнях рейда упрощается использование устройства-члена независимо от массива (потому что вы можете просто смонтировать его, конечно, вам нужно выполнить восстановление массива после этого).
Его точный формат суперблока рейда подробно описан в эта вики.
Его фактические байтовые данные вы можете просматривать / редактировать любым шестнадцатеричным редактором, например dhex.
Фактически, он описывает всю схему рейда (уровень рейда, контрольную сумму) и то, что является устройством-участником всего массива.
Во время инициализации рейда ядро считывает суперблоки и проверяет их согласованность. Несогласованные члены не вставляются в массив.
mdadm --examine --scan
показывает именно эту информацию о суперблоке рейда без вмешательства драйвера рейда ядра.
В вашем случае в вашем массиве есть явное несоответствие. Отсюда нелегко выяснить, в чем его причина. Но у вас есть raid1, который является зеркалом, поэтому реальной опасности потери данных нет. Самое простое, что можно сделать:
mdadm --zero-superblock
командаmdadm --add
.Начнется новая повторная синхронизация.
П.с. # 1:
Думаю суперблок рейда уже переписал твоей убунту, но не уверен. Обнуление суперблока и повторная установка устройства исправят его.
П.с. # 2:
Формат суперблока рейда не зависит от платформы, он должен быть одинаковым до последнего байта между разными архитектурами, даже в случае несовместимости по порядку байтов. Ваша проблема почти наверняка не в архитектурной несовместимости, а в ошибочной перезаписи суперблока рейда на одном из ваших устройств.