タイムマシンファイルをあるディスクから別のディスクにコピーするより速い方法はありますか?


15

タイムマシンのバックアップファイルをすべてBackups.backupdbの下にある別のドライブに移動しようとしています。私は一晩でファイルのコピーを開始しました(b / cコピーの準備にOSXが永遠にかかったことがわかりました...基本的には何時間もファイルを数えていました)。朝、特定のバックアップ(日付のあるフォルダー)のみがコピーされることがわかりました。次に、コピーされなかったものをコピーしようとしました...しかし、OSはそれを許可しませんでした。「バックアップ項目を変更できないため、操作を完了できません」というエラーが表示されました。そのため、新しいドライブ上の不完全なコピーを削除してから、Backups.backupdbフォルダーをもう一度コピーしようと考えています。

かなりイライラします。ターミナルコマンドを使用してこれらのファイルをコピーして、すべてのファイルカウント準備を実行しないようにするより速い方法はありますか?

フォルダー全体をtarでコピーしてからコピーを実行できますが、ファイルのアクセス許可などに干渉しますか?このアプローチの1つのことは、tarのソースボリュームにこれ以上のスペースがないことです。

更新

特にディスクユーティリティの復元機能を使用して、人々が以下に提案する方法のいくつかを試してみましたが、いくつかのエラーメッセージと予期しない結果が得られます(少なくとも私には)。私は2つの方法で復元を試みました。

  • [宛先の消去]をオンにした場合:毎回(2回試しました)、復元が完了すると、「復元できません-無効な操作」および「復元できません-無効な引数」というメッセージが表示されます。ただし、宛先ディスクはTMファイルのコピーを取得します。奇妙なことは、コピー先のディスクがコピー元のディスクとまったく同じであるということです。サイズも同じです。宛先ディスクは実際には1 TBですが、復元後、ファインダーから情報を取得すると200 GBと表示されます。しかし、ディスクユーティリティでは、1 TBのパーティションが表示されます!

次に、ディスクを検証/修復しようとしましたが、次の結果が得られました。

    無効なBツリーノードサイズ
    ジャーナリングされたHFS Plusボリュームを確認します。
    無効なBツリーノードサイズ
    ボリュームの修復が完了しました。
    必要に応じて、ボリュームのブートサポートパーティションを更新します。
    エラー:ディスクユーティリティはこのディスクを修復できません。できるだけ多くのファイルをバックアップし、ディスクを再フォーマットして、バックアップしたファイルを復元します。

TMディスクを検証/修復するかどうかさえわからない...

  • 「Erase Destination」がチェックされていない場合:復元が開始されず、次のメッセージが表示されます。
    復元できませんでした-操作は許可されていません


2
これはうまくいくと思います-他の質問は、ハードリンクをコピーするIO負荷に対処しますが、タイムカプセルのネットワークとエンクロージャーにまとめられているため、ここで尋ねられる一般的な問題の特別なケースです。
bmike

MacOS 10.13.4以降にアップグレードできる場合、エイリアス/ハードリンクがFinderでコピーできないバグが修正されています。私は自分でバックアップTime Machineディスクを別のディスクにコピーしようとしましたが、完璧に機能しました(そしてそれも非常に高速でした)。詳細:apple.stackexchange.com/a/323691/261070
youngrrrr

回答:


13

通常のコピー(またはrsyncまたはdittoを介したコピー)は、互いにリンクされた2つのディレクトリを変換するため、Time Machineを完全にレプリケートしません(連続したTMバックアップで変更なしで行われます)。

最良の方法は、ディスクユーティリティまたはCarbon Copy Clonerのブロックコピー部分を使用してディスク全体をコピーすることで、おそらくSuperDuperでも同様です。


1
dittoのマニュアルページから:「dittoはソースディレクトリに存在するファイルのハードリンクを保持します(ディレクトリのハードリンクは保持しません)」ディスクユーティリティ、またはSuperDuperやCCCなどのツールです。
nohillside

@patrix感謝を-それはブロックがコピーない場合のみこれを行いますので、コピーするためのCCCが使用する同上やrsyncの-ウェブのmanページには、その上で何も言うhelp.bombich.com/kb/troubleshooting/...を
user151019

ソースディスクにはTime Machineバックアップのみが含まれています。宛先ディスクには他のファイルが含まれています。ソースディスクのクローンは必要ありません。Time Machineファイルを宛先ディスクにコピーしたいだけです。
-milesmeow

3
TMファイルを新しいディスクにコピーしようと何度も試みた後、Disk UtilityとCarbon Copy Clonerはどちらもトリックを行いませんでした。SuperDuperは最初の実行時に完璧に機能し、宛先パーティションのサイズを縮小しませんでした!
-milesmeow

2
SuperDuperへのもう1つの投票!ここに。v3.2.4は、macOS 10.14.2 Mojaveの下で、大きなTime Machineバックアップフォルダーを新しいディスクに正常にコピーしましたが、それ以上のスペースは必要ありませんでした。(どのFinderはできませんでしたか...)Time Machineは、新しいディスクを古いディスクであるかのように使い続けます。
gidds

5

macOS 10.14で完全な3TB Time Machine暗号化ドライブを新しい8TBドライブに移行すると、あらゆる種類の問題に遭遇しました。ディスクユーティリティで復元を実行しようとすると、「ソースを検証できません」または「操作は許可されていません」というエラーが発生しました。この投稿や他の投稿で他の提案を試してみたところ、「イメージ/ボリューム上のカタログファイルが断片化されすぎています」などのエキサイティングな新しいエラーメッセージを得ることができましたが、コピーはありません。

最後に、ターミナルで働いたもの:

  1. ソースドライブのフォーマットに一致するディスクユーティリティで新しいディスクを消去します:MacOS Extended(Journaled、Encrypted)
  2. diskutil cs list端末で使用して、古いドライブ上の論理ボリュームの正確なバイトサイズ、新しい論理ボリュームのGUID、および両方のディスク番号を取得しますdisk4
  3. 新しいボリュームのサイズとして、step2の正確なバイトサイズを使用します。私の場合、3TBドライブでは2,999,772,905,472バイトでした:

    sudo diskutil cs resizeVolume $new_lv_guid 2999772905472
    
  4. pvhomebrew のコマンドを使用して、ディスクの低レベルブロックコピーを実行します。これはを使用するのとよく似ていddますが、ETAで進行状況メーターを取得する点が異なります。

    diskutil cs list出力からディスク番号を取得する必要があります。注意してください。ここで、誤ってフルバックアップドライブを新しい空のドライブで上書きするのは非常に簡単です。

    sudo sh -c "$(which pv) --buffer-size 50M -s 2999772905472 < /dev/rdisk${source} > /dev/rdisk${target}"
    

    ここで許可が拒否された/操作が許可されていないというエラーが表示された場合は、セキュリティとプライバシーの設定に移動し、Terminal.appのフルディスクアクセスを追加します。

    私にとっては、これには約10時間かかりましたが、一晩実行しましたが、pv少なくとも、ETA付きの進行状況メーターが表示されます。

  5. 次に、ボリュームを拡張して、ドライブ上の残りのすべてのスペースを占有します。

    sudo diskutil cs resizeVolume $new_lv_guid 0
    

    約5年のバックアップで、これには約3時間かかりました。その時間のほとんどはmacOS fscking によって費やされました。

これで、より広々とした新しいTime Machineドライブをお楽しみいただけます。古いドライブを転用したり、新しいドライブに何かが起こった場合に備えて安全な場所に格納したりできます。


サイズ変更の手順は重要なようです。それらをスキップすると、10時間のファイルコピーが発生し、3 TBのファイルシステムを含む8 TBのボリュームが生成されましたが、サイズ変更の方法がわかりませんでした。


更新このアプローチの潜在的な欠点の1つは、ビットごとのコピーであるため、古いディスクと新しいディスクで識別子が同じであるということです。古いフルディスクを接続すると、Time Machineは新しいディスクであると判断し、バックアップを試み、新しいバックアップ用のスペースを確保するために古いバックアップの削除を開始します。データを大きなディスクに移動して、古い小さなディスクを消去するための素晴らしいアプローチのようです。


こんにちはアンドリュー!このステップバイステップガイドを入力してくれてありがとう(そして、1TBのバックアップを4TBのディスクに転送したいと思っています。新しいディスクでは、元のディスクよりも多くのスペースを占有します)。あなたへの私の質問は、コアストレージを有効にせずに これらの手順を実行csできますか?コアストレージを有効にすることは、潜在的に不要なPITAのようですが、GUIDステップ3のために必要になる場合があります。
Michael Dautermann

@MichaelDautermann Core Storageは、紛失、盗難、または不適切な廃棄の場合にプライバシーを保護するために、バックアップドライブに非常に強く推奨されるFileVaultに必要です。
アンドリュー

上記の方法ではコピーできなかったことを付け加えます。その理由は、システムがこの「操作は許可されない」ことを促したからです。簡単な検索の後、すべてのSIP機能をオフにする必要があることがわかりました。これは、コマンド+ Rを押しながらmacOSを再起動し、ターミナルを開くことで実行できます。ここで、「csrutil disable」と入力して無効にする必要があります。次の再起動で、TMバックアップをコピーすることができました
オリバーケーラー

@andrew私のバージョンは10.14.6であり、あなたが言及したリスクを完全に理解しています。しかし、TimeMachineをddまたはpvできませんでした-SIPをオフにせずにバックアップしました。別の方法がある場合、私は聞いて幸せです。
オリバーケーラー

「pv:write failed:Input / output error」が99%(30時間後、3回の試行-本当に90時間後)になります。ディスクはアンマウントされます。SIP機能は無効です。エラーをグーグルで調べることは何もありません。元の状況と同様(3TB-> 8TB)。sudo sh -c "$(which pv) --buffer-size 50M -s 3000249008128 < /dev/rdisk3 > /dev/rdisk5"- 8TBは、以前に成功リサイズされたResized Core Storage Logical Volume to 3,000,249,008,128 bytes
KS

2

なぜターミナルを使用しないのですか:

cp -RnpP Backups.backupdb
  • -R 再帰的
  • -n 上書きしない(既存のコピーの残りが以前の試行から残っている場合)
  • -p ACL、許可、作成/変更日などを保持します。
  • -P ハードリンクを保持し、ハードリンクまたはシンボリックリンクをたどらない。

本当じゃない。man cpmacOS をお読みください。cpmacOSに付属の通常のコマンドは、-Pを使用してハードリンクをコピーしません。マニュアルページには、「cpはハードリンクされたファイルを個別のファイルとしてコピーすることに注意してください。ハードリンクを保持する必要がある場合は、代わりにtar(1)、cpio(1)、またはpax(1)の使用を検討してください」
chmac

0

この答えはそれを速くすることはできませんが、重複排除(ハードリンク)とアクセス許可を維持しながらデータを適切にコピーする方法を見つけました。追加のボーナスとして、これを使用して、アーカイブ用の最終製品の圧縮されたdmgを作成します。

  1. ディスクユーティリティを使用して、Backups.backupdbディレクトリよりも大きいディスクイメージを作成します。また、イメージ形式にはスパースバンドルディスクイメージを使用し、パーティションにはハードディスクを使用することをお勧めします。このイメージがマウントされたら、情報を取得し、このボリュームの所有権を無視の選択を解除します。

  2. ここでTime Machineをオフにし、ファインダーを使用してBackups.backupdbフォルダーをマウントされたイメージにコピーします。ファインダーは、データをコピーするためのスーパーユーザーの許可を求めます。しばらく飲んだり、何か他のことをしたりします。

  3. コピーが終了したら、すべてが正常であることを確認し、イメージをマウント解除します。ディスクユーティリティから[変換]を選択し、スパースバンドルイメージを圧縮イメージに変換します。繰り返しますが、これには時間がかかる場合があります。

Time Machineバックアップのコピーを2つ作成する必要があります。まばらなバンドルバージョンを削除し、dmgを時間のあるアーカイブとして安全な場所に置くことができます。

これで試したことのないことの1つは、dmgからシステムの復元を行うことですが、動作するはずだと思います。私の目標はタイムマシンの増分変更をアーカイブし、ハードリンク構造を維持することでした。

rsyncとcpも試しましたが、xが過去の日付の量であるxのサイズになるハードリンク構造を保持していないようです。この方法はうまく機能しましたが、ブロックコピーソリューションの速度が得られない可能性があります。


0

Appleには、このための公式チュートリアルがあります。「Time Machine:現在のバックアップドライブから新しいバックアップドライブにバックアップを転送する方法」。

そのページからの大まかな手順:

  1. 新しいバックアップドライブの形式を確認します
  2. 新しいバックアップドライブに権限を設定します
  3. Time Machineを一時的にオフにする
  4. バックアップデータを元のドライブから新しいドライブにコピーします
  5. 新しいドライブを使用するようにTime Machineを設定します

これは、ページがコピー手順の実行を推奨する方法です。

バックアップデータを元のドライブから新しいドライブにコピーします

  1. 新しいFinderウィンドウを開きます。Finderサイドバーで、元のバックアップドライブのアイコンをクリックします。
  2. 新しいFinderウィンドウを開きます。Finderサイドバーで、新しいバックアップドライブのアイコンをクリックします。
  3. フォルダ「Backups.backupdb」を元のバックアップドライブから新しいバックアップドライブの最上位にドラッグします。
  4. 管理者の名前とパスワードを入力し、[OK]をクリックしてコピープロセスを開始します。

バックアップのサイズによっては、バックアップデータのコピーが完了するまでに時間がかかる場合があります。


5
このチュートリアル(Finderでバックアップフォルダーをコピーすることをお勧めします)を実行し、夜間に実行したままにしておくと、約500 / 940gbがコピーされるという許可の問題で終了したため、私はこの質問を見ています。それから私はsudo rsync最後の夜をしましたが、今朝見つけてERROR: out of memory in flist_expand [sender]、私のコピーは今〜600ギガバイトです。私は次に何をするか決めていませんが、読んでいるほとんどの人はすでに公式チュートリアルを知っていると思われます。
PeterT 14

@PeterT私もちょうどtutoを試してみましたが、あなたと同じ問題を抱えています。チュートリアルについて誰もが知っていたとは確信がありません。今、人々はそれが試してみる価値がないことを知っています。
デヴィッド・Andreoletti

1
ファインダを使用してフォルダをコピーすると、ファイルリストを作成するのに時間がかかり、ディスクスペースが足りずに失敗するため、計算に間違いがあります。
マルハル

1
それがまさに私の問題です。元のTMボリュームは550GBで、新しいボリュームは600GBでした。それでも、Mojaveはボリュームのスペース不足について不満を言っていました。私は今SuperDuperを使用しています!「バックアップ-すべてのファイル」モード。
マルクスルーデル

1
macOS Mojave 10.14.2では、Appleのチュートリアルは失敗しました。3TBのバックアップアーカイブを8TBのドライブにコピーしようとしました。Finderはコピーを5日近く費やし(そのほとんどは「残り5秒」と言って)、ドライブが満杯であることをあきらめて文句を言います!そして、それは-約2/3のバックアップしかコピーしていませんでした。明らかに、ハードリンクを保持するのではなく、それぞれの新しいコピーを作成します。したがって、この答えは現在正しくありません。
ギッズ

0

ディスクユーティリティの+1、コメントには長すぎます:

12.250.329ファイルが評価され、10.408.594ファイルがコピーされました。有効なコピー速度は8,68 MB / sです。

SuperDuperを使用した数年のバックアップで磁気2TBバックアップドライブのクローンを作成するために!今年。

約4日と4分の1のファイルの後でキャンセルしたFinderコピーとは対照的に、これには合計で63時間かかりました(SuperDuperは24時間ごとにクロックをリセットし、最終的に15:04:43を示しました)。

明らかに、磁気ディスクがこれほど長くかかった理由ではなかった。Finderが長時間実行されるバックアップディスクにストールする理由は、特にGitインデックスのような多くの小さなファイルの場合、変更されていないファイル上のカスケードシンボリックリンクの数が非常に多いためです。


0

rsyncは、このようなものに最適なユーティリティです。私は通常、このようなものに使用します。この場合、-aPフラグを使用できます。-a(「アーカイブ」)の一部は、アクセス許可、ACLなどを保持することでもあると思いますが、よくわかりません。

IIRCには、ソースファイルがコピー先に正常にコピーされた後にソースファイルを削除できる--deleteオプションもあります。ただし、それを使用する場合は注意が必要です。通常は、-deleteオプションを使用せずに完全なミラーリングを行い、-cオプションと--deleteオプションを指定してコマンドを再実行します。-cはチェックサムであるため、ダウンロードしたすべてのファイルをチェックサム経由でソース上のすべてのファイルと照合し、一致する場合はソースを削除します。そうでない場合は、場合によっては再コピーまたはコピーを再開します。

編集:この場合、ハードリンクを保持するために、コメントごとに-Hフラグを使用してください。


5
rsyncはディレクトリのハードリンクを維持しません。TMのバックアップは、ディレクトリの多くを複製する一方のコピー
nohillside

1
@patrix-これを確認できます。私はそれを試しました。ディレクトリのハードリンクはHFS +にほぼ固有であり、rsyncはそれらを理解しません。
偽の名前


-2

ハードドライブでは、1つのドライブから複数のファイルを移動すると、リーダーが前後に移動して恐ろしいクリック音を出し、転送速度を大幅に低下させます。たとえば、USB 2.0の1つのファイルは、2から30 mbps外付けハードドライブ、ただし2つのファイルは11 mbpsで移動します。また、3つのファイルは6 mbpsで移動します。などzipファイルはファイルよりも速く移動します。


2
これはOPの質問にどのように答えますか?
fsb
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.