Por que o mdadm --zero-superblock preserva as informações do sistema de arquivos?

1

Eu tenho duas partições de disco rígido, que combinei em um RAID1 usando mdadm e criei um sistema de arquivos ext4 no dispositivo resultante.

Quando eu mdadm --zero-superblock das duas partições e recriamos o RAID, os metadados originais do ext4 são magicamente preservados.

Por que isso?

E como posso dizer a mdadm para me dar um MD verdadeiramente novo e não inicializado?

Detalhes

Como eu crio o RAID1 e o sistema de arquivos:

ls /dev/sdc2  # partition 1
ls /dev/sdd2  # partition 2
mdadm --create --run --verbose /dev/md1 --level=1 --raid-devices=2 /dev/sdc2 /dev/sdd2
mkfs.ext4 -L mylabel /dev/md1

Limpe o RAID1:

mdadm --stop /dev/md1
mdadm --zero-superblock /dev/sdc2
mdadm --zero-superblock /dev/sdd2

Recrie o RAID1:

mdadm --create --run --verbose /dev/md1 --level=1 --raid-devices=2 /dev/sdc2 /dev/sdd2

Exibir informações do dispositivo (observe wipefs sem o -a sinalizador não limpa nada, apenas mostra informações):

# wipefs /dev/md1
offset               type
----------------------------------------------------------------
0x438                ext4   [filesystem]
                     LABEL: mylabel
                     UUID:  3d230d31-fb82-46ef-a4e0-e9473e05825c

LABEL: mylabel mostra que o rótulo ext4 "sobreviveu" à limpeza do superbloco mdadm e à recriação do RAID.

Como isso pode ser?

Eu pensei que depois de um superblock wipe e recreação, o mdadm deveria me apresentar uma visão "limpa" do dispositivo (ou seja, todos os zeros), a menos que seja dado um sinalizador que desligue isso (como --assume-clean , que eu não dei).

    
por nh2 09.05.2018 / 01:52

1 resposta

5

Como o zeramento do superbloco mdadm remove apenas os metadados que descrevem o array de ataque, ele não remove informações sobre o que realmente está no restante do disco. Isso é realmente bom, pois significa que você pode recuperar um volume quando o próprio array não for montado por algum motivo infeliz.

E, para deixar claro: como você está criando o array usando volumes e não todo o disco, a tabela de partições não é tocada pelo mdadm, portanto, zerar o superbloco de invasão não afetará o rótulo da unidade nem a estrutura da partição.

    
por 09.05.2018 / 02:37