mdadm --zero-superblock на дисках с другими разделами на них

mdadm --zero-superblock на дисках с другими разделами на них

У меня есть три диска, которые раньше содержали массив 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 необходимо для обнуления суперблока, если он недействителен, но имейте это в виду.

Связанный контент