Який найкращий спосіб клонувати диск між двома Mac?


25

Який найкращий спосіб клонувати диск між двома Mac? Я прошу це кожні пару років або близько того, і кожен раз, коли я отримую однакову відповідь. "Використовуйте Carbon Copy Cloner ", кажуть вони. Але прикрий факт полягає в тому, що CCC - це копія на рівні файлів між дисками. Коли я переходжу на свій новий Mac, переконайтеся, що всі файли є, але тут і там є примхи (у тому числі дати файлів різні тощо).

Отже, справді зараз, ще раз: як клонувати диск через байт-байт?

Відповіді:


44

Ви можете використовувати команду dd, щоб зробити трохи ідеальний клон накопичувача. Це інструмент командного рядка, що постачається з ОС X. Для того, щоб зробити клон ідеальним, вам потрібно переконатися, що джерело та пункт призначення активно не використовуються.

Для підготовки до клону рекомендую створити вторинний завантажувальний диск, з якого ви можете завантажуватися. Вашим джерелом для клону повинен бути офлайн-том, який не використовується, коли ви робите копію. Інакше ви ризикуєте скопіювати на диск речі, які знаходяться в неповному стані.

Коли машина завантажиться на ваш вторинний завантажувальний диск, увійдіть у систему та запустіть вікно Terminal або 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)

Останнє повідомлення про помилку насправді гаразд. Останній записаний блок був коротким блоком, оскільки не було повного блоку в 1 МБ для копіювання. Не хвилюйтесь.

Тепер у вас є трохи розумний ідеальний клон вашого Macintosh HDдиска. Перезавантажте систему за допомогою Macintosh HDдиска та насолоджуйтесь своїм клоном!


4
rdisk # обходить буфер ОС 4 КБ. Більше інформації. Я б радив, що ви вибрали менший розмір bs, оскільки перехід вище 1 м насправді робить це повільніше. (Принаймні, через USB. Я не можу сказати, чи це зовнішній USB-привід чи пряме з'єднання SATA.)
Nick ODell

2
Можливо, варто трохи експериментувати з налаштуванням bs. Я отримав значне збільшення пропускної здатності (майже вдвічі) за рахунок зменшення розміру від bs = 1m до bs = 65536.
Єнс Вегар

1
@JensWegar Цікаво, чи існує спосіб дізнатися найкращий розмір блоку для передачі ddдля певної передачі без необхідності довіряти пошуку в Інтернеті чи виконувати прогони та помилки?
Ян Ч.

2
@IanC. Десь я читав, що розмір блоку жорсткого диска може бути використаний як показник ідеального розміру для надання dd. З іншого боку, інше джерело сказало, що немає способу встановити кулі, щоб визначити оптимальний розмір. Тому не можна давати реальних порад там. Однак експеримент не зайняв занадто багато часу. Ймовірно, ідеальне значення - це коефіцієнт 2, тому я б почав з 4096, потім 8192, 16384 тощо. Пік ви знайдете досить швидко таким чином.
Jens Wegar

1
@ user3.1415927 ви можете скористатися status=progressопцією, ddщоб побачити хід і швидкість передачі. Тоді ви можете перервати CRTL+Cі спробувати ще одне значення дляbs
Wlad

14

Apple замовчувала утиліту командного рядка для клонування дисків asr.

Він розроблений з урахуванням специфіки ОС X X для виконання файлів за файлами, а також для блокування зображень на основі блоків та розбіжностей з різницею розмірів розділів, дозволяє мережевої потокової передачі (і навіть багатоадресної передачі), а також копіювання між дисками, які локально підключені. На відміну від цього dd, він знає про останнє керування обсягом Core Storage від Apple, і це програма, яку графічна програма Disk Utility вимагає переміщувати дані з одного розділу чи тому в інший.

Ви можете прочитати більше на сторінці керівництва для asr .


2
Зауважте, що asrце той самий інструмент, який використовує вкладка Відновлення Disk Utility (див. Мою відповідь). Інтерфейс командного рядка має додаткові параметри, які інтерфейс GUI упускає, такі як перетворення між HFS + (нечутливим до регістру) та HFSX (залежно від регістру) форматів та розміщення копії в групі томів Core Storage. Але це може бути складніше використовувати для людей, які не звикли до командного рядка.
Гордон Девіссон

Погане посилання .......
Traderhut Games

Не впевнений, що це архів.org чи нове посилання - це шлях до цього місця web.archive.org/web/20150923065146/https://developer.apple.com/… Дякуємо @TraderhutGames
bmike

FYI: Я отримував записи у 122 Мб / сек за допомогою dd та розміру блоку 64K, я вбив це для переходу на asr, роблячи - відновлення верболозу - source / Volumes / X /-target / Volumes / Y - стерти, і мушу сказати, що я вражений. - verbose нічого не показав мені з точки зору статистики (DD має варіант Ctrl / T, щоб показати вам прогрес) - можливо, мені потрібно було зробити --verbose наприкінці ... Тим більше я вражений. Я отримував 134 Мб / сек для читання і запису за допомогою DD, а ASR брикається зі швидкістю 25 Мб / сек. Отже, замість того, щоб копія займала 4 години ... я дивлюсь на 21 годину! Так, я не знаю, чи має більший шанс працювати, але
Ігри Traderhut

але спершу я можу зробити тест з dd, а потім, якщо він не вдасться, нехай
пройде

8

Disk Utility може виконувати клонування об'єму до об’єму на вкладці «Відновити». Між двома томами Mac OS Extended, це зробить блок-копію, тобто просто копіює структури томів, тому всі файли виходять однаковими (аж до номерів ідентифікатора файлу). Це, по суті, те саме dd, за винятком того, що Disk Utility може розширити / скоротити гучність, якщо пункт призначення не зовсім такого розміру, як джерело, і він набагато швидший (чомусь ddдосить повільний на OS X).

EDIT: Побачивши примітку @ Ian про швидкість використання / dev / rdiskN vs. / dev / diskN, я запустив кілька швидких та брудних орієнтирів, що копіюють між двома флешками 4 Гб:

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 працювати з тією ж швидкістю, що і Disk Utility; реальні відмінності полягають у тому, що Disk Utility перевіряє свої дані (повільніше, але, можливо, безпечніше) та пропускає порожнє місце (швидше, якщо диск майже не заповнений). Це, і, як я вже говорив вище, DU може змінити розмір під час його копіювання.


1
Утиліта диска для OS X задокументована на docs.info.apple.com/article.html?path=DiskUtility/10.5/uk/… .
KatieK

8

Докладний висновок від ddчерезpv

введіть тут опис зображення

Копіювання навіть невеликого диска може зайняти багато часу, і тиша може розчарувати. Якщо ви встановите pv (pipe viewer), ви можете використовувати його для контролю за ходом будь-якого потоку.

Якщо ви користуєтеся домашньою мовою (і вам належить), встановити 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є карта Micro SD від мого Raspberry Pi у внутрішньому зчитувачі і /dev/disk3є новим MicroSD в USB-ключі.

Команда для її копіювання буде дуже схожа на загальні ddкоманди, за винятком того, що ми скористаємося тим, що of(вихідний файл) за замовчуванням є STDOUT та if(вхідний файл) за замовчуванням STDIN. Це дозволяє використовувати труби unix між ними.

# 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
Або ви можете натиснути Ctrl-T, дочекавшись завершення DD, він покаже, скільки він зробив і як швидко .. навантаження: 2,25 смd: dd 50443, що працює 1,50u 55,87s 899897 + 0 записів у 899896 + 0 записує 58975584256 байтів, переданих за 473.978101 сек (124426812 байт / сек)
Traderhut Games

4

Клоун-копіювальний пристрій був хорошим, але потім на моєму Mac Pro він більше не робив завантажувальних клонів, я спробував це 3 рази, і кожен клон не зміг завантажитися на відміну від раніше. Тож я перейшов на SuperDuper! і цей клон вибухнув чудово


1
Його відповідь включала пояснення: Carbon Copy кинув роботу, пояснив, чому він перейшов, на що він перейшов і що це спрацювало. Приємно і лаконічно. Три великі пальці вгору! Я не хочу читати довгу книгу, щоб отримати спробу SuperDuper! - це працює '- коли це було все, що мені було потрібно.
Ігри Traderhut

0

Як щодо хорошого олімпійського dd. Це може зробити побітну копію вашого диска. Існує безліч посібників про те, як це зробити, наприклад, цей чи цей


2
Відповіді на запитання різних повинні бути більше, ніж просто посилання. Добре включити посилання, але будь ласка, узагальнюйте або витягуйте його у відповідь. Ідея полягає в тому, щоб зробити відповідь самостійною.
nohillside

-3

Існує два типи клонування диска Mac. Клонування на рівні файлів та на рівні блоку. Як нам відомо, клон копіювання копій може створювати лише клон на рівні файлів, і його один з великих конкурентів Superduper може створити клон томів і розділити не весь диск. Тож я запропоную розробити нове програмне забезпечення для клонування Mac, яке є Clone Drive Clone, здатне як на рівні файлів, так і на клонування рівня блокування.

Це може створити побітну точну копію всього вашого накопичувача та конкретних томів на будь-якому зовнішньому диску, томі та мережевому диску. Він може створити клон накопичувача у папці та відновити резервні копії з того самого у своїй безкоштовній демо-версії. Він може створити клон відновлення HD та формати файлів вікон підтримки, MBR, ExFAT, FAT32 тощо на вашому Mac.


1
Як було написано, ваша відповідь не набагато більше, ніж перелік особливостей продукту, але без будь-яких пояснень про те, як згаданий інструмент може вирішити проблему, яку має ОП. Чи можете ви зробити свою відповідь кориснішою, описуючи необхідні кроки більш докладно (а можливо, також пояснивши, які переваги має цей метод порівняно з тими, які описані в інших відповідях)?
nohillside
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.