mdadm superblock esconder / sombrear partição

1

Versão curta: É seguro fazer

mdadm --zero-superblock /dev/sdd

em um disco com uma partição (dev / sdd1), sistema de arquivos e dados? A partição será montável e os dados ainda estarão lá?

Versão mais longa: Eu costumava ter uma matriz RAID6, mas decidi desmantelá-lo. Os discos da matriz agora são usados como discos não-raid. As superquadras foram apagadas:

sudo mdadm --zero-superblock /dev/sdd

Os discos foram reparticionados com fdisk e sistemas de arquivos criados com mfks.ext4. Todos os discos foram montados e tudo funcionou bem.

Hoje, algumas semanas depois, um dos discos não está sendo reconhecido ao tentar montá-lo, ou melhor, a única partição nele.

sudo mount /dev/sdd1 /mnt/tmp
mount: special device /dev/sdd1 does not exist

O fdisk afirma que existe uma partição:

sudo fdisk -l /dev/sdd

Disk /dev/sdd: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xb06f6341

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1               1      243201  1953512001   83  Linux

É claro que o mount está certo, o dispositivo / dev / sdd1 não está lá, estou supondo que o udev não o criou por causa dos dados do mdadm ainda presentes nele:

sudo mdadm --examine /dev/sdd
/dev/sdd:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : b164e513:c0584be1:3cc53326:48691084
           Name : pringle:0  (local to host pringle)
  Creation Time : Sat Jun 16 21:37:14 2012
     Raid Level : raid6
   Raid Devices : 6

 Avail Dev Size : 3907027120 (1863.02 GiB 2000.40 GB)
     Array Size : 15628107776 (7452.06 GiB 8001.59 GB)
  Used Dev Size : 3907026944 (1863.02 GiB 2000.40 GB)
    Data Offset : 2048 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : 3ccaeb5b:843531e4:87bf1224:382c16e2

    Update Time : Sun Aug 12 22:20:39 2012
       Checksum : 4c329db0 - correct
         Events : 1238535

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 3
   Array State : AA.AAA ('A' == active, '.' == missing)

Meu mdadm --zero-superblock aparentemente não funcionou. Posso seguramente tentar novamente sem perder dados? Se não, há alguma sugestão sobre o que fazer? Não iniciar o mdadm na inicialização pode ser uma solução (um pouco insatisfatória).

    
por Kjell Andreassen 23.09.2012 / 04:02

1 resposta

0

Zerar o superbloco em um volume de ataque do Linux não afeta a carga real. De fato, a carga útil é offset do superbloco uma quantia considerável (o que equivale a 2048 setores em mdadm recente e menos em mdadm < = versão 3.0).

Mas no seu caso, (desde que você realmente tenha feito o mfks.ext4 /dev/sdd1 ), o superbloco da partição já estava em branco. Assim, a única maneira de explicar o que você descreve é assumir que o superbloco foi adicionado novamente, o que significa que seus dados já estão corrompidos (espero que o fsck possa corrigi-lo posteriormente).

O cenário mais provável do que aconteceu é que você fez o mfks.ext4 /dev/sdd1 antes de parar o dispositivo md. Ou você é uma vítima (assim como eu era) do bug descrito aqui: Um erro desagradável de md / raid que efetivamente permite Linux para reescrever o bitmap no dispositivo md que não está ativo.

Então, em resumo, zerar o superbloco é irrelevante. Você deve parar esse dispositivo, limpar a parte em /etc/mdadm/mdadm.conf que o descreve e executar fsck (primeiro tente em modo somente leitura para ter certeza de que há algo parecido com o sistema de arquivos ext4) dispositivo.

HTH

    
por 23.09.2012 / 09:48