SMART를 지원하지 않는 디스크의 오류를 테스트하는 방법은 무엇입니까?

SMART를 지원하지 않는 디스크의 오류를 테스트하는 방법은 무엇입니까?

microSD 카드에서 부팅된 Raspberry Pi(Raspbian 실행)가 있습니다. 홈 서버 역할을 하기 때문에 자연스럽게 microSD 카드의 오류를 모니터링하고 싶었습니다. 하지만 안타깝게도 microSD 카드는 제가 가지고 있는 다른 디스크처럼 SMART를 지원하지 않기 때문에 디스크 오류를 모니터링하는 방법을 잘 모르겠습니다.

비SMART 지원 디스크가 아직 사용 중이거나 파티션이 마운트되어 있는 경우 오류를 모니터링/확인하는 방법은 무엇입니까?

답변1

smartctl -t long자가 테스트를 (매개변수 없음)로 대체 할 수 있습니다 badblocks. 간단한 읽기 전용 테스트를 수행합니다. 파일 시스템을 마운트하는 동안 실행할 수 있습니다. (소위 비파괴 쓰기 테스트를 사용하지 마십시오).

# badblocks -v /dev/loop0
Checking blocks 0 to 1048575
Checking for bad blocks (read-only test): done
Pass completed, 0 bad blocks found. (0/0/0 errors)

아직 불량 섹터가 의심되지 않는 경우에만 이 옵션을 사용해야 합니다. 불량 섹터가 될 것이라는 것을 이미 알고 있는 경우에는 대신 사용하십시오 ddrescue. ( badblocks읽은 모든 데이터를 버리고 ddrescue나중에 유용할 수 있는 복사본을 만듭니다.)

그 외에도 SMART가 할 수 없는 작업을 수행할 수 있습니다. 체크섬 파일 시스템, dm 무결성 레이어 또는 백업 및 비교를 사용하여 실제로 콘텐츠를 확인합니다. 이것이 누락된 경우 일반 파일 시스템 검사를 실행하십시오.

MicroSD 카드에는 감지하기 어려운 오류 모드도 있습니다. 일부 카드는 결국 쓰기를 포기하고 읽을 때 이전 데이터를 계속 반환할 수 있습니다. 여기서는 단순한 체크섬만으로는 충분하지 않을 수 있습니다. 카드가 우연히 이전 데이터와 이전 체크섬을 반환하는 경우 데이터가 잘못되더라도 여전히 일치할 수 있습니다.

너무 많이 기록하면 데이터가 손실되는 일부 가짜 용량 카드도 있습니다. 둘 다 읽기 또는 쓰기 오류를 반환하지 않으며 파괴적인 쓰기 모드에서도 감지할 수 없습니다 badblocks(쓰기 패턴이 반복적이기 때문).

이를 위해서는 그 위에 암호화 레이어를 놓는 것과 같이 반복되지 않는 패턴으로 테스트해야 합니다(LUKS에 기록된 불량 블록은 가짜 용량 카드에서 감지되지만 원시 장치에 기록된 불량 블록은 감지되지 않습니다). .

관련 정보