
У меня есть три диска, которые раньше содержали массив MD RAID5. С тех пор я удалил (или так я думал) этот массив и создал разделы для btrfs и swap-пространства. При перезагрузке машины MD по-прежнему связывает устройства, которые раньше содержали старый массив, из-за чего новая файловая система не монтируется.
Мне предположили, что старые суперблоки raid-массивов могли остаться, заставляя MD думать, что это настоящий массив, и таким образом связывать диски. Предложенное решение состояло в том, чтобы использовать mdadm --zero-superblock для очистки суперблока на затронутых дисках. Однако я на самом деле не знаю, что это делает с диском. Поскольку этот диск содержит разделы, я не хочу начинать обнулять его части вслепую.
Так какую процедуру мне следует выполнить, чтобы безопасно очистить суперблоки MD, не повредив другие разделы и файловые системы на дисках?
Этот вопрос по сути тот же самый, но нет четкого ответа на вопрос, является ли выполнение mdadm --zero-superblock на перераспределенном устройстве безопасным:скрытие/тенение раздела суперблока mdadm
решение1
https://raid.wiki.kernel.org/index.php/RAID_superblock_formats
Суперблок имеет длину 4 КБ и записывается в выровненный блок размером 64 КБ, который начинается не менее чем с 64 КБ и менее чем 128 КБ от конца устройства (т. е. чтобы получить адрес суперблока, округлите размер устройства до кратного 64 КБ, а затем вычтите 64 КБ). Доступный размер каждого устройства — это объем пространства перед суперблоком, поэтому при включении устройства в массив MD теряется пространство от 64 КБ до 128 КБ.
Итак, уже слишком поздно.и может быть небезопасноиспользовать --zero-superblock
, так как мы не знаем, есть ли там какие-либо данные или нет - вам необходимо изменить размер/уменьшить текущий раздел до размера, -128K
начиная с конца раздела x-RAID, затем стереть эту часть и снова увеличить раздел.
Другой вариант 1: записать большие файлы, чтобы заполнить весь диск, это приведет к перезаписи суперблоков RAID и не будет распознано mdadm.
Другой вариант 2: аналогично 1:https://unix.stackexchange.com/questions/44234/clear-unused-space-with-zeros-ext3-ext4
решение2
wipefs --all /dev/sd[4ppropr14t3][123]
(конечно же, настройте глобальные переменные для ваших дисков/разделов!)
решение3
Вот как я это понял (это может быть довольно специфично для моего случая, но я постараюсь изложить это в общем виде, где это возможно).
(Когда я говорю об устройствах, я имею в виду устройства, из которых состоит RAID-том, а не сам RAID-массив)
Я привык mdadm -E $DEVICE
выяснять, какой формат метаданных использует массив. Затем я перешел кraid.wiki.kernel.orgчтобы найти некоторую информацию о формате суперблока. В моем случае это была версия 0.90.
В этом формате суперблок хранится ближе к концу устройства. Вот тут-то и возникает моя ситуация. Мой старый массив был создан непосредственно на дисках, без разбиения на разделы. Из-за этого я знал, что суперблок должен быть в самом конце устройства. Мое новое разбиение на разделы включало раздел подкачки в конце. Поэтому не было много данных, которые можно было бы потерять там, где находился суперблок.
Я немного почитал и пришел к выводу, что это mdadm --zero-superblock
только обнуляет сам суперблок, и поэтому в моем случае это должно быть безопасно. Я пошел дальше и удалил суперблоки на всех трех устройствах:
mdadm --stop $ONE_OF_THE_DEVICES
Повторите эту строку по мере необходимости.
mdadm --zero-superblock $DEVICE
Некоторые дополнительные комментарии/предположения:
Обычно, если пространство необходимо для новых разделов/файловых систем, оно должно быть уже перезаписано. Таким образом, если суперблок все еще там, его обнуление не должно повредить разделам/файловым системам. Однако я не уверен, как MD обрабатывает случай, когда суперблок уже был перезаписан на одном или многих устройствах, но не на всех. На странице руководства говорится, что -f необходимо для обнуления суперблока, если он недействителен, но имейте это в виду.