문제

압축 파일을 손상시키는 가장 일반적인 방법은 실수로 ASCII 모드 FTP 전송을 수행하는 것입니다. 이로 인해 CR 및/또는 LF 문자가 다대일로 폐기됩니다.

분명히 정보 손실이 있으며 이 문제를 해결하는 가장 좋은 방법은 FTP 바이너리 모드에서 다시 전송하는 것입니다.

하지만 원본이 분실되어 중요한 경우 데이터 복구는 얼마나 가능한가요?

[사실, 나는 내가 생각하는 최선의 답변(매우 어렵지만 때로는 가능함 - 나중에 더 게시할 예정)과 일반적인 비 답변(데이터를 복구하지 않고 CRC를 복구하기 위한 많은 기성 프로그램)이 무엇인지 이미 알고 있습니다. ), 하지만 stackoverflow 베타 기간 동안 이 질문을 시험해 보고 다른 사람이 성공적인 복구 경로를 밟았거나 내가 모르는 도구를 발견했는지 확인하는 것이 흥미로울 것이라고 생각했습니다.]

도움이 되었습니까?

해결책

에서 Bukys 소프트웨어

256 바이트 중 약 1 개는 손상된 것으로 알려져 있으며, 부패는 ' 012'값을 가진 바이트에서만 발생하는 것으로 알려져 있습니다.따라서 바이트 오류율은 1/256 (입력의 0.39%)이고 2/256 바이트 (입력의 0.78%)가 의심됩니다.그러나 스파핑 바이트 당 3 비트 만 영향을 받기 때문에 비트 오류율은 3/(256*8)에 불과합니다.0.15%가 나쁘고 0.29%가 의심됩니다.

...

압축 된 입력의 오류는 모든 후속 바이트에 대한 감압 프로세스를 방해합니다 ... 압축 압축 출력이 너무 빨리 알아볼 수 없다는 사실은 희망의 원인입니다. 정답을 찾는 것은 잘못된 답변을 빠르게 식별 할 수 있습니다.

궁극적으로 여러 기술이 결합되어 이러한 파일에서 합리적인 데이터를 성공적으로 추출했습니다.

  • 필드 및 인용 문자열의 도메인별 구문 분석
  • 손상 확률이 낮은 이전 데이터를 머신러닝으로 학습
  • 다른 원인으로 인한 파일 손상에 대한 허용 범위(예:로깅하는 동안 디스크 가득
  • 가능성이 가장 높은 경로를 따라 검색을 안내하기 위한 예측

이 기술은 확실성으로 필요한 수리의 75%를 식별하고 나머지는 가장 높은 확률로 탐색하여 그럴듯한 재구성이 즉시 식별됩니다.

다른 팁

모든 CR을 CRLF로 바꾸는 작은 스크립트를 작성하여(폐기 방향이 CRLF에서 CR로 가정) 올바른 crc를 얻을 때까지 블록별로 무작위로 교체할 수 있습니다.데이터가 특별히 크지 않다고 가정하면 우주의 열사멸이 완료될 때까지 CPU를 모두 사용하지 않을 수도 있습니다.

확실한 정보손실이 있어서 더 좋은 방법이 있는지는 모르겠습니다.CR에서 CRLF 방향으로의 손실은 롤백하기가 약간 더 쉬울 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top