드라이브를 임의의 데이터로 채울 때 GNU 파쇄가 dd보다 빠른 이유는 무엇입니까?

드라이브를 임의의 데이터로 채울 때 GNU 파쇄가 dd보다 빠른 이유는 무엇입니까?

폐기하기 전에 하드 드라이브를 안전하게 지우는 데는 dd if=/dev/urandom of=/dev/sda거의 하루가 소요되는 반면, shred -vf -n 1 /dev/sda동일한 컴퓨터와 동일한 드라이브에서는 몇 시간밖에 걸리지 않습니다.

이것이 어떻게 가능한지? 병목 현상은 /dev/urandom. shred는 덜 무작위적이고 단일 목적(즉, 더 효율적인)에만 충분한 의사 난수 생성기를 사용합니까 urandom?

답변1

조각내부 의사 난수 생성기를 사용합니다.

기본적으로 이러한 명령은 소량의 엔트로피로 초기화된 내부 의사 난수 생성기를 사용하지만 --random-source=file 옵션을 사용하여 외부 소스를 사용하도록 지시할 수 있습니다. 파일에 충분한 바이트가 포함되어 있지 않으면 오류가 보고됩니다.

예를 들어 장치 파일/dev/urandom무작위 데이터의 소스로 사용될 수 있습니다. 일반적으로 이 장치는 장치 드라이버 및 기타 소스의 환경 소음을 엔트로피 풀로 수집하고 이 풀을 사용하여 임의의 비트를 생성합니다. 풀에 데이터가 부족한 경우 장치는 암호화된 보안 의사 난수 생성기를 사용하여 내부 풀을 재사용하여 더 많은 비트를 생성합니다. 하지만 이 장치는 대량의 무작위 데이터 생성을 위해 설계되지 않았으며 상대적으로 느리다.

나는 무작위 데이터가 무작위 데이터보다 더 효과적이라는 것을 확신하지 못합니다.단일 패스~의0(또는 다른 바이트 값) 이전 내용을 모호하게 만듭니다.

드라이브를 안전하게 폐기하기 위해 큰 자석과 큰 망치를 사용합니다.

답변2

dd데이터를 쓰기 위해 더 작은 청크를 사용 함으로써 발생하는 것 같습니다 . dd if=... of=... bs=(1<<20)성능이 더 좋은지 확인해 보세요 .

관련 정보