두 Mac 사이에서 디스크를 복제하는 가장 좋은 방법은 무엇입니까?


25

두 Mac 사이에서 디스크를 복제하는 가장 좋은 방법은 무엇입니까? 나는 몇 년마다 이것을 물어보고 같은 대답을 얻을 때마다. " 탄소 복사 클로 너 사용 "이라고 그들은 말합니다. 그러나 불행한 사실은 CCC가 디스크 간의 파일 수준 복사본이라는 것입니다. 새 Mac으로 마이그레이션 할 때 모든 파일이 있는지 확인해야하지만 여기 저기 (파일 날짜가 다른 등)에 문제가 있습니다.

자, 이제 다시 한번, 바이트 단위로 디스크를 어떻게 복제합니까?

답변:


44

당신은 사용할 수 있습니다 DD의 드라이브의 비트 완벽한 복제품을 만들 명령을 사용합니다. OS X와 ​​함께 제공되는 명령 줄 도구입니다. 클론을 완벽하게 만들려면 소스와 대상이 활발하게 사용되고 있지 않은지 확인해야합니다.

클론을 준비하려면 부팅 할 수있는 보조 부팅 디스크를 만드는 것이 좋습니다. 복제본을 만들 때 복제본의 소스는 사용하지 않는 오프라인 볼륨이어야합니다. 그렇지 않으면 불완전한 상태의 디스크를 디스크에 복사 할 위험이 있습니다.

컴퓨터가 보조 부팅 디스크로 부팅 된 상태에서 로그인하여 터미널 또는 iTerm 창을 시작하십시오.

사용 가능한 드라이브 목록을 보려면 diskutil 을 실행하십시오 . 그중 하나는 복제하려는 대상 드라이브입니다. 다른 하나는 소스 드라이브입니다. 예를 들면 다음과 같습니다.

> diskutil list
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *320.1 GB   disk0
   1:                        EFI                         209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            319.2 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3       
/dev/disk1
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.1 GB   disk1
   1:                        EFI                         209.7 MB   disk1s1
   2:                  Apple_HFS Backup                  499.8 GB   disk1s2
/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.1 GB   disk2
   1:                        EFI                         209.7 MB   disk2s1
   2:                  Apple_HFS Clone                   499.8 GB   disk2s2

그것이 Macintosh HD소스이며 Clone우리 dd작업 의 목표 라고 가정 해 봅시다 . 다음을 사용하여 복제를 시작하십시오.

> sudo dd if=/dev/rdisk0 of=/dev/rdisk2 bs=1m conv=noerror,sync

dd완료 되면 다음과 같은 오류가 표시 될 수 있습니다.

dd: /dev/rdisk2: short write on character device
dd: /dev/rdisk2: Input/output error
3726+1 records in
3726+1 records out
500107862016 bytes transferred in 14584.393113 secs (34290619 bytes/sec)

마지막 오류 메시지는 실제로 괜찮습니다. 복사 할 전체 1MB 블록이 없기 때문에 마지막으로 작성된 블록은 짧은 블록이었습니다. 걱정 마.

이제 Macintosh HD드라이브를 비트 단위로 완벽하게 복제했습니다 . Macintosh HD드라이브를 사용하여 시스템을 재부팅 하고 클론을 즐기십시오!


4
rdisk #는 4KB OS 버퍼를 무시합니다. 더 많은 정보. bs1m 이상으로 올라가면 실제로 느려지기 때문에 더 작은 것을 선택하는 것이 좋습니다 . (적어도 USB를 통해. 외장 USB 드라이브인지 직접 SATA 연결인지 알 수 없습니다.)
Nick ODell

2
bs 설정으로 조금 실험 해 볼 가치가 있습니다. 크기를 bs = 1m에서 bs = 65536으로 줄이면 처리량이 크게 증가했습니다 (거의 두 배).
Jens Wegar

1
@JensWegar dd인터넷 검색을 신뢰하거나 추적 및 오류 실행을 수행하지 않고도 주어진 전송에 가장 적합한 블록 크기를 알 수있는 방법이 있는지 궁금합니다 .
Ian C.

2
@IanC. 나는 HDD의 블록 크기가 dd를주는 이상적인 크기의 지표로 사용될 수 있다는 것을 읽었습니다. 반면에 다른 소식통은 최적의 크기를 알아내는 방탄 방법이 없다고 말했다. 따라서 실제 조언을 줄 수는 없습니다. 그러나 실험하는 데 너무 오래 걸리지 않았습니다. 아마도 이상적인 값은 2의 인자 일 것이므로 4096부터 시작하여 8192, 16384 등으로 시작합니다. 이 방법으로 피크를 매우 빠르게 찾을 수 있습니다.
Jens Wegar

1
@ user3.1415927의 status=progress옵션을 사용 dd하여 진행률과 전송률을 볼 수 있습니다 . 그런 다음으로 중단 할 수 있습니다 CRTL+C및 또 다른 값으로 시도bs
Wlad

14

디스크 복제를 수행하는 Apple의 맞춤형 명령 줄 유틸리티는 asr입니다.

OS X의 특정 요구 사항에 맞게 파일 단위로 파일을 수행하고 블록 기반 이미징을 수행하고 파티션 크기의 차이를 처리하고 네트워크 스트리밍 (및 멀티 캐스트 스트리밍)을 허용하며 로컬로 연결된 디스크간에 복사 할 수 있습니다. 와 달리 ddApple의 최신 Core Storage 볼륨 관리에 대해 알고 있으며 그래픽 디스크 유틸리티가 한 파티션 또는 볼륨에서 다른 파티션으로 데이터를 이동하기 위해 호출하는 프로그램입니다.

asr 에 대한 매뉴얼 페이지 에서 자세한 내용을 읽을 수 있습니다 .


2
참고 asr디스크 유틸리티 탭 사용 (내 대답을 참조) 복원의 것과 같은 도구입니다. 명령 행 인터페이스에는 HFS + (대소 문자 구분) 및 HFSX (대소 문자 구분) 형식 간 변환 및 사본을 Core Storage 볼륨 그룹에 넣는 등 GUI 인터페이스에서 생략하는 추가 옵션이 있습니다. 그러나 명령 줄에 익숙하지 않은 사람들에게는 사용하기가 더 어려울 수 있습니다.
Gordon Davisson

Bad link .......
Traderhut Games

archive.org 또는 새 링크가 여기에 있는지 확실하지 않습니다. web.archive.org/web/20150923065146/https://developer.apple.com/...의 감사 @TraderhutGames
bmike

참고 : 나는 dd를 사용하여 초당 122MB의 쓰기와 64K의 블록 크기를 얻었고 asr로 전환하여 --verbose restore --source / Volumes / X / -target / Volumes / Y- 지우고 감동한다고 말해야합니다. --verbose는 통계 측면에서 아무 것도 보여주지 않았습니다 (DD는 진행 상황을 보여주기 위해 Ctrl / T 옵션이 있습니다)-아마도 마지막에 --verbose를 수행해야 할 수도 있습니다 ... 그럼에도 불구하고 감동합니다. DD를 사용하여 초당 134MB의 읽기 및 쓰기가 이루어졌으며 asr은 25MB / 초로 시작합니다. 따라서 4 시간이 걸리는 사본 대신 21 시간을보고 있습니다! 그래, 나는 그것이 더 높은 가능성을 가지고 있는지 모르겠지만
Traderhut Games

하지만 난 ... 처음 DD와 테스트를 할 수있어, 그것이 실패하면 그 다음은 다른 사용하여 ASR 하나 개의 디스크에서 2TB를 복사 하루 보자
Traderhut 게임

8

디스크 유틸리티는 복원 탭을 사용하여 볼륨 간 복제를 수행 할 수 있습니다. 두 Mac OS 확장 볼륨 사이에서 블록 복사를 수행합니다. 즉, 볼륨 구조 만 복사하므로 모든 파일이 동일하게 나타납니다 (파일 ID 번호까지). 이 같은 일이 본질적으로 dd, 대상이 정확히 원본과 같은 크기가 아닌 경우 디스크 유틸리티가 계약을 / 볼륨을 확장 할 수 있다는 점을 제외 않으며, 그것은 (어떤 이유로 훨씬 더 빠른 ddOS X에 매우 느리다).

편집 : / dev / rdiskN 대 / dev / diskN을 사용하는 속도에 대한 @Ian의 메모를 본 후 두 개의 4GB 플래시 드라이브간에 복사하는 빠르고 빠른 벤치 마크를 실행했습니다.

dd using /dev/diskN: 2737 seconds
dd using /dev/rdiskN: 907 seconds
Disk Util, full volume: 840 seconds to copy + 213 seconds to verify
Disk Util, empty volume: 4 seconds to copy + 1 second to verify

따라서 rdisk 제안은 dd를 디스크 유틸리티와 동일한 속도로 실행하는 것처럼 보입니다. 실제 차이점은 디스크 유틸리티가 데이터를 확인하고 (느리지 만 더 안전 할 수 있음) 빈 공간을 건너 뜁니다 (디스크가 거의 가득 차지 않은 경우 더 빠름). 즉, 위에서 말했듯이 DU는 복사 할 때 크기를 조정할 수 있습니다.


1
OS X 용 디스크 유틸리티는 docs.info.apple.com/article.html?path=DiskUtility/10.5/en/…에 설명되어 있습니다 .
KatieK

8

에서 상세 출력 dd경유pv

여기에 이미지 설명을 입력하십시오

작은 디스크라도 복사하는 데 시간이 오래 걸리고 침묵이 좌절 될 수 있습니다. pv (파이프 뷰어) 를 설치 하면이를 사용하여 모든 스트림의 진행 상황을 모니터링 할 수 있습니다.

homebrew 를 사용 하고 있고 설치해야하는 경우 다음 과 pv같이 쉽습니다.

brew install pv

그런 다음 복사 할 디스크를 결정하십시오.

diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *251.0 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:          Apple_CoreStorage SSD                     250.1 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3

/dev/disk1 (internal, virtual):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            SSD                    +249.8 GB   disk1
                                 Logical Volume on disk0s2
                                 2CFBB247-D59D-474F-8467-2B1BDB275524
                                 Unencrypted

/dev/disk2 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *15.6 GB    disk2
   1:             Windows_FAT_32 boot                    43.0 MB    disk2s1
   2:                      Linux                         15.5 GB    disk2s2

/dev/disk3 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *15.6 GB    disk3
   1:             Windows_FAT_32 NO NAME                 15.6 GB    disk3s1

이 경우 /dev/disk2내부 리더에있는 Raspberry Pi의 Micro SD 카드 /dev/disk3이며 USB 동글의 새로운 MicroSD입니다.

복사 dd명령은 of(출력 파일)의 기본값이 STDOUT이고 if(입력 파일)의 기본값이 STDIN 이라는 사실을 이용한다는 점을 제외하고는 일반 명령 과 매우 유사합니다 . 이를 통해 사이에 유닉스 파이프 를 사용할 수 있습니다 .

# I'm going to define variables to make your copy-paste easier
SRC=/dev/rdisk2
DST=/dev/rdisk3

# This is the command you want
sudo dd bs=1m if=$SRC | pv | sudo dd bs=1m of=$DST

# Notice how similar this is to doing a simple
sudo dd bs=1m if=$SRC |      sudo dd bs=1m of=$DST

# ...which is functionally identical to
sudo dd bs=1m if=$SRC                      of=$DST

# (except 2 processes vs. 1)

실제 출력은 다음과 같습니다.

dd bs=1m if=/dev/zero count=16000 | pv | dd bs=1m of=/dev/null
16GiB 0:00:06 [2.46GiB/s] [       <=>                                          ]

2
또는 DD가 완료되기를 기다리는 동안 Ctrl-T를 누르십시오. 수행 한 작업량 및 속도를 표시합니다. 473.978101 초에 전송 58,975,584,256 바이트 밖으로 기록 (124,426,812 바이트 / 초)
Traderhut 게임

4

Carbon copy cloner는 좋았지 만 Mac Pro에서는 더 이상 부팅 가능한 클론을 만들지 않았으며 3 번 시도했지만 이전과 달리 모든 클론이 부팅되지 않았습니다. 그래서 SuperDuper로 전환했습니다! 그리고 그 클론은 잘 부팅


1
그의 대답에는 설명이 포함되어 있습니다. Carbon Copy가 작동을 멈 췄기 때문에 그가 전환 한 이유, 전환 한 이유 및 작동 방식에 대해 설명했습니다. 좋고 간결합니다. 세 엄지 손가락! 'SuperDuper를 시험해보기 위해 긴 책을 읽고 싶지 않습니다! -작동합니다.-그게 내가 필요한 전부였습니다.
Traderhut Games

0

좋은 ol '는 어떻습니까 dd. 드라이브를 비트 단위로 복사 할 수 있습니다. 로이 같은 작업을 수행하는 방법에 거기 가이드가 많이 있습니다 이것 또는 이 하나


2
Ask Different에 대한 답변은 단순한 링크 그 이상이어야합니다. 링크를 포함해도 괜찮지 만 답변에 요약하거나 발췌하십시오. 아이디어는 독립형으로 만드는 것입니다.
nohillside

-3

Mac 드라이브 복제에는 두 가지 유형이 있습니다. 파일 레벨 및 블록 레벨 기반 복제. 우리가 알다시피 카본 카피 클론은 파일 레벨 기반 클론 만 생성 할 수 있으며, 경쟁 업체 인 Superduper는 볼륨의 클론을 생성하고 전체 디스크 만이 아닌 파티션을 생성 할 수 있습니다. 따라서 파일 수준 및 블록 수준 복제가 가능한 Stellar Drive Clone 인 새로운 Mac 복제 소프트웨어를 제안합니다.

외부 드라이브, 볼륨 및 네트워크 드라이브에 전체 드라이브와 특정 볼륨의 비트 단위로 정확한 사본을 만들 수 있습니다. 무료 데모 버전 기능으로 폴더에 드라이브 복제본을 생성하고 백업을 복원 할 수 있습니다. 그것은 복구 HD의 복제본을 생성하고 Mac에서 창 파일 형식, MBR, ExFAT, FAT32 등을 지원할 수 있습니다.


1
작성된 답변은 제품 기능 목록에 지나지 않지만 언급 된 도구가 OP의 문제를 어떻게 해결할 수 있는지에 대한 설명이 없습니다. 필요한 단계를보다 자세하게 설명하고이 방법이 다른 답변에 설명 된 방법과 비교했을 때의 이점을 설명하여 답변을 더 유용하게 만들 수 있습니까?
nohillside
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.