/dev/Storage/Storage
파이프를 사용하여 (LVM 아래의 LV)를 이미지 파일에 복사해 보았습니다 dd | pv | dd
. 오류를 보고하는데, 디스크 복사가 완료되었는지, 아니면 오류로 인해 중지되었는지 dd
알고 싶습니다 . dd
두 가지 다른 출력을 제공하기 때문에 확실하지 않습니다. 하나는 상단에 오류가 있고 다른 하나는 오류가 없습니다. 나는 그 사이에 0.1초만 추가되고 추가 데이터가 없기 때문에 추측하고 아니오라고 말하고 싶지만 실제로 있는지는 확실하지 않습니다.
/dev/Storage/Storage
1TB 디스크(TB = 10 12 = 1000 4 ) 또는 931.51 GiB(기비바이트 = 2 30 = 1024 3 ) 또는 1953513472 섹터입니다. 디스크의 파일 시스템이 복잡해 제대로 작동하지 않습니다.
$ sudo dd if=/dev/Storage/Storage | pv | dd of=Storage.img
dd: error reading ‘/dev/Storage/Storage’: Input/output error ]
1627672400+0 records ins] [ <=> ]
1627672400+0 records out
833368268800 bytes (833 GB) copied, 75181 s, 11.1 MB/s
776GB 20:53:01 [10.6MB/s] [ <=> ]
1627672400+0 records in
1627672400+0 records out
833368268800 bytes (833 GB) copied, 75181.1 s, 11.1 MB/s
답변1
하드웨어 오류인 경우 커널 로그 메시지( dmesg
, 또는 )에서 SATA 드라이버의 자세한 메시지를 확인하세요. /var/log/kern.log
또한 유용합니다: smartctl -x /dev/sda
.파티션의 끝이나 다른 것을 읽으려는 경우 커널 로그에도 나타날 수 있습니다.
I/O 오류 후에도 dd가 계속 실행되도록 하고 오류 이후에 읽을 수 있는 부분을 읽으려면 다음을 사용하십시오.
dd if=... of=... conv=noerror bs=128k # it doesn't get any faster beyond about 128k, because of L2 cache size
(댓글에서 OP가 언급했듯이 ddrescue
이것 말고도 더 많은 것이 있었습니다. IIRC는 conv=noerror
GNU dd가 존재한 후 추가되었습니다 ddrescue
.)
중단한 부분부터 계속하려면 seek
및 skip
옵션도 사용할 수 있습니다 conv=notrunc
.
dd가 얼마나 멀리 있는지 알고 싶다면 표준 입력의 파일 위치를 살펴보세요.
cat /proc/$(pidof dd)/fdinfo/0 # dd opens its infile as fd #0
(또는 ls -lh
출력 파일의 크기). 파이프를 통해 전체 하드 드라이브의 데이터를 두 번 더 복사하는 것은 나에게는 어리석은 것처럼 보입니다. 마치 복사하는 데 걸리는 시간보다 컴퓨터가 약간 느려지는 것처럼 보입니다.
아니면 적어도 이렇게 하세요:
dd if=... conv=noerror bs=128k | pv > Storage.img
답변2
기본 블록
dd
크기인 512바이트를 사용하고 있습니다. 더 큰 블록 크기(예:128k
짝수) 를 사용하면 성능이 크게 향상될 수 있습니다1m
.두 개의 명령을 실행하기 때문에 두 개의 출력이 있습니다
dd
. 첫 번째는 I/O 오류를 표시하는 장치 판독기입니다.사용 중인 장치 이름을 보면 아마도 LVM: 을 사용하고 있을 것입니다
/dev/Storage/Storage
. 이것이 하위 세트가 아닌 전체 디스크입니까?lvdisplay
장치 이름 뒤에 숨은 의미를 알아내는 데 사용됩니다 .
답변3
저도 같은 문제를 겪고 있는데 이 문제를 해결하는 데 도움이 될 수 있는 특정 양식에 대한 튜토리얼이나 게시물이 없습니다 dd
. 좀 파다가 발견한이 문제.이 솔루션그것은 나에게 정말 잘 작동합니다.
사용 사례의 예는 다음과 같습니다.
$ sudo apt-get install gddrescue
$ sudo ddrescue /dev/Storage/Storage Storage.img | pv
일반적인 형태는 다음과 같습니다.
$ sudo ddrescue <in_file> <out_file>
물론, 진행 상황 모니터링 도구로 | pv
파이프하려는 경우입니다 .stdout