Linux에서 "CRC"⁽1⁾ 오류를 삽입하거나 복사하기 위해 섹터/블록을 원시적으로 읽거나 쓰는 방법이 있습니까?

Linux에서 "CRC"⁽1⁾ 오류를 삽입하거나 복사하기 위해 섹터/블록을 원시적으로 읽거나 쓰는 방법이 있습니까?

내 친구는 Linux 커널 RAID(mdadm raid5/6)가 자신의 물리적 볼륨 중 하나에 있는 섹터를 덮어쓰려고 한 번 시도했고 이로 인해 파일이 손상되었기 때문에 신뢰할 수 없다고 말했습니다. 나는 raid5 시스템이 디스크 읽기 오류로 인해 이미 오류가 감지되었을 때 오류를 감지하는 것이 아니라 오류를 수정하는 시스템이기 때문에 정상이라고 대답했습니다.

그런데 어떻게 하면 디스크 자체에 오류를 써서 개념을 증명하거나 신뢰성 테스트를 할 수 있을까 하는 고민이 생겼습니다. Linux를 사용하면 일종의 원시 모드에서 섹터를 쓰거나 읽을 수 있는 방법이 있습니까? 이 방법을 사용하면 컨트롤러가 자체적으로 관리하도록 하는 대신 "CRC"⁽1⁾ 코드를 수동으로 읽거나 쓸 수 있습니다. ?

동일한 논리로, 잘못된 복구 소프트웨어에서 발생하는 원본 대신 복사본에서 일부 복구 데이터 프로세스를 시도하여 디스크를 복구할 수 없게 만들기 위해 다른 디스크에 원시 복사본을 만드는 방법이 있습니까?

비슷한 질문을 하신 분이 있는 걸 본 적이 있어요여기또는거기, 그러나 꽤 오래되었고 명확하지 않았으며 만족스러운 답변을 얻지 못했습니다. 분명히 목표는 디스크를 물리적으로 파괴하는 것이 아니라 나중에 비슷한 방법으로 다시 쓸 수 있는 유효하지 않은 콘텐츠를 디스크에 강제로 쓰는 것입니다. 그런데 디스크에 실제로 오류가 있는 경우 섹터를 미리 올바르게 읽어야 하기 때문에 일반적인 작업으로 섹터가 재배치될 가능성은 없습니다.

(1) : 최근 디스크의 오류 감지 코드가 여전히 CRC 기반인지 확실하지 않기 때문에 따옴표를 붙였습니다.

답변1

매우 짧은 답변이지만 이것이 허용되는 경우:

기본적으로 모든 저장 매체는 다양한 다른 프로토콜(SATA, USB 등)을 통해 SCSI 명령을 전송하여 액세스되며 해당 명령으로 CRC 또는 유사한 필드를 제어할 수 있는 방법이 없습니다. 실제로 최신 드라이브는 다음 쓰기 시 양호한 CRC가 있는 다른 섹터에 매핑하여 수정할 수 없는 불량 CRC가 있는 섹터를 자동으로 대체합니다.

이 모든 것을 보다 직접적으로 제어할 수 있는 공급업체별 확장 기능이 있을 수 있지만 공급업체에서는 이를 알려주지 않습니다.

관련 정보