디스크에 임의의 데이터를 쓸 때 체크섬을 계산하는 방법은 무엇입니까?

디스크에 임의의 데이터를 쓸 때 체크섬을 계산하는 방법은 무엇입니까?

내 디스크가 손상되었을 수 있습니다. 디스크에 임의의 데이터를 쓴 다음 md5 체크섬을 확인하고 싶습니다.

나는 다음과 같이 디스크에 씁니다.

dd if=/dev/urandom of=/dev/sda bs=4M status=progress

디스크에 쓰는 동안 md5 체크섬을 만드는 방법은 무엇입니까? dd가 완료될 때 작성된 임의 데이터의 md5 체크섬을 보고 싶습니다. 또한 디스크에 쓰는 동안 진행 상황을 보고 싶습니다.

내가 읽고이것게시물을 작성하고 다음 명령을 만들었습니다.

pv /dev/urandom >(md5sum) > /dev/sdXXX

문제는 그것이 내 기억 전체를 가득 채운다는 것이다. 32GB RAM이 있습니다.

답변1

자체 솔루션을 작성하는 대신 표준 스캐닝 유틸리티를 사용할 수 있습니다.

badblocks -w -s /dev/sda

전체 디스크를 스캔하고 패턴을 각 개별 블록에 기록한 다음 블록을 다시 읽고 결과를 비교합니다. 스캔하는 동안 진행 상황이 표시됩니다. 기본 단일 패스가 충분하지 않은 경우 다중 패스를 지정할 수도 있습니다.

관련 정보