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


8

서비스를 해제하기 전에 하드 드라이브를 안전하게 지우는 동안 dd if=/dev/urandom of=/dev/sda거의 하루 종일 shred -vf -n 1 /dev/sda걸리지 만 동일한 컴퓨터와 동일한 드라이브에서는 몇 시간 밖에 걸리지 않습니다.

이것이 어떻게 가능한지? 병목 현상은의 제한된 출력이라고 생각합니다 /dev/urandom. 파쇄기는 무작위성이 적고 단일 목적으로 만 사용하기에 충분한 의사 난수 발생기를 사용합니까 urandom?


드라이브, 특히 ssd 드라이브를 지우는 가장 좋은 옵션은 SATA secure erase 명령입니다. 파괴를 금지하는 다른 옵션은 실패합니다. 훨씬 빠르며 SSD에서 몇 초가 걸릴 수 있습니다.
Maarten Bodewes

답변:


11

파쇄 는 내부 의사 난수 발생기를 사용합니다.

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

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

나는 임의의 데이터보다 더 효과적이라는 것을 설득하고 있지 않다 단일 패스제로 이전의 내용을 왜곡에서 (또는 다른 바이트 값).

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


2

dd작은 덩어리를 사용하여 데이터를 쓰는 것이 원인 일 수 있습니다 . 시도 dd if=... of=... bs=(1<<20)더 나은 수행하는 경우를 참조 할 수 있습니다.


다음 번에 시도하고 결과를 게시합니다.

+1 기본 dd블록 크기는 512입니다. 컴퓨터의 디스크 제한보다 낮게 수행되었습니다.
Piotr Findeisen

/ dev / urandom은 매우 빠를 것입니다. dd 블록 크기는 거의 확실하게 문제입니다.
Dan Pritts

2
당신이처럼 보인다 블록의 크기를 증가되면 /dev/urandom될 수있는 병목 현상을 - 나는 USB 3.0 이상과 같은 일부 SSD 드라이브를 테스트하고있어 dd내가 326 MB를 얻을 명령을 / s는 if=/dev/zero만 12.8 메가 바이트 / s는if=/dev/urandom
austinmarton
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.