저는 HDD 4TB WD 40EFRX(빨간색 시리즈)를 가지고 있고 해당 디스크의 상태를 확인하려고 합니다. 실제로 gparted를 통해 모든 파티션과 테이블을 삭제하고 새 테이블 + ex4 파티션을 만들었습니다. 그런 다음 모든 데이터를 0으로 덮어쓰고 오래된 데이터를 제거하고 싶습니다. 그러나 나는
dd if=/dev/zero of=/dev/sdb status=progress
처음부터 I/O 오류가 발생했습니다.
sudo dd if=/dev/zero of=/dev/sdb status=progress
474558976 bytes (475 MB, 453 MiB) copied, 38.0445 s, 12.5 MB/s
dd: writing to '/dev/sdb': Input/output error
927977+0 records in
927976+0 records out
475123712 bytes (475 MB, 453 MiB) copied, 46.6914 s, 10.2 MB/s
이 명령은 bs=64MB(HDD의 캐시는 64MB) 옵션을 추가할 때 매우 잘 실행됩니다. 하지만 IO 오류로 볼 때 HDD가 어떻게든 손상된 것 같습니다. 아니면 제가 할 수 있는 다른 해결 방법이 있나요? 그런데 내 하드 드라이브는 SATA/USB를 통해 내 노트북에 연결되어 있습니다.
답변1
저는 다음과 같은 문제를 접한 적도 들은 적도 없다는 점을 인정하지만, 반면에 저는 하드 드라이브 오류에 대한 전문가는 아닙니다... :-)
I/O 작업의 엄청난 양으로 인해 어떤 방식으로든 문제가 발생할 수 있습니다. 두 호출 dd
간의 읽기 및 쓰기 작업 수의 차이는 128,000회입니다. Linux 블록 계층이 블록 장치에 대한 직접 액세스 순서를 어떻게 변경하는지 모르겠습니다. 그렇다면 이 요소는 더 낮을 것입니다.
더 작은 청크 크기를 시도해 볼 수 있습니다. bs=512KB
1024배로 줄어들게 됩니다. 어쩌면 블록 크기가 캐시 크기보다 훨씬 작더라도 문제가 사라지는 것을 발견할 수도 있습니다.