DD로 가는 더 빠른 방법?

DD로 가는 더 빠른 방법?

회전하는 USB 스핀 드라이브에서 SSD로 원시 파일을 DD하려고 합니다. 압축을 시도했습니다(그러나 분명히 복사하기 전에 확장해야 합니다). arm7 GB RAM 장치에 대한 세부 정보를 본 적이 있는데 한 번에 사용 가능한 처리 능력의 27%-50%만 사용합니다. 복사 시간을 3시간으로 줄이려고 노력 중인데 지금은 6시간 넘게 걸리네요.

저는 bs=1m을 사용하고 있는데 DD를 개선하기 위해 무엇을 할 수 있는지 잘 모르겠습니다. 어쨌든 프로세스를 분기하고 프로세서를 활용할 수 있습니까?

암호화된 볼륨에서 DDing을 수행하기 위해 truecrypt 포크를 사용하고 있습니다. 이렇게 하면 속도가 느려질 것이라는 것을 알고 있으므로 압축하여 시스템의 암호 해독 작업을 줄이고 압축을 풀어야 합니다.

답변1

Linux 기반 시스템을 사용하는 경우 cat다음을 사용하십시오 .dd

cat source.img >/dev/destdisk

그러나 실제로는 디스크의 IO 속도와 연결된 데이터 버스, 즉 회전 디스크가 데이터를 전송할 수 있는 속도와 사용 중인 USB 유형의 속도를 고려해야 합니다.

결론: 100% CPU 바인딩된 경우 소프트웨어에서 무언가를 수행할 수 있지만 여기서는 거의 확실하게 IO 바인딩됩니다.


~에 따르면cat(1)이 dd(1M)보다 빠르게 실행되는 이유이 유틸리티는 동일한 블록 크기에서도 cat더 빠릅니다 . (이 기사에서는 그 이유를 설명합니다. 사용법 때문 이 아니라 사용법 dd때문인 것 같습니다 .)catmmap()dd

답변2

병목 현상은 확실히 USB 드라이브/USB 케이블/USB 버스입니다.

파일 복사는 CPU를 많이 사용하는 작업이 전혀 아닙니다. CPU는 실제로 최고 속도로 실행될 필요가 없기 때문에 스트레스를 받지 않습니다.

데이터가 USB 장치에서 RAM까지 압축되지 않은 상태로 전달되어 동일한 병목 현상이 발생하므로 압축을 전혀 사용할 필요가 없습니다.

사용 중인 USB 포트가 USB 드라이브의 최대 속도에 병목 현상을 일으키지 않는지 확인하는 것 외에는 할 수 있는 일이 많지 않습니다. 예를 들어 USB 2.0 포트 1개와 USB 3.0 포트 1개가 있고 USB 드라이브가 USB 3.0인 경우 ). 호환되는 경우 USB 드라이브를 USB 3.0 포트에 삽입하십시오.)

관련 정보