SQUASHFS 슈퍼블록을 찾을 수 없는 문제 수정/수정

SQUASHFS 슈퍼블록을 찾을 수 없는 문제 수정/수정

내가 만들고 squashfs로 압축한 오래된 파일 시스템 백업이 있습니다. 그것은 ext4 파일 시스템에 저장되어 있는데, 약간의 비트 부패가 있는 것으로 의심됩니다. 이 파일의 백업이 없습니다. 이 squashfs 파일을 저장하는 방법이 있습니까?

$ unsquashfs olddrive.sfs
Can't find a SQUASHFS superblock on olddrive.sfs

편집: 정보를 추가했습니다.

$ file olddrive.sfs
olddrive.sfs: data
$ sudo mount -t squashfs -o ro olddrive.sfs /tmp/sq
mount: /tmp/sq: wrong fs type, bad option, bad superblock on /dev/loop10, missing codepage or helper program, or other error.

편집: 흥미롭게도 파일에서 hexdump를 실행하면 완전히 0으로 시작된다는 것을 알 수 있습니다. 디스크에서 파일을 읽는 데 불량 섹터가 있었고 0으로 대체되었을 수 있습니까?

0000000 0000 0000 0000 0000 0000 0000 0000 0000
*                                                                 
0000060 8008 0000 0010 0008 0000 37fd 587a 005a                   
0000070 0100 2269 36de c003 ffa5 8003 4080 0121                   
0000080 0010 e48c b888 59ef efe8 5dfe 7500 0d80                   
0000090 8c81 25e2 b847 a0cc 766a b649 c919 3768

결론적으로:

나는 다른 좋은 squashfs의 헤더 몇 바이트를 손상된 squashfs에 복사(덮어쓰기)하려고 시도했지만 성공하지 못했습니다. 내 손상된 squashfs의 헤더에 96개의 0바이트가 있는 것 같습니다. 슈퍼블록에는 중복 데이터가 없는 것으로 나타나므로 슈퍼블록이 손상되면 아카이브가 손실됩니다. 몇 바이트만 손상된 경우 사용자 K-att-의 솔루션으로 문제가 해결되었을 수 있습니다.

이러한 종류의 손상/손실을 방지하려는 사람에게는 par2(Parchive) 사용을 권장합니다. 이전에는 몰랐지만 par2최소한의 손상으로부터 복구할 수 있는 작은 파일을 생성할 수 있습니다(드라이브 섹터가 손상된 경우).

답변1

16진수 편집기를 사용하여 파일을 확인해 보십시오. (예: hexedit) 처음 4바이트를 0x73717368(68 73 71 73 -> hsqs)로 변경해 볼 수 있습니다. (물론 파일을 백업하세요.) https://dr-emann.github.io/squashfs/ 어떤 버전의 squashfs를 사용하고 있나요?

관련 정보