mdadm --zero-superblock em discos com outras partições neles

mdadm --zero-superblock em discos com outras partições neles

Eu tenho três discos que costumavam conter uma matriz MD RAID5. Desde então, removi (ou assim pensei) esse array e criei partições para btrfs e espaço de troca. Ao reiniciar a máquina, o MD ainda vincula os dispositivos que costumavam conter o array antigo, fazendo com que o novo sistema de arquivos não fosse montado.

Foi-me sugerido que os antigos superblocos dos arrays raid poderiam ser deixados para trás, fazendo com que o MD pensasse que era um array real e, portanto, vinculava os discos. A solução sugerida foi usar mdadm --zero-superblock para limpar o superbloco nos discos afetados. No entanto, não sei realmente o que isso faz com o disco. Como este disco contém partições, eu realmente não quero começar a zerar partes dele às cegas.

Então, qual procedimento devo seguir para limpar com segurança os superblocos MD sem danificar as outras partições e sistemas de arquivos nas unidades?

Esta pergunta essencialmente pergunta a mesma coisa, mas não há uma resposta clara sobre se fazer mdadm --zero-superblock em um dispositivo reparticionado é realmente seguro:mdadm superbloco ocultando / sombreando partição

Responder1

https://raid.wiki.kernel.org/index.php/RAID_superblock_formats

O superbloco tem 4K de comprimento e é escrito em um bloco alinhado de 64K que começa a pelo menos 64K e menos de 128K do final do dispositivo (ou seja, para obter o endereço do superbloco arredondado do tamanho do dispositivo para um múltiplo de 64K e depois subtraia 64K). O tamanho disponível de cada dispositivo é a quantidade de espaço antes do superbloco, portanto, entre 64K e 128K são perdidos quando um dispositivo é incorporado a um array MD.

Então, já é tarde demaise pode ser inseguropara usar --zero-superblock, porque não sabemos se existem dados ou não - você deve redimensionar/diminuir sua partição atual até -128Ko final da partição x-RAID e, em seguida, limpar essa parte e aumentar a partição novamente.

Outra opção 1: gravar arquivos grandes para preencher todo o disco, isso substituirá os superblocos RAID e não será reconhecido pelo mdadm.

Outra opção 2: semelhante a 1:https://unix.stackexchange.com/questions/44234/clear-unused-space-with-zeros-ext3-ext4

Responder2

wipefs --all /dev/sd[4ppropr14t3][123](é claro que configure o globo para suas unidades/partições!)

Responder3

Foi assim que descobri (pode ser bem específico para o meu caso, mas tentarei mantê-lo geral sempre que puder).

(Quando falo sobre dispositivos, quero dizer os dispositivos dos quais o volume raid é composto, não o array raid em si)

Eu costumava mdadm -E $DEVICEdescobrir qual formato de metadados o array estava usando. Eu então fui pararaid.wiki.kernel.orgpara encontrar algumas informações sobre o formato superbloco. No meu caso, esta era a versão 0.90.

Este formato possui o superbloco armazenado no final do dispositivo. É aqui que entra a minha situação. Meu array antigo foi feito diretamente nas unidades, sem particionamento. Por causa disso, eu sabia que o superbloco deveria estar bem no final do aparelho. Meu novo particionamento incluiu uma partição swap no final. Portanto, não havia muitos dados a perder onde o superbloco estava localizado.

Fiz algumas leituras, a conclusão que cheguei foi que mdadm --zero-superblockapenas zera o próprio superbloco e portanto deve ser seguro no meu caso. Fui em frente e removi os superblocos em todos os três dispositivos:

mdadm --stop $ONE_OF_THE_DEVICES

Repita esta linha conforme necessário

mdadm --zero-superblock $DEVICE

Alguns comentários/especulações adicionais:

Geralmente, se o espaço for necessário para os novos particionamentos/sistemas de arquivos, ele já deverá ter sido sobrescrito. Assim, se o superbloco ainda estiver lá, zerá-lo não deve prejudicar o particionamento/sistema de arquivos. No entanto, não tenho certeza de como o MD lida com o caso em que o superbloco já foi substituído em um ou mais dispositivos, mas não em todos. A página de manual diz que -f é necessário para zerar o superblock se for inválido, mas tenha isso em mente.

informação relacionada