Recuperar um disco rígido reiserfs

4

Não consigo montar a partição única do disco rígido externo de 300 GB (no gabinete externo). Nenhuma das ferramentas do fsck adiciona nada, elas nem conseguem reconhecer a partição. Eu tinha esquecido se eu tinha usado ext4 ou reiserfs eu mesmo. O HDD parece ok. O Testdisk viu uma partição linux, mas não deu mais detalhes.

Até que ... eu segui Recuperando superblocos ext4 e tentei o comando sudo losetup -v -o $i /dev/loop1 /dev/sdc . Agora o testdisk pelo menos me dá um rótulo verde, diz que é uma partição do reiserfs 3.6 e obtém o rótulo correto do dispositivo! Eu especialmente tive sorte com i=32768 :

$ dmesg
[10147.132161] REISERFS (device loop1): found reiserfs format "3.6" with standard journal
[10147.132204] REISERFS (device loop1): using ordered data mode
[10147.132206] reiserfs: using flush barriers
[10147.132335] REISERFS (device loop1): journal params: device loop1, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
[10147.132745] REISERFS (device loop1): checking transaction log (loop1)
[10147.133630] REISERFS warning: reiserfs-5090 is_tree_node: node level 61404 does not match to the expected one 4
[10147.133638] REISERFS error (device loop1): vs-5150 search_by_key: invalid format found in block 67403788. Fsck?
[10147.133644] REISERFS (device loop1): Remounting filesystem read-only
[10147.133652] REISERFS error (device loop1): vs-13070 reiserfs_read_locked_inode: i/o failure occurred trying to find stat data of [1 2 0x0 SD]
[10147.133660] REISERFS (device loop1): Using r5 hash to sort names

Eu não consigo montar como você vê, mas para mim parece que estou chegando perto:

$ sudo mount -t reiserfs /dev/loop1 /mnt
mount: /dev/loop1: can't read superblock

Estou vendo fantasmas só porque pulo alguns bytes? Por que o disco de teste não vê isso do / dev / sdc1? Eu usei principalmente ferramentas readonly mas eu poderia ter solicitado testdisk para escrever uma vez (para a tabela de partição?) Para que eu pudesse ter perdido partes, embora eu não duvide que a maioria possa ser recuperada. E, acima de tudo, como continuo daqui?

Eu poderia rodar o reiserfsck no raw / dev / sdc1, mas se houver uma razão pela qual o offset funciona melhor, como consolidá-lo no meu disco rígido primeiro?

Por favor, indique as implicações da sua solução apropriadamente (como limpa? se ela escreve eu quero saber). Eu estou bem em desistir dos dados no disco (nada pessoal), mas se for fácil consertar, eu gostaria disso. Além disso, o Foremost parece ser capaz de recuperar meus arquivos, mas não tenho espaço para escrevê-los.

UPDATE1: Estranho que eu estou vendo menos resultados no meu laptop real, em vez de no Ubuntu LiveCD (talvez esta seja a causa dos meus problemas). Eu tentei algumas coisas e só tenho alguma inteligência do reiserfsck se eu usar o losetup de cima e então executar reiserfsck --check /dev/loop1 . No entanto, ele abortou as transações de repetição. Eu recebo:

[  682.743728] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen
[  682.743734] ata1.00: ST-ATA: DRQ=0 without device error, dev_stat 0x50
[  682.743740] ata1.00: failed command: DEVICE CONFIGURATION OVERLAY
[  682.743747] ata1.00: cmd b1/c2:00:00:00:00/00:00:00:00:00/40 tag 0 pio 512 in
[  682.743749]          res 50/00:00:00:00:00/00:00:00:00:00/40 Emask 0x202 (HSM violation)
[  682.743753] ata1.00: status: { DRDY }
[  682.743763] ata1.00: hard resetting link
[  683.060965] ata1.01: hard resetting link
[  684.087234] ata1.01: failed to resume link (SControl 0)
[  684.243064] ata1.00: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[  684.243086] ata1.01: SATA link down (SStatus 0 SControl 0)
[  684.283150] ata1.00: configured for UDMA/133
[  684.283860] ata1: EH complete
[  727.846495] usb 2-1.3.1: reset high-speed USB device number 6 using ehci_hcd
[  766.757684] usb 2-1.3.1: reset high-speed USB device number 6 using ehci_hcd

Isso é uma falha na unidade? Não parece com isso.

UPDATE2: Ele teve que recriar o cabeçalho do diário, depois recriar o superbloco e agora está reconstruindo a árvore (mas pelo menos está fazendo alguma coisa). Pela minha experiência, isso significa que não vou chegar aos meus dados de maneira coerente :-). Mas tudo está fazendo isso no dispositivo de loop. Isso me traz de volta à minha pergunta inicial: Como eu voltarei de uma partição de trabalho em um dispositivo de loop para uma partição de trabalho acessível diretamente (suponho 63 cilindros)?

UPDATE3: Eu reconstruí a árvore e obtive um lost + encontrado com algumas coisas de volta. Ao tentar montá-lo no dia seguinte, ele não pôde ser montado novamente. No geral, mostrou um comportamento aleatório. Eu acho que o disco rígido realmente morreu. Dados SMART foi a primeira coisa que tentei, mas nunca poderia ser acessado, eu - errado? - assumiu que isso foi por causa do recinto. Eu tentei formatá-lo com uma nova partição, mas nem isso ficava muito além da formatação.

    
por pjv 10.06.2012 / 17:10

1 resposta

3

A recuperação de uma partição reiserfs danificada pode, às vezes, destruir os dados que você está tentando recuperar (eu sei, já fiz isso).

Então, primeiro, leve uma imagem no nível da unidade de todo o disco para outra coisa.

dd if=/dev/source of=/home/diskimage.img

Depois que você tirar a imagem de disco, então, e somente então, tente um fsck ou outra recuperação.

Existem vários links que podem ajudar na tentativa de recuperar o reiserfs. Vou te dar um par.

Espero que essa ajuda. Muitos links para "recover reiserfs" ou "reiserfs partition lost" e links para serviços de recuperação comercial, que eu achei que você não estava procurando ...

    
por 10.06.2012 / 18:33