내가 뭐하는 거지 dd
명령으로 두 개의 동일한 드라이브 :
dd if=/dev/sda of=/dev/sdb bs=4096
두 하드 드라이브는 모두 동일한 모델 번호이며 1TB의 저장 공간이 있습니다. /dev/sda
4096의 블록 크기를 사용합니다. /dev/sda
로컬 드라이브이며 /dev/sdb
원격 캐디입니다. 다음 프로토콜을 사용할 수 있습니다.
- USB2.0 High Speed (현재 계획)
- 기가비트 Over-The-Network 복제 (실제로 시도조차 원하지 않음)
- USB3.0 (다른 드라이브 캐디를 찾은 경우)
- eSATA (케이블을 찾거나 구매할 경우)
- SATA (케이블을 찾거나 구입하면 랩톱 CD 드라이브를 좋아해야 함)
이 드라이브 사본을 실행하는 방법이 96 시간 미만입니까? 이외의 도구를 사용할 수 있습니다 dd
.
다음 파티션 (UUID 포함)을 복제해야합니다.
- Fat32 EFI 파티션 (*)
- NTFS Windows 파티션 (*)
- HFS + OSX 파티션
- EXT4 우분투 파티션 (*)
- 스왑 파티션 (*)
*
Clonezilla 지원
나는 Clonezilla를 시도했지만 훨씬 빠르지 만 HFS + 스마트 복사를 지원하지 않습니다. 아마도 최신 버전이 이것을 지원합니까?
첫 번째 복제본을 만들 때 HFS +를 제외한 모든 파티션을 수행했으며 매우 빠르게 진행되었습니다. (총 3 시간 이내)
답변
내 경험상, 나는 명령 줄에 더 빠른 것이 없다고 생각 dd
합니다. bs
매개 변수를 조정하면 속도가 증가 할 수 있습니다. 예를 들어 읽기 / 쓰기 속도가 100MB / s보다 큰 2 개의 HDD가 있으므로 다음과 같이하십시오.
dd if=/dev/sda of=/dev/sdb bs=100M
또한이 pv
두 드라이브에서 가장 빠른 속도를 확인하고 복제에 진행하는 (먼저 설치해야합니다). 물론 루트에서 수행해야합니다.
pv < /dev/sda > /dev/sdb
PV를 사용하면 156MB / s를 얻었습니다.
pv
속도 를 제외하고 좋은 점은 진행률, 현재 속도, 시작 이후 시간 및 ETA를 보여줍니다. HFS +와 관련하여, 나는 “속도”부분을 돕기 위해 노력하고 있습니다. 으로 pv
또는 매우 최적화 된 bs
매개 변수, 당신은보다 7 시간 (1백50메가바이트 / s의 현재 속도로 6 시간 50 분)에서 4 TB 드라이브를 할 수 있습니다.
사용중인 연결 유형과 사용 가능한 다른 유형으로 몇 가지 테스트를 수행했습니다. Asus Z87 Pro와 Intel DZ68DP를 사용하고있었습니다. 이것은 내 결과 있었지만, 처음으로 우리는 많은 전송 속도 (원시 속도)에 대한 이론적 인 속도는 단지, 것을 알 필요가 이론 . 실제 테스트를 수행 한 결과 실제 속도의 40 % ~ 80 % 사이였습니다. 이 테스트는 사용 된 장치, 연결 유형, 마더 보드, 연결 케이블 유형, 파일 시스템 유형 등에 따라 변경 될 수 있습니다. 이를 염두에두고 이것이 내가 얻은 것입니다 (장치에 대한 쓰기 속도 만 테스트했으며 읽기는 일반적으로 더 높습니다).
Connected Device - Connection Type - Speed (Write Speed)
USB 2.0 USB 2.0 25 MB/s
USB 3.0 USB 2.0 35 MB/s
USB 3.0 USB 3.0 73 MB/s
eSata eSata 80 MB/s
Sata 2G HDD Sata 2G 120 MB/s
Sata 3G HDD Sata 2G 140 MB/s
Sata 3G HDD Sata 3G 190 MB/s
Sata 2G SDD Sata 2G 170 MB/s
Sata 3G SDD Sata 2G 210 MB/s
Sata 3G SDD Sata 3G 550 MB/s
답변
파티션 도매를 복사하려면 대신을 사용하십시오cat
dd
. 얼마 전에 벤치 마크를 실행 하여 두 디스크 사이에 파티션이 아닌 큰 파일을 복사했습니다 (동일한 디스크에서 상대 타이밍이 다름).
dd bs=64M 51.3
dd bs=1M 41.8
dd bs=4k 48.5
dd bs=512 48.9
cat 41.7
cp 45.3
이 벤치 마크의 결론은 dd
문제에 대한 블록 크기의 선택 (그렇지는 않지만)을 cat
빠르게 복사하는 가장 좋은 방법을 자동으로 찾는다는 dd
것입니다. 속도를 늦출 수 있습니다. 블록 크기가 작 으면 dd
작은 읽기 및 쓰기 시간이 낭비됩니다. 블록 크기가 크면 한 디스크가 유휴 상태를 유지하고 다른 디스크는 읽거나 쓰는 중입니다. 한 디스크를 읽는 동안 다른 디스크를 쓸 때 최적의 속도가 달성됩니다.
파티션을 복사하려면을 사용하여 파일을 복사하는 것이 더 빠를 수 있습니다 cp -a
. 사용 가능한 공간이있는 파일 수와 파일 시스템 크기에 따라 다릅니다. 파일을 복사하면 파일 수에 거의 비례하는 오버 헤드가 있지만 다른 한편으로 여유 공간을 복사하면 시간이 낭비됩니다.
USB2의 최대 데이터 속도는 50MB / s 미만이며 1TB를 전송하는 데 6 ~ 7 시간이 걸립니다. 이것은 USB 버스를 포화시킬만큼 빠른 하드 디스크를 가정합니다. 7200 rpm 드라이브가 더 빠르다고 생각하지만 5900rpm은 그렇게 빠르지 않을 수도 있습니다 (선형 쓰기의 경우 일 수도 있습니다).
두 디스크 중 하나를 병렬로 사용하는 경우 디스크 헤드를 움직여야하므로 복사 속도가 상당히 느려질 수 있습니다.
답변
문제는 연결 유형 및 블록 크기입니다. 가장 빠른 결과를 얻으려면 블록 크기가 일반적으로받는 최저 쓰기 속도의 절반이어야합니다. 이것은 당신에게 안전한 마진을 줄 것이지만 여전히 많은 수를 허용합니다. 물론 데이터를 보유하기에 충분한 램이 필요합니다.
USB 2.0은 초당 12Mbps (Mbps), USB 2.0 고속은 480Mbps입니다. 이것은 물론 원시 속도입니다. 바이트 당 8 비트 및 프레이밍 오버 헤드로 사용 가능한 속도 (MB / s)는 일반적으로 소수점 이하입니다. 예를 들어 480 raw는 사용할 수있는 48MB가됩니다. 이것이 수학적으로 최고라는 것을 명심하십시오. 실제 세계에서는 조금 더 낮을 것입니다. USB 2.0 고속 연결의 경우 실제 저장 장치가 연결 속도와 같거나이를 능가 할 경우 최대 쓰기 속도는 약 30-35MB입니다.
답변
잘 조정 된 dd
( ‘pv’) 또는 ‘cat’명령 의 원시 속도는 이길 수 없다는 것에 동의 하지만 사본에 문제가있는 경우 (잘못된 섹터, 정전, 사용자 오류 등) 시작해야합니다 위에.
ddrescue -dd의 모든 속도를 가진 FOSS 도구 를 제안하고 싶지만 디스크 오류를 해결하고 실패가 있으면 나중에 다시 시작할 것입니다.
답변
Windows 7을 HDD에서 SSD로 옮길 때 이것과 다른 대답을 찾았습니다. 필자의 경우 소스 드라이브가 더 크면 / dev / sda-> / dev / sdb 장치 수준에서 작업했을 것입니다.
Win7과 3 개의 파티션 … USB에서 Xbuntu 14.04 라이브 CD를 사용했습니다. 승리 한 컴퓨터의 DVD를 꺼내 SSD를 제자리에 놓으십시오. partclone을 설치하고 이것을 시도하십시오 :
partclone.ntfs -b -N -s /dev/sda3 -o /dev/sdb3
Partclone은 Windows에서 chkdisk를 실행 해야하는 ntfs에 숨어 있었으므로 빠른 수정으로 partclone이 행복해졌습니다.
ntfsfix -b /dev/sda3
ntfsfix -d /dev/sda3
모든 명령은 루트로 실행됩니다. Partclone의 ncurses UI (-N 옵션)는 전송이 7GB / 분이고 5GB / 분으로 종료되어 83MB / 초에 해당한다고 말했습니다. 큰 부분은 partclone이 사용되지 않은 공간을 복사하지 않기 때문에 복제본이 매우 빠르다는 것입니다.
추가적 잠재적 기각 증 :
-
이전하려는 드라이브가 이전에 사용 된 경우 GPT의 잔존물이있을 수 있습니다. Windows 7 출하시 설치는 일반적으로 msdos / mbr 파티션 테이블입니다. 대상 드라이브에서 GPT 조각을 제거해야합니다. 이 유닉스 및 리눅스 QA가 도움이되었습니다. 당신은 사용해야하는
gdisk
장치에 다음에 z 및 예는 GPT 데이터를 보내 겠하고 MBR을 보관 확인하기 위해 X를 사용합니다. -
장치 수준 dd를 수행하지 않는 경우를 잊지 마십시오
dd if=/dev/sdb of=/dev/sda bs=446 count=1
. sdb가 원본 또는 오래된 드라이브이고 sda가 대상 또는 새 드라이브 ( source ) 인 곳을 사용하여 MBR을 복사해야합니다.
답변
최근에 100GB 파티션 (HDD) 이미지를 만들어 새로운 SSD 디스크에 씁니다.
다음은 프로세스 속도를 크게 높일 수있는 팁입니다. 🙂
파일을 더 작은 부분으로 분할 (파일이 클수록 작동 속도가 느림)
sudo dd if=/dev/sda3 conv=sync,noerror bs=2M | split -a 3 -d -b 1G - /maindisk.img
이 과정에서 (별도의 터미널에서) 속도를 확인할 수 있습니다
pgrep -l '^dd$' #to find PROCESSID
kill -USR1 PROCESSID #to check the speed
그런 다음 결과 파일로 가득 찬 디렉토리 (maindisk.img000, maindisk.img001 등)가 있으면 다음을 사용하십시오.
sudo cat maindisk.img* | sudo dd of=/dev/sda1
SSD의 새로운 파티션에 이미지를 ‘굽기’하려면 (파티션 크기는 이전 크기와 같아야 함)
나에게 그것은 일반적인 방법보다 loooot 더 빠르다 (분할없이). 이미지 생성의 평균 속도는 ~ 13MB / s입니다. ‘정상적인’방법을 사용하면 ~ 15MB / s로 시작한 다음 1MB / s로 감소합니다.
답변
이 스레드를 찾는 사람이라면 ddrescue 와 같은 데이터 복구를 위해 설계된 도구를 사용하는 것이 훨씬 쉽고 빠릅니다 . 읽기 오류가 발생하면 먼저 좋은 부품을 구하려고합니다. 또한 언제든지 구조를 중단하고 나중에 같은 시점에 다시 시작할 수 있습니다.
두 번 실행하십시오.
먼저, 읽기 오류없이 모든 블록을 복사하고 rescue.log에 오류를 기록하십시오.
sudo ddrescue -f -n /dev/sdX /dev/sdY rescue.log
두 번째 라운드에서는 불량 블록 만 복사하고 포기하기 전에 소스에서 3 번 읽습니다.
sudo ddrescue -d -f -r3 /dev/sdX /dev/sdY rescue.log
이제 새 드라이브를 마운트하고 파일 시스템이 손상되었는지 확인할 수 있습니다.
추가 정보 :
https://www.gnu.org/software/ddrescue/manual/ddrescue_manual.html