Recuperando partição de um array RAID 1 do Linux

2

Eu tive um servidor antigo (Fedora 4 - sim, antigo!) morrer recentemente. Ele foi configurado com dois discos IDE em uma matriz RAID 1 de software e estou tentando recuperar os dados. Infelizmente, fazia um tempo desde que eu mexi com o mdadm e tenho medo de ter estragado alguma coisa. Além disso, embora houvesse dois discos na matriz, um deles parece completamente morto. Quando eu o conecto a outra máquina, essa máquina trava na tela da BIOS e não inicializa. Então, estou usando o outro disco espelhado.

Coloquei o disco em outra máquina e a primeira coisa que tentei foi executar:

mdadm --create /dev/md0 -v --force --raid-devices=1 --level=raid1 /dev/sdb2

Isso, no entanto, não me permite montar o sistema de arquivos:

# mount -t ext3 /dev/md0 /mnt mount: wrong fs type, bad option, bad superblock on /dev/md0, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so

Ele aparentemente escreveu alguma coisa no disco, e é por isso que temo que eu tenha estragado tudo:

# mdadm --examine /dev/sdb2
/dev/sdb2:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : b6babdfb:e99e3bd3:398fcebe:dd38faab
           Name : bluto:0  (local to host bluto)
  Creation Time : Thu Dec 29 15:36:10 2016
     Raid Level : raid1
   Raid Devices : 1

 Avail Dev Size : 310277362 (147.95 GiB 158.86 GB)
     Array Size : 310277218 (147.95 GiB 158.86 GB)
  Used Dev Size : 310277218 (147.95 GiB 158.86 GB)
    Data Offset : 2048 sectors
   Super Offset : 8 sectors
          State : active
    Device UUID : 0f3d948b:398095cc:9621f72f:fcd11310

    Update Time : Thu Dec 29 15:36:10 2016
       Checksum : c58ea2b6 - correct
         Events : 0


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

O horário de criação aqui é atual e o nome do host, "bluto", é a máquina que estou usando para recuperação, não o servidor original. Então, isso definitivamente foi escrito durante meus esforços de recuperação e me deixa preocupada que algo importante possa ter sido eliminado.

Lembrei-me então de um truque mdadm mais simples, e isso realmente funciona em uma partição diferente do mesmo disco. Infelizmente essa partição era apenas / boot, então os dados não são interessantes, mas isso prova que a técnica deve funcionar:

# mdadm --assemble --run /dev/md0 /dev/sdb1
mdadm: /dev/md0 has been started with 1 drive (out of 2).
# mount -t ext3 /dev/md0 /mnt
# ls /mnt
config-2.6.11-1.1369_FC4  grub                          initrd-2.6.17-1.2142_FC4.img  System.map-2.6.11-1.1369_FC4  vmlinuz-2.6.11-1.1369_FC4
config-2.6.17-1.2142_FC4  initrd-2.6.11-1.1369_FC4.img  lost+found                    System.map-2.6.17-1.2142_FC4  vmlinuz-2.6.17-1.2142_FC4

Mas quando eu desmonto isso e paro o dispositivo md, então tento a mesma coisa com a minha partição de dados real (sdb2), eu recebo o mesmo erro de antes:

# umount /mnt
# mdadm --stop /dev/md0
mdadm: stopped /dev/md0
# mdadm --assemble --run /dev/md0 /dev/sdb2
mdadm: /dev/md0 has been started with 1 drive.
# mount -t ext3 /dev/md0 /mnt
mount: wrong fs type, bad option, bad superblock on /dev/md0,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

Não tenho certeza do que tentar aqui em seguida. Pensei em rodar o e2fsck nele, mas devo executá-lo diretamente no / dev / sdb2 ou no / dev / md0 quando ele está rodando? Eu também estou preocupado que isso possa corromper as coisas ainda pior se o fs já estiver ruim.

    
por Marc Fraioli 30.12.2016 / 22:12

0 respostas