최근에 SD 카드가 손상되었습니다(소프트웨어 측면에서). 기본적으로 내가 아는 한 모든 메타데이터는 삭제됩니다(ext4 카드). 제가 일을 하다가 갑자기 수표를 써야 했을 때 이런 일이 일어났습니다. 작업 중인 카드를 꺼내서 "회계 카드"에 수표를 넣고 수표를 쓴 다음 스캔합니다. 업무카드에 들어있는 '회계카드'를 꺼냈습니다. 일을 시작했을 때, 직장 카드에 "회계 카드"와 동일한 라벨이 붙어 있는 것을 보았습니다. 제거하는 것을 잊어버렸거나(또는 제거했다고 생각했지만 실패) "계정 카드"가 이를 대신하여 동기화를 무작위로 호출한 다음 작업 카드의 메타데이터를 덮어쓴 것 같습니다.
사소한 성가심이지만 데이터 복구에 대해 생각하게 되었습니다. 파일을 구성하는 섹터에 대한 모든 데이터가 메타데이터에 있는 경우. 그리고 메타데이터가 지워지고 파일이 사라졌습니다. 그러나 파일에 사용되는 블록에 대한 참조가 포함되어 있으면 파일이 손실되지 않습니다. 그러나 이는 하드 드라이브에서는 실용적이지 않을 수 있습니다.
대부분의 경우 SD 카드의 사용 사례는 하드 드라이브의 사용 사례와 크게 다릅니다. 하드 드라이브에서는 파일을 자주 수정하는 반면, SD 카드에서는 자주 파일을 읽고, 전체 파일을 쓰고, 전체 파일을 삭제합니다. 때로는 파일을 수정하기도 하지만 이는 일반 하드 드라이브에 비해 드문 경우입니다. 적어도 나는 그것을 사용하는 방법입니다.
HD 카드와 SD 카드의 손상 패턴도 다릅니다. 일종의 시스템 충돌이나 갑작스러운 정전이 발생하면 하드 드라이브가 손상됩니다. 제거에 실패하면 SD 카드가 손상된 것입니다. 파일이 자체 섹터 정보를 모두 저장하는 경우 메타데이터가 플러시되는지 여부는 중요하지 않습니다.
그렇다면 복구를 보장하고 전반적인 성능이 합리적인 SD 카드 파일 시스템이 있습니까?
답변1
특정 질문에 대답하려면: "복구를 보장하는 SD 카드 파일 시스템이 있습니까?"
NO!
여기서 문제를 혼동하고 계신 것 같습니다. 설명하신 문제는 파일 시스템 자체가 아니라 시스템이 이동식 미디어 I/O를 처리하는 방식과 관련이 있습니다. 손상된 정보는 모든 파일 시스템에서 복구할 수 있지만 이는 복구를 위해 이전에 해당 정보가 존재했다고 가정합니다. 디스크에 대한 I/O 작업이 중단되면 정보가 파일 시스템에 기록되지 않으므로 복구할 수 없습니다.
앞으로 이러한 문제를 방지하려면 미디어에 맞는 올바른 장착 옵션을 사용하십시오. 특히, 설치 시 "동기화" 옵션을 사용하세요. 그러면 모든 쓰기가 캐시되지 않고 즉시 수행됩니다. 기본적으로 캐싱은 모든 파티션에 대해 활성화되어 성능이 향상되지만 I/O 작업의 비동기 특성으로 인해 이러한 유형의 문제가 발생할 수 있습니다.
답변2
ZFS-아마도 최선의 선택 일 것입니다.
당신은 항상 *nix 시스템을 사용할 것이라고 가정합니다. 예를 들어, 이는 Canon 카메라에서는 작동하지 않지만 모든 Solaris, BSD 및 대부분의 Linux 배포판에서는 작동합니다.
인용하다:
ZFS와 다른 파일 시스템 간의 주요 차이점 중 하나는 ZFS가 처음부터 데이터 무결성에 중점을 둔다는 것입니다. 즉, 비트 감쇠, 전류 스파이크, 디스크 펌웨어 오류, 고스트 쓰기 등으로 인한 자동 데이터 손상으로부터 사용자 디스크의 데이터를 보호합니다.