dd와 pv를 결합할 때의 구문

dd와 pv를 결합할 때의 구문

존재하다:

sudo dd if=/dev/sda bs=64k | pv --size 1.5t | dd of=/dev/sdb

dd의 블록 크기는 입력 후 왼쪽에 있습니까(그림 참조), 아니면 출력 후 오른쪽에 있습니까?

파이프 뷰어 크기 옵션을 사용할 때 값 앞에 등호가 없는 것이 맞나요? 위와 같이 십진수 값을 사용할 수 있나요?

답변1

검토를 통해 많은 문제에 도움이 될 수 있습니다.

sudo dd if=/dev/sda bs=64k | pv --size 1.5t | dd of=/dev/sdb

첫째, 블록 크기를 (극적으로) 늘리고 이에 따라 처리량을 늘릴 수 있습니다. 나는 종종 를 사용합니다 bs=32M. 매개변수의 순서는 dd중요하지 않습니다.

sudo dd if=/dev/sda bs=1M

--size다음으로 등호를 사용하거나 사용하지 않고 지정하는 것은 중요하지 않습니다. 긴 인수(이중 대시로 시작하는 인수)는 일반적으로 까다롭지 않습니다. 그러나 빠르게 시도해 보면 pv인수가 정수여야 함을 알 수 있습니다. 그래서:

pv --size 1500g

마지막으로, 큰 (출력) 버퍼를 지정하는 것이 좋으며 dd루트 권한으로 실행해야 할 수도 있습니다. 우리는 큰 버퍼를 사용하고 있기 때문에 그것을 쓰기 전에 완전히 채워졌는지 확인하는 것이 필요합니다. 그래서 당신은 다음과 같이 끝납니다 :

sudo dd of=/dev/sdb bs=1M iflag=fullblock

함께 찍은,

sudo dd if=/dev/sda bs=1M | pv --size 1500g | sudo dd of=/dev/sdb bs=1M iflag=fullblock

dd그러나 Linux 기반 시스템에서는 디스크 드라이브에서 복사하거나 디스크 드라이브로 복사하는 데 이것이 필요하지 않다는 점을 지적하고 싶습니다 . 이를 바탕으로 전체 명령 체인을 다음과 같이 단순화할 수 있습니다.

sudo sh -c 'pv --skip-errors --size 1500g </dev/sda >/dev/sdb'

관련 정보