İki Mac arasında bir diski klonlamanın en iyi yolu nedir?


25

İki Mac arasında bir diski klonlamanın en iyi yolu nedir? Bunu her iki yılda bir soruyorum ve her seferinde aynı cevabı buluyorum. " Carbon Copy Cloner Kullanın " diyorlar. Ancak talihsiz gerçek şu ki, CCC diskler arasında dosya düzeyinde bir kopyadır. Yeni Mac'ime geçiş yaptığımda, tüm dosyaların orada olduğundan emin olun ancak burada ve burada tuhaflıklar var (dosya tarihleri ​​farklı vb. Dahil).

Öyleyse, gerçekten şimdi, bir kez daha: diski bayt bayt üzerinden nasıl klonlarsınız?

Yanıtlar:


44

Bir sürücünün biraz mükemmel bir klonu yapmak için dd komutunu kullanabilirsiniz . OS X ile birlikte gelen bir komut satırı aracıdır. Klonu mükemmel hale getirmek için kaynağın ve hedefin aktif olarak kullanılmadığından emin olmanız gerekir.

Klon hazırlığı için, önyükleyebileceğiniz ikincil bir önyükleme diski oluşturmanızı öneririm. Klon kaynağınız, kopyayı oluştururken kullanımda olmayan çevrimdışı bir birim olmalıdır. Aksi halde, eksik durumda olan şeyleri diske kopyalama riski vardır.

Makineniz ikincil önyükleme diskinize önyüklenirken oturum açın ve bir Terminal veya iTerm penceresini açın.

Kullanılabilir sürücülerinizin bir listesini almak için diskutil komutunu çalıştırın . Bunlardan biri, klonlamaya çalıştığınız hedef sürücünüz olacaktır. Diğeri kaynak sürücünüz olacak. Örneğin:

> 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

Diyelim ki bu Macintosh HDkaynak ve operasyonumuzun Clonehedefi dd. Klonu şununla başlat:

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

İşiniz ddbittiğinde şöyle bir hata görebilirsiniz:

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)

Bu son hata mesajı aslında tamam. Yazılan son blok kısa bir bloktu çünkü kopyalanacak 1 MB'lık tam bir blok yoktu. Telaşa gerek yok.

Artık Macintosh HDsürücünüzün mükemmel bir klonuna sahipsiniz . Macintosh HDSürücüyü kullanarak sisteminizi yeniden başlatın ve klonunuzun keyfini çıkarın!


4
rdisk #, 4 KB'lik bir OS tampon belleğini atlar. Daha fazla bilgi. Daha küçük bir seçim yapmanı tavsiye ederim bs, çünkü 1m'nin üstüne çıkmak onu yavaşlatıyor. (En azından USB üzerinden. Harici bir USB sürücüsü mü yoksa doğrudan SATA bağlantısı mı olduğunu söyleyemem.)
Nick ODell

2
Bs ayarı ile biraz denemeye değer olabilir. Boyutu bs = 1m'den bs = 65536'ya indirerek verimde (neredeyse iki katı) önemli artışlar sağladım.
Jens Wegar

1
@JensWegar ddInternet aramalarına güvenmeden veya iz-yanılma çalışması yapmadan belirli bir transfer için verilecek en iyi blok boyutunu bilmenin bir yolu olup olmadığını merak ediyorum.
Ian C.

2
@IanC. Bir yerlerde HDD’nin blok boyutunun dd vermek için ideal boyutun bir göstergesi olarak kullanılabileceğini okudum. Öte yandan başka bir kaynak, en uygun boyutu bulmak için kurşun geçirmez bir yol olmadığını söyledi. Yani orada gerçek bir tavsiye veremem. Ancak, denemek için çok uzun sürmedi. Muhtemelen ideal değer 2 faktörüdür, bu yüzden 4096, sonra 8192, 16384 ve benzeri ile başlardım. Zirveyi oldukça hızlı bir şekilde bu şekilde bulacaksınız.
Jens Wegar

1
@ user3.1415927 ilerlemeyi ve aktarım hızını görmek için status=progressseçeneğini kullanabilirsiniz dd. Öyleyse, iptal CRTL+Cedip başka bir değerle deneyebilirsinizbs
Wlad

14

Apple'ın ısmarlama komut satırı yardımcı programı disk klonlaması yapmaktır asr.

Blok tabanlı görüntülemenin yanı sıra dosya olarak dosya yapması gereken OS X'in spesifikasyonlarına göre uyarlanır ve bölüm boyutlarındaki farklılıklar ile ilgilenir, ağ akışına (ve hatta çok noktaya yayın akışına) yerel olarak bağlı diskler arasında kopyalamaya izin verir. Bunun aksine dd, Apple'ın en son Core Storage birim yönetimi hakkında bilgi sahibidir ve grafiksel Disk Yardımcı Programının verileri bir bölümden veya birimden diğerine taşımak için çağırdığı programdır.

Asr için manuel sayfadan daha fazlasını okuyabilirsiniz .


2
Bunun asr, Disk Yardımcı Programı'nın Geri Yükleme sekmesinin kullandığı araç olduğunu unutmayın (cevabımı görün). Komut satırı arayüzü, GUI arabiriminin HFS + (büyük / küçük harf duyarlı) ve HFSX (büyük / küçük harf duyarlı) biçimleri arasında dönüştürme ve kopyayı bir Çekirdek Depolama birim grubuna koyma gibi ihmal ettiği ek seçeneklere sahiptir. Ancak komut satırına alışkın olmayan insanlar için kullanımı zor olabilir.
Gordon Davisson

Kötü link .......
Traderhut Oyunları 15:18

Archive.org veya yeni bir linkin buraya gelmenin yolu olduğundan emin değil. web.archive.org/web/20150923065146/https://developer.apple.com/… Thanks @TraderhutGames
bmike

FYI: dd ve 64 K blok büyüklüğünü kullanarak 122 MB / sn yazma alıyordum, bunu asr'a çevirmek için, --verbose restore - source / Volumes / X / -target / Volumes / Y - yaparak öldürdüm. silmek ve etkilendim söylemeliyim. --verbose bana istatistikler açısından hiçbir şey göstermedi (DD size ilerlemesini göstermek için bir Ctrl / T seçeneğine sahip) - belki sonunda --verbose yapmam gerekiyordu ... Hiç de değil, etkilendim. DD kullanarak 134 MB / sn okudum ve Yazıyordum, ve 25 MB / sn'de tekme atıyor. Yani, kopya yerine 4 saat alıyor ... 21 saat bakıyorum! Evet, o çalışma şansı daha yüksek olur bilmiyorum ama yok
Traderhut Oyunları

ama önce dd ile bir test yapabilirim ve sonra başarısız olursa,
2TB'yi

8

Disk Yardımcı Programı Geri Yükle sekmesiyle birime birime klonlama yapabilir. İki Mac OS Genişletilmiş birim arasında, bu bir blok kopya yapar, yani yalnızca birim yapılarını kopyalar, böylece tüm dosyalar aynı olur (dosya numarası numaralarına kadar). Bu esasen aynı şeydir dd, ancak hedef kaynakla aynı boyutta değilse Disk Hizmeti'nin birimi genişletip / daraltabiliyor olması ve daha hızlı olması (bir nedenden ötürü ddOS X'te oldukça yavaş olması) dışında aynı şeydir .

EDIT: @ Ian'ın / dev / rdiskN ve / dev / diskN kullanarak hız ile ilgili notunu gördükten sonra, iki adet 4 GB flash sürücü arasında kopyalama yapan hızlı ve kirli ölçütler kullandım:

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

Bu yüzden rdisk önerisi dd'nin Disk Utility ile aynı hızda çalışmasını sağlıyor; Asıl fark, Disk Yardımcı Programının verilerini doğrulaması (daha yavaş, fakat belki daha güvenli) ve boş alanı atlaması (eğer disk neredeyse dolu değilse daha hızlı). Bu ve yukarıda söylediğim gibi DU kopyalandıkça yeniden boyutlandırabilir.


1
OS X için Disk Yardımcı Programı docs.info.apple.com/article.html?path=DiskUtility/10.5/en/… adresinde belgelenmiştir .
KatieK

8

ddÜzerinden ayrıntılı çıktıpv

görüntü tanımını buraya girin

Küçük bir diskin kopyalanması bile uzun zaman alabilir ve sessizlik sinir bozucu olabilir. Eğer yüklerseniz (boru izleyici) PV herhangi akımının ilerlemesini izlemek için kullanabilirsiniz.

Homebrew kullanıyorsanız (ve kullanmanız gerekiyorsa), kurulumu pvkadar kolaydır:

brew install pv

Ardından, hangi diskleri kopyalamak istediğinize karar verin.

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

Bu durumda /dev/disk2Raspberry Pi'm dahili okuyucusundaki Micro SD kart ve /dev/disk3USB dongle'lı yeni bir MicroSD.

Bunu kopyalamak için kullanılan ddkomut , genel komutlara çok benzer olacaktır , ancak of(çıktı dosyası) varsayılan olarak STDOUT ve if(girdi dosyası) varsayılan olarak STDIN değerini kullanır. Bu, aradaki unix borularını kullanmanızı sağlar .

# 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)

Gerçek çıktı şöyle görünür:

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

2
Veya DD'nin tamamlanmasını beklerken Ctrl-T tuşlarına basabilirsiniz, ne kadar yapıldığını ve ne kadar hızlı olduğunu size gösterir .. load: 2.25 cmd: dd 50443 1.50u 55.87s 899897 + 0 899896 + 0 kayıtlarını gösteriyor 473.978101 saniye içinde transfer 58975584256 bayt dışarı kayıtları (124426812 bayt / sn)
Traderhut Oyunları

4

Karbon kopya klonlayıcı iyiydi, fakat Mac Pro'mda artık önyüklenebilir klonlar yapılmadı, 3 kez denedim ve her klon daha önce farklı bir şekilde önyükleme yapamadı. Bu yüzden SuperDuper'a geçtim! ve o klonun iyi bir şekilde çizildiği


1
Cevabı bir açıklama içeriyordu: Carbon Copy çalışmayı bıraktı, neden değiştiğini, neye geçtiğini ve çalıştığını açıkladı. Güzel ve özlü. Üç başparmak yukarıya! SuperDuper'ı denemek için uzun bir kitap okumak istemiyorum! - işe yarıyor - ihtiyacım olan şey buydu.
Traderhut Oyunları 15:18

0

İyi modaya ne dersin dd? Sürücünüzün biraz bit kopyasını alabilirsiniz. Bunun veya bunun gibi bunun nasıl yapılacağına dair birçok rehber var


2
Ask Üzerine Cevaplar Farklı bir bağlantıdan daha fazlası olmalı. Bir bağlantı eklemek tamam, ama lütfen cevabınızdaki yazıyı özetleyin veya alıntı yapın. Fikir cevabı tek başına yapmaktır.
yokuş yukarı

-3

İki tür klonlama Mac sürücüsü vardır. Dosya seviyesi ve blok seviyesi temelli klonlama. Bildiğimiz kadarıyla karbon kopya klonlayıcı sadece dosya düzeyinde tabanlı bir klon oluşturabilir ve onun en büyük rakiplerinden biri olan Superduper yalnızca bir bütün olarak disk değil, birimlerin klonunu yaratabilir. Bu yüzden, hem dosya düzeyinde hem de blok düzeyinde klonlamayı engelleyebilen Stellar Drive Clone olan yeni çıkan bir Mac klonlama yazılımına gitmeyi önereceğim.

Sürücünüzün tamamının tam kopyasını ve herhangi bir harici sürücünüzde, biriminizde ve ağ sürücünüzde belirli birimlerde bitebilir. Klasörde bir sürücü klonu oluşturabilir ve ücretsiz demo sürüm özelliğinde aynı yedeklemeleri geri yükleyebilir. Kurtarma HD'sinin klonunu oluşturabilir ve Mac'inizdeki pencere dosyası formatlarını, MBR, ExFAT, FAT32'yi destekler.


1
Yazılı olarak cevabınız, bir ürün özellikleri listesinden daha fazla değildir, ancak söz konusu aracın OP'nin problemi nasıl çözebileceği hakkında bir açıklama yapmadan. Lütfen gerekli adımları daha ayrıntılı olarak açıklayarak (ve bu yöntemin diğer cevaplarda açıklananlara kıyasla hangi faydaları sağladığını da açıklayarak) cevabınızı daha kullanışlı hale getirebilir misiniz?
yokuş yukarı
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.