dd 루프 입력 파일을 출력 장치로 보내시겠습니까?

dd 루프 입력 파일을 출력 장치로 보내시겠습니까?

를 사용하여 /dev/zeroHDD를 지우는 속도가 매우 느리기 때문에 준비된 1GB의 파일을 무작위 또는 0으로 사용하겠습니다.

하지만 이 파일을 로 어떻게 반복할 수 있나요 dd?

dd if=loopfile of /dev/sdx 

답변1

/dev/zero전혀 느리지 않습니다. 어쩌면 필요한 것은 dd bs=1M. 초당 수 기가바이트를 처리해야 하므로 HDD/SSD가 병목 현상이 됩니다.

# dd bs=1M status=progress if=/dev/zero of=/dev/null
234309550080 bytes (234 GB, 218 GiB) copied, 11 s, 21.3 GB/s

아니면 그냥 가세요 shred.

# shred -v -n 1 /dev/eraseme

이는 전체 HDD 속도에서 (의사) 무작위 데이터와 함께 진행되어야 합니다. 0이어야 -n 0 -z하지만 shred무작위 데이터보다 빠르지는 않습니다.

답변2

여기서 문제는 기본 블록 크기가 dd512바이트이므로 이는 2개의 시스템 호출과 KB당 2개의 IO 요청이라는 것입니다. GB당 2백만 개가 있습니다. 당연히 느린 것 같습니다.

  • 을 사용하지 마십시오 dd. 사용하세요 cat(많은 상황에서 훨씬 빠르며, 느리더라도 거의 발생하지 않습니다):

    cat /dev/zero >/dev/sdX
    
  • 꼭 사용해야 한다면 dd블록 크기를 합리적인 수준으로 늘리십시오.

    dd if=/dev/zero bs=32M of=/dev/sdX
    
  • 의사 무작위 데이터로 디스크를 지우려는 경우 다음을 고려하십시오.DBAN한 번의 패스로. (다중 패스에 신경쓰지 마세요. 한 번의 패스로 충분하거나망치.)

관련 정보