손상된 F2FS 파티션에서 파일을 복구하거나 복구하시겠습니까?

손상된 F2FS 파티션에서 파일을 복구하거나 복구하시겠습니까?

슈퍼블록이 누락된 f2fs 파티션이 있습니다. 복구하려는 원래 파티션이 파괴되지 않도록 디스크 이미지를 만들었습니다.

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

Testdisk는 F2FS를 지원하지 않습니다.

슈퍼블록을 다시 쓸 수 있는 방법이 있는지 모르겠고 파일을 복구하거나 파일 시스템을 복구하고 싶습니다.

이것은 좋은 파티션에서 나온 F2FS 슈퍼블록의 16진수입니다.

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 

이것은 내가 잘못된 파티션에서 찾은 16진수입니다.

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 

슈퍼블록은 괜찮은 것 같습니다. 차이점은 1개는 128GB 부품이고 다른 하나는 8GB 부품이기 때문입니다. 슈퍼블록이 잘못된 파티션의 올바른 위치에 있는지 확인하는 방법을 모르겠습니다. 내가 알 수 있는 한, 오프셋이 일치하지 않습니다. 하지만 저는 16진수 편집기를 잘 사용하지 못해서 오프셋을 비교하는 방법을 모르겠습니다.

업데이트: 슈퍼블록의 오프셋이 잘못되었습니다. 0x600 또는 3 섹터에 있습니다. 디스크 이미지에서 처음 512바이트를 삭제했습니다. 이제 fsck.f2fs가 표시됩니다.

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

제가 아는 한 파티션이 이동되어 파티션 테이블에 문제가 있는 것으로 알고 있습니다. 모든 데이터가 손상되지 않은 것으로 보입니다. ms-dos 파티션 테이블을 사용하고 있습니다.

답변1

복구하려는 항목에 따라 시도해 볼 수 있습니다 cat sd128.img | strings [options] | grep -C10 [pattern for recovery]. 하지만 꽤 무섭습니다. 그러나 데이터가 어디서 시작될 수 있는지에 대한 단서를 제공할 수 있습니다.

이 페이지는 다음 위치에 있습니다. 법의학 위키SSD에 관해서는 유용할 수 있습니다.주로 해결하지만빛보다 빠르게(Flash Memory Transition Layer): 시스템에 표시되는 블록 장치를 SSD의 수많은 스토리지 칩에 매핑하고 웨어 레벨링, 불량 블록 추적, 백그라운드 최적화 등을 자동으로 수행합니다.

관련 정보