Reparando ou Recuperando Arquivos de uma Partição F2FS Corrompida?

1

Eu tenho uma partição f2fs com o Superblock ausente. Eu fiz uma imagem de disco para não destruir a partição original tentando consertar.

sd-repair# fsck.f2fs sd128.img 
Info: Segments per section = 1
Info: Sections per zone = 1
Info: sector size = 512
Info: total sectors = 249737216 (121942 MB)
    Can't find a valid F2FS superblock at 0x0
    Can't find a valid F2FS superblock at 0x1

O testdisk não suporta o F2FS.

Eu não sei se existe uma maneira de reescrever os superblocos, gostaria de recuperar meus arquivos ou reparar o sistema de arquivos.

Aqui está o hex do que eu acredito ser o superbloco F2FS, de uma boa partição

10 20 F5 F2 01 00 07 00 09 00 00 00 03 00 00 00 0C 00 00 00 09 00 
00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 00 20 00 00 00 00 00 
E1 0F 00 00 FF 0F 00 00 02 00 00 00 02 00 00 00 12 00 00 00 08 00 
00 00 E1 0F 00 00 00 02 00 00 00 02 00 00 00 06 00 00 00 0A 00 00 
00 2E 00 00 00 3E 00 00 03 00 00 00 01 00 00 00 02 00 00 00 31 8B 
E4 FB 13 D1 42 26 A5 07 EA 8A B6 70 A9 45 

Aqui está o hex encontrado na parte ruim

10 20 F5 F2 01 00 07 00 09 00 00 00 03 00 00 00 0C 00 00 00 09 00 
00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 46 DC 01 00 00 00 00 
31 ED 00 00 22 EE 00 00 02 00 00 00 06 00 00 00 72 00 00 00 77 00 
00 00 31 ED 00 00 00 02 00 00 00 02 00 00 00 06 00 00 00 12 00 00 
00 F6 00 00 00 E4 01 00 03 00 00 00 01 00 00 00 02 00 00 00 16 CD 
C2 62 53 10 46 17 A5 B7 41 C6 8E AA 33 D5 73 00 64 00 2D 00 65 00 
78 00 74 00 

O superbloco parece ok, as diferenças são por causa de 1 é parte de 128 GB e outro é parte de 8 GB. Eu não sei como saber se o superbloco está no local certo na partição ruim. Há offset não combina, pelo que eu posso dizer. Mas eu não sou tão bom com editores hexadecimais, então eu não sei como comparar os deslocamentos.

Atualização: o offset para o superblock estava errado, estava em 0x600 ou 3 setor. Eu removi os primeiros 512 bytes da imagem de disco. Agora fsck.f2fs mostra

sd-repair# fsck.f2fs -f trim_sd.img 
Info: Force to fix corruption
Info: Segments per section = 1
Info: Sections per zone = 1
Info: sector size = 512
Info: total sectors = 249704447 (121925 MB)
Info: MKFS version
  "Linux version 3.4.0-CM-g87d27dd (Adam@TheKeurig) (gcc version 4.9 20150123 (prerelease) 
(GCC) ) #6 SMP PREEMPT Sat Dec 17 21:28:57 CET 2016"

Info: FSCK version
  from "Linux version 4.9.0-3-amd64 ([email protected]) 
(gcc version 6.3.0 20170516 (Debian 6.3.0-18) ) 
#1 SMP Debian 4.9.30-2 (2017-06-12)"
     to "Linux version 4.9.0-3-amd64 ([email protected])
(gcc version 6.3.0 20170516 (Debian 6.3.0-18) ) #1 SMP Debian 4.9.30-2 (2017-06-12)"

Info: superblock features = 0 : 
Info: superblock encrypt level = 0, salt = 00000000000000000000000000000000
Info: total FS sectors = 249704448 (121926 MB)
[f2fs_crc_valid: 477] CRC validation failed: cal_crc = 4076150800, blk_crc = 0 buff_size = 0x0
[f2fs_crc_valid: 477] CRC validation failed: cal_crc = 4076150800, blk_crc = 0 buff_size = 0x0
[f2fs_do_mount:1945] Can't find valid checkpoint

Do que eu posso dizer que a partição mudou, pode estar em questão com a tabela de partição. Todos os dados parecem estar intactos. Está usando a tabela de partição ms-dos.

    
por Jcfunk 17.06.2017 / 03:30

1 resposta

0

Dependendo do que você está tentando recuperar, você pode tentar cat sd128.img | strings [options] | grep -C10 [pattern for recovery] . Isso é muito terrível embora. Mas você pode dar uma pista onde os dados podem começar.

Esta página em Wiki Forense referente a SSDs pode ser uma leitura útil, embora, na maioria das vezes, aborde a complexidade do FTL (camada de transição flash), que mapeia o dispositivo de bloco visível ao sistema para a multiplicidade de chips de memória no SSD e realiza automaticamente o nivelamento de desgaste, rastreamento de blocos defeituosos, otimização de plano de fundo etc.

    
por 13.12.2018 / 21:40