![디스크에 임의의 데이터를 쓸 때 체크섬을 계산하는 방법은 무엇입니까?](https://linux55.com/image/214964/%EB%94%94%EC%8A%A4%ED%81%AC%EC%97%90%20%EC%9E%84%EC%9D%98%EC%9D%98%20%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC%20%EC%93%B8%20%EB%95%8C%20%EC%B2%B4%ED%81%AC%EC%84%AC%EC%9D%84%20%EA%B3%84%EC%82%B0%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
내 디스크가 손상되었을 수 있습니다. 디스크에 임의의 데이터를 쓴 다음 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
전체 디스크를 스캔하고 패턴을 각 개별 블록에 기록한 다음 블록을 다시 읽고 결과를 비교합니다. 스캔하는 동안 진행 상황이 표시됩니다. 기본 단일 패스가 충분하지 않은 경우 다중 패스를 지정할 수도 있습니다.