Як скопіювати обсяг Mac за допомогою cp?


13

Я досліджував це годинами. У режимі одиночного користувача я використовував:

cp -Rpvn /* /Volumes/MyBackup

Мій зовнішній USB підключений /Volumes/MyBackup

Однак проблема полягає в тому, що через 24 години він все ще не припиняє копіювати 300 ГБ даних на зовнішній накопичувач USB. Я думаю, що це проблеми з символічними посиланнями, такими як /Volumes/MacHDтом, який також є, /Volumes/MacHDі /Volumes/MyBackupя не впевнений у цьому.

Як скопіювати обсяг Mac за допомогою cp? Чи cp -Rpvn /* /Volumes/правильно MyBackup?


2
Ви використовуєте cp так, але це не правильний інструмент для роботи. Для цього вам потрібна rsync.
CousinCocaine

1
Чи є у вас можливість запустити ваш Mac в режимі цільового диска? А може просто вискочити HD?
CousinCocaine

Я не в змозі виконати цільовий режим, оскільки у мене немає другого Mac. Я сподівався на менш ризикований варіант, ніж знімати привід.
ermSO

rsync - це, мабуть, найкращий варіант тут, хоча, я думаю, ви також можете використовувати ddбайт для байтової копії вашого жорсткого диска Mac.
Thibmaek

1
ddце спосіб створити резервне копіювання за секторами, яке виглядає як те, що ви робите тут (але будьте дуже обережні, щоб переконатися, що ви перезаписуєте насправді те, що ви хочете перезаписати). rsyncце спосіб зробити складні чи великі операції з копіюванням. cpчудово підходить для окремих файлів, але не підходить для масштабних операцій.
cpast

Відповіді:


25

Використання rsyncдля цієї мети , так як cpне може точно відтворити всі файли , які існують на OS X. Перевага rsyncнад dittoі cpє:

  • перервана передача може легко перезапуститися з дуже невеликими витратами.
  • перезавантаження навіть відновити частину шляху через великий файл.
  • виключення файлів і - сухий запуск дозволяють легко тестувати та ітераційне проріджування.

Найпростіший спосіб використання rsyncта збереження більшості речей (дозволів, символьних посилань, редагування дат тощо) - використовувати архів -aабо --archiveпрапор для архіву. Щоб побачити ваш прогрес, використовуйте -Pабо--progress

Rsync працює як:

rsync options source destination

У вашому випадку я рекомендую наступне:

rsync --archive --verbose --one-file-system --human-readable --progress /from/ /to

Або коротше:

rsync -avxhP /from/ /to

Зверніть увагу на відсутність кінцевої косої риси в /toрозташуванні.

дивіться коментарі для більш корисних прапорів


6
Також потрібно прапор -x, щоб уникнути проходу до встановлених дисків, які не мають однакового обсягу.
Кент

kudo для bmike для того, щоб зробити цю публікацію набагато читабельнішою.
CousinCocaine

2
-Pнасправді рівнозначний --progressі --partialкомбінованому. Дивіться сторінку чоловіка .
кирб

1
Я б пропустив --compress(корисний лише для мережевих передач) і додав -E(збереження розширених атрибутів та ресурсів вилок).
Гордон Девіссон

5

Якщо ви хочете зробити вірну копію вмісту файлової системи, уникайте використання cp. Натомість використовуйте ditto(1)команду, яка зберігає жорсткі посилання, дозволи на файли, вилки ресурсів та метадані HFS. На відміну від цього cp, dittoмається на увазі зберегти якомога більше цієї інформації за замовчуванням.

Це просто питання бігу .sudo ditto src dest


Виправте мене, якщо я помиляюся, але я впевнений, що cpбуло оновлено для копіювання метаданих файлів у 10.4.
NobodyNada

Був, але dittoвсе ж кращий варіант.
Джундесант

1
І rsyncце найкращий варіант.
CousinCocaine

2

Ви забули скласти список виключень-файлів і, ймовірно, копіюєте речі, які неможливо / не слід копіювати, включаючи бездонні файли, такі як / dev / random.

Хоча cp може виконати роботу, є кращі інструменти. Rsync - це одне, Carbon Copy Cloner або SuperDuper - інше. Щоб використати кухонну аналогію, ви використовуєте ніж для відкриття банки. Rsync - це відкривачка для банок, Carbon Copy Cloner - електрична відкривачка для банок. Я регулярно використовую rsync, але налаштування, необхідні для копіювання працюючої операційної системи, є досить складними, я ніколи не намагався все це робити сам.

 cp -Rpvn /* /Volumes/MyBackup 

Схоже, все, що ви хочете зробити, це зробити резервну копію. Ваш Mac включає в себе спеціально машину часу для цієї мети. Відкрийте Налаштування системи -> Машина часу, виберіть зовнішній диск, увімкніть його і залиште в спокої. Це працює дуже добре і вимагає менше хвилини вашого часу.


Я не можу отримати доступ до GUI. Все, на що я можу працювати, - це єдиний користувальницький режим, тому час CCC, супердупер і машина часу - це не варіанти. Які налаштування ви б використовували з rsync? В ідеалі я хотів би отримати завантажувальну копію. Я не міг зайнятися аср на роботі.
ermSO

1
@ermSO Оскільки у вас, очевидно, є зовнішній диск, встановіть нову ОС на зовнішній, а потім завантажте з неї. Усі поточні Macs можуть завантажуватися з Firewire або USB. Потім ви можете зробити гідну резервну копію файлів користувачів та відновити внутрішній диск. Зазвичай я роблю повне стирання в цих випадках, усуваючи всі залишкові проблеми каталогів.
Павло

ddбуде робити секторні копії в командному рядку, і це хороший вибір для копіювання цілого тома на інший цілий том, видаляючи при цьому весь другий том.
cpast

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

1
@juandesant - це його команда, а не моя. я б не використовував CP взагалі.
Павло

0

Ви можете створити резервну копію Time Machine з командного рядка за tmutilдопомогою утиліти Time Machine. Ви можете встановити призначення, а потім замовити резервну копію вручну.

Щоб встановити гучність резервного копіювання Time Machine:

sudo tmutil setdestination / Томи / MyBackup

Потім запустіть резервну копію:

tmutil startbackup --auto

--autoПрапор буде намагатися розглядати його як звичайний час запланованого резервного копіювання.

Після резервної копії Time Machine ви можете знову встановити ОС X на свій Mac, а потім імпортувати всі файли з резервної копії Time Machine.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.