Eventualmente (depois de dias de exploração) consegui forçar o array a trabalhar e a copiar os dados.
Primeiro, a causa foi setores defeituosos do disco - suponho que na área de superbloco raid e / ou tabela de partições.
Em segundo lugar, eu tive que usar dmesg
para ver erros durante mdadm --assemble
ou mdadm --create
:
[Thu Mar 19 23:27:04 2015] end_request: I/O error, dev sdc, sector 9437194
Então eu dei os seguintes passos para me livrar da situação. Lembre-se de que não há garantia de que esse modo esteja correto em todos os detalhes e, provavelmente, o pode levar à perda de dados , mas isso me ajudou.
Setores ruins
Primeiro de tudo, eu cuido dos setores ruins do disco (não sei por que eles não foram automaticamente remapeados). E provavelmente isso causou alguns problemas com dados em outro disco para.Verificados vários setores em torno da falha um:
hdparm --read-sector 9437191 /dev/sdc ... hdparm --read-sector 9437195 /dev/sdc .... hdparm --read-sector 9437199 /dev/sdc
E, em seguida, consertou os ruins:
hdparm --yes-i-know-what-i-am-doing --write-sector 9437198 /dev/sdc
Tabela de partição / dev / sdc
Em seguida, eu queria restaurar e verificar a tabela de partição sdc: usei testdisk
, que não faz parte da distribuição padrão Synology, mas poderia ser instalado a partir de [Synocommunity repository][1]
. Após a instalação, ele pode ser acessado pelo console por /usr/local/testdisk/bin/testdisk
.
- Selecione um disco e, em seguida, o mapa de partições [EFI GPT].
- Analisar e pesquisa rápida. Encontrou várias partições.
TestDisk 7.0-WIP, Data Recovery Utility, January 2015 Christophe GRENIER http://www.cgsecurity.org Disk /dev/sdc - 3000 GB / 2794 GiB - CHS 364801 255 63 Partition Start End Size in sectors D MS Data 256 4980607 4980352 [1.41.10-2219] P Linux Raid 256 4980735 4980480 [md0] D Linux Swap 4980736 9174895 4194160 >P Linux Raid 4980736 9175039 4194304 [md1] P Linux Raid 9437184 5860523271 5851086088 [DiskStation:3]
- Marcado todas as partições do Linux Raid as P (primárias), o mercado restante como D (excluído). Escreva a tabela de partições.
Eventualmente - partprobe /dev/sdc
para atualizar a tabela de partições do sistema (sem necessidade de reinicializar).
mdadm
Agora, tornou-se possível restaurar o superbloco de ataque.
mdadm --zero-superblock /dev/sdc3
Isso me ajudou a limpar as informações antigas e provavelmente danificadas sobre o RAID Array. Eu acho que essa ação é perigosa em muitos casos.
mdadm --create /dev/md3 --verbose --assume-clean --metadata=1.2 --level=1 --raid-devices=2 /dev/sdc3 missing
Mas no meu caso, ele restaurou um raid1 com 1 disco disponível e sem perda de dados.
Não sei qual foi o motivo, mas o tamanho do sistema de arquivos (ext4) no md3 foi ligeiramente diferente em comparação ao tamanho físico de md3. Então eu corro:
resize2fs /dev/md3
E verificação do sistema de arquivos:
fsck.ext4 -f -C 0 /dev/md3
E agora tornou-se possível montar o array:
mount -t ext4 -o ro /dev/sdc3 /volume2
Então eu copiei com sucesso todos os dados.