Jaki jest najlepszy sposób klonowania dysku między dwoma komputerami Mac?


25

Jaki jest najlepszy sposób klonowania dysku między dwoma komputerami Mac? Pytam o to co kilka lat i za każdym razem, gdy otrzymuję tę samą odpowiedź. Mówią „Użyj Carbon Copy Cloner ”. Ale niefortunnym faktem jest to, że CCC to kopia na poziomie plików między dyskami. Kiedy przeprowadzam migrację do mojego nowego komputera Mac, upewnij się, że wszystkie pliki tam są, ale są tu dziwactwa (w tym różne daty plików itp.).

Tak więc, naprawdę teraz, jeszcze raz: w jaki sposób klonujesz dysk bajt po bajcie?

Odpowiedzi:


44

Możesz użyć polecenia dd, aby wykonać nieco idealny klon dysku. Jest to narzędzie wiersza polecenia dostarczane z systemem OS X. Aby klon był doskonały, musisz upewnić się, że źródło i miejsce docelowe nie są aktywnie używane.

Aby przygotować się do klonowania, zalecam utworzenie dodatkowego dysku rozruchowego, z którego można uruchomić komputer. Źródłem klonowania powinien być wolumin offline, nieużywany podczas tworzenia kopii. W przeciwnym razie ryzykujesz kopiowaniem rzeczy, które są w niepełnym stanie na dysku.

Po uruchomieniu komputera na dodatkowym dysku rozruchowym zaloguj się i uruchom okno terminalu lub iTerm.

Uruchom diskutil, aby uzyskać listę dostępnych dysków. Jednym z nich będzie dysk docelowy, który próbujesz sklonować. Drugi będzie twoim dyskiem źródłowym. Na przykład:

> 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

Powiedzmy, że Macintosh HDjest to źródło i Clonecel naszej dddziałalności. Rozpocznij klonowanie za pomocą:

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

Po ddzakończeniu może pojawić się taki błąd:

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)

Ten ostatni komunikat o błędzie jest w porządku. Ostatni zapisany blok był krótkim, ponieważ nie było pełnego bloku 1 MB do skopiowania. Bez obaw.

Teraz masz nieco mądry klon swojego Macintosh HDdysku. Uruchom ponownie system za pomocą Macintosh HDnapędu i ciesz się klonem!


4
rdisk # omija bufor systemu operacyjnego 4KB. Więcej informacji. Radzę wybrać mniejszy bs, ponieważ przekroczenie 1 m faktycznie spowalnia. (Przynajmniej przez USB. Nie wiem, czy to zewnętrzny dysk USB, czy bezpośrednie połączenie SATA.)
Nick ODell

2
Może warto trochę poeksperymentować z ustawieniem bs. Otrzymałem znaczny wzrost przepustowości (prawie dwukrotnie), zmniejszając rozmiar z bs = 1m do bs = 65536.
Jens Wegar,

1
@JensWegar Zastanawiam się, czy istnieje sposób, aby poznać najlepszy rozmiar bloku dddla danego przelewu bez konieczności uciekania się do ufania wyszukiwaniom internetowym lub przeprowadzania prób typu „ślad i błąd”?
Ian C.

2
@IanC. Czytałem gdzieś, że rozmiar bloku HDD może być wykorzystany jako wskaźnik idealnego rozmiaru, aby dać dd. Z drugiej strony inne źródło stwierdziło, że nie ma kuloodpornego sposobu ustalenia optymalnego rozmiaru. Więc nie mogę udzielić żadnej prawdziwej porady. Jednak eksperymentowanie nie trwało długo. Prawdopodobnie idealna wartość to współczynnik 2, więc zacznę od 4096, a następnie 8192, 16384 i tak dalej. W ten sposób znajdziesz szczyt dość szybko.
Jens Wegar,

1
@ user3.1415927 możesz użyć status=progressopcji, ddaby zobaczyć postęp i szybkość transferu. Następnie możesz przerwać CRTL+Ci spróbować z inną wartościąbs
Wlad

14

Narzędzie wiersza polecenia firmy Apple do klonowania dysku to asr.

Jest on dostosowany do specyfiki systemu OS X potrzebnej do wykonywania operacji obrazowania plik po pliku, a także obrazowania opartego na blokach i zajmuje się różnicami w rozmiarach partycji, umożliwia strumieniowe przesyłanie sieciowe (a nawet strumieniowe przesyłanie multiemisji), a także kopiowanie między dyskami, które są podłączone lokalnie. W przeciwieństwie do tego dd, wie o najnowszym zarządzaniu woluminami Core Storage firmy Apple i jest programem, który graficzne narzędzie dyskowe wywołuje w celu przenoszenia danych z jednej partycji lub woluminu na inną.

Możesz przeczytać więcej na stronie podręcznika asr .


2
Zauważ, że asrjest to to samo narzędzie, którego używa karta Przywracanie narzędzia dyskowego (zobacz moją odpowiedź). Interfejs wiersza poleceń ma dodatkowe opcje pomijane przez interfejs GUI, takie jak konwersja między formatami HFS + (bez rozróżniania wielkości liter) i HFSX (z rozróżnianiem wielkości liter) oraz umieszczanie kopii w grupie woluminów Core Storage. Ale może być trudniejszy w użyciu dla osób, które nie są przyzwyczajone do wiersza poleceń.
Gordon Davisson

Zły link .......
Traderhut Games

Nie jestem pewien, czy można przejść tutaj: archive.org lub nowy link. web.archive.org/web/20150923065146/https://developer.apple.com/… Dzięki @TraderhutGames
bmike

FYI: Otrzymywałem zapisy z szybkością 122 MB / s przy użyciu dd i bloku wielkości 64 K, zabiłem to, aby przełączyć się na asr, wykonując --verbose restore --source / Volumes / X / -target / Volumes / Y - wymaż i muszę powiedzieć, że jestem pod wrażeniem. --verbose nie pokazał mi nic pod względem statystyk (DD ma opcję Ctrl / T, aby pokazać ci postępy) - może musiałem zrobić --verbose na końcu ... Niemniej jednak jestem pod wrażeniem. Otrzymywałem 134 MB / s odczytu i zapisu za pomocą DD, a asr kopie z prędkością 25 MB / s. Więc zamiast kopiowania 4 godziny ... Patrzę na 21 godzin! Tak, nie wiem, czy ma większe szanse na pracę, ale
Traderhut Games

ale najpierw mogę wykonać test z dd, a następnie, jeśli się nie powiedzie, skopiowanie 2 TB z jednego dysku na drugi za pomocą asr ...
Traderhut Games 15.09.18

8

Narzędzie dyskowe może klonować wolumin na wolumin za pomocą karty Przywróć. Pomiędzy dwoma woluminami Mac OS Extended zrobi to kopię blokową, tzn. Po prostu skopiuje struktury woluminów, więc wszystkie pliki będą identyczne (aż do numerów identyfikacyjnych plików). Jest to w zasadzie to samo dd, z wyjątkiem tego, że Narzędzie dyskowe może zwiększać / zmniejszać wolumin, jeśli miejsce docelowe nie jest dokładnie tego samego rozmiaru co źródło, i jest o wiele szybsze (z jakiegoś powodu ddjest dość wolne w OS X).

EDYCJA: Po zapoznaniu się z uwagą @ Iana na temat prędkości przy użyciu / dev / rdiskN vs. / dev / diskN, uruchomiłem kilka szybkich i brudnych testów porównawczych między dwoma dyskami flash 4 GB:

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

Wygląda więc na to, że sugestia rdisk powoduje, że dd działa z tą samą prędkością co Narzędzie dyskowe; prawdziwe różnice polegają na tym, że Narzędzie dyskowe weryfikuje swoje dane (wolniej, ale być może bezpieczniej) i pomija puste miejsce (szybciej, jeśli dysk nie jest prawie pełny). To, jak powiedziałem powyżej, DU może zmieniać rozmiar podczas kopiowania.


1
Narzędzie dyskowe dla systemu OS X jest udokumentowane na docs.info.apple.com/article.html?path=DiskUtility/10.5/en/… .
KatieK,

8

Pełne wyjście z ddviapv

wprowadź opis zdjęcia tutaj

Kopiowanie nawet małego dysku może zająć dużo czasu, a cisza może być frustrująca. Jeśli zainstalujesz pv (przeglądarkę potoków ) , możesz go użyć do monitorowania postępu dowolnego strumienia.

Jeśli używasz homebrew (i powinieneś być) instalacja pvjest tak prosta jak:

brew install pv

Następnie zdecyduj, które dyski chcesz skopiować.

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

W tym przypadku /dev/disk2jest karta Micro SD z mojego Raspberry Pi w wewnętrznym czytniku i /dev/disk3jest nowa MicroSD w kluczu USB.

Polecenie do skopiowania będzie bardzo podobne do zwykłych ddpoleceń, z wyjątkiem tego, że skorzystamy z faktu, że of(plik wyjściowy) ma domyślną wartość STDOUT, a if(plik wejściowy) domyślnie to STDIN. Pozwala to na użycie potoków unix pomiędzy.

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

Rzeczywista wydajność wygląda następująco:

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

2
Lub możesz nacisnąć Ctrl-T, czekając na zakończenie DD, pokaże ci ile to zrobiło i jak szybko .. ładuj: 2,25 cmd: dd 50443 z uruchomionym 1.50u 55.87s 899897 + 0 rekordów w 899896 + 0 nagrywa 58975584256 bajtów przesłanych w 473.978101 sekund (124426812 bajtów / sekundę)
Traderhut Games

4

Klonowanie kopii węglowej było dobre, ale potem na moim Macu Pro nie tworzyło już bootowalnych klonów, próbowałem 3 razy i każdy klon nie uruchomił się inaczej niż poprzednio. Więc przełączyłem się na SuperDuper! i ten klon dobrze się uruchomił


1
Jego odpowiedź zawierała wyjaśnienie: Carbon Copy przestał działać, wyjaśnił, dlaczego się zmienił, na co przeszedł i że zadziałało. Ładne i zwięzłe. Trzy kciuki do góry! Nie chcę czytać długiej książki, aby uzyskać „wypróbuj SuperDuper! - działa ”- kiedy to było wszystko, czego potrzebowałem.
Traderhut Games,

0

Co powiesz na dobry staroświecki styl dd. Może tworzyć krok po kroku kopię dysku. Istnieje wiele przewodników, jak to zrobić, takich jak ten lub ten


2
Odpowiedzi na Ask Different muszą być czymś więcej niż tylko linkiem. Można podać link, ale proszę streść go lub fragmentuj w odpowiedzi. Chodzi o to, aby odpowiedź była samodzielna.
nohillside

-3

Istnieją dwa rodzaje klonowania dysku Mac. Klonowanie na poziomie plików i bloków. Jak wiemy, kloner kopiowania węgla może tworzyć tylko klon oparty na poziomie plików, a jego jeden z dużych konkurentów Superduper może tworzyć klon woluminów i partycjonować nie cały dysk. Proponuję więc wybrać nowe oprogramowanie do klonowania Maca, które jest Klonem Stellar Drive, zdolnym zarówno do klonowania na poziomie plików, jak i na poziomie bloków.

Może tworzyć krok po kroku dokładną kopię całego dysku i poszczególnych woluminów na dowolnym dysku zewnętrznym, wolumenie i dysku sieciowym. Może tworzyć klon dysku w folderze i przywracać kopie zapasowe z tego samego w funkcji bezpłatnej wersji demonstracyjnej. Może tworzyć klon odzyskiwania HD i obsługiwać formaty plików okien, MBR, ExFAT, FAT32 itp. Na komputerze Mac.


1
Jak napisano, twoja odpowiedź nie jest niczym więcej niż listą funkcji produktu, ale bez wyjaśnienia, w jaki sposób wspomniane narzędzie może rozwiązać problem OP. Czy możesz uczynić swoją odpowiedź bardziej użyteczną, opisując bardziej szczegółowo niezbędne kroki (a może także wyjaśniając, jakie korzyści przynosi ta metoda w porównaniu z korzyściami opisanymi w innych odpowiedziach)?
nohillside
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.