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.
Tags mdadm linux software-raid