2台のMac間でディスクをクローンする最良の方法は何ですか?私はこれを数年ごとに、そして同じ答えを得るたびに尋ねます。「カーボンコピークローナーを使用する」と彼らは言います。しかし、残念なことに、CCCはディスク間のファイルレベルのコピーです。新しいMacに移行すると、すべてのファイルが存在することを確認しますが、あちこちに癖があります(ファイルの日付が異なるなど)。
それで、本当に今、もう一度:バイトごとにディスクをどのようにクローンしますか?
2台のMac間でディスクをクローンする最良の方法は何ですか?私はこれを数年ごとに、そして同じ答えを得るたびに尋ねます。「カーボンコピークローナーを使用する」と彼らは言います。しかし、残念なことに、CCCはディスク間のファイルレベルのコピーです。新しいMacに移行すると、すべてのファイルが存在することを確認しますが、あちこちに癖があります(ファイルの日付が異なるなど)。
それで、本当に今、もう一度:バイトごとにディスクをどのようにクローンしますか?
回答:
ddコマンドを使用して、ドライブの完全なクローンを作成できます。これは、OS Xに同梱されているコマンドラインツールです。クローンを完璧にするためには、ソースとデスティネーションがアクティブに使用されていないことを確認する必要があります。
クローンを準備するには、起動可能なセカンダリブートディスクを作成することをお勧めします。コピーのソースは、コピーを作成するときに使用されていないオフラインボリュームにする必要があります。そうしないと、ディスク上の不完全な状態のものをコピーする危険があります。
マシンをセカンダリブートディスクから起動し、ログインしてターミナルまたはiTermウィンドウを起動します。
diskutilを実行して、使用可能なドライブのリストを取得します。それらの1つは、クローンを作成しようとしているターゲットドライブになります。もう1つはソースドライブになります。例えば:
> 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)
最後のエラーメッセージは実際には問題ありません。コピーする完全な1MBブロックがなかったため、最後に書き込まれたブロックは短いブロックでした。心配ない。
これで、Macintosh HD
ドライブのビット単位の完璧なクローンができました。Macintosh HD
ドライブを使用してシステムを再起動し、クローンをお楽しみください!
dd
インターネット検索を信頼したり、トレイルアンドエラーを実行したりせずに、特定の転送に与える最適なブロックサイズを知る方法があるのだろうか?
status=progress
オプションを使用dd
して、進行状況と転送速度を確認できます。その後、次のCRTL+C
値を使用して中止し、別の値を試すことができますbs
ディスクのクローンを作成するためのアップルのカスタムコマンドラインユーティリティはasr
です。
OS Xの仕様に合わせて調整され、ファイルごとに実行するだけでなく、ブロックベースのイメージングを実行し、パーティションサイズの違いに対処し、ネットワークストリーミング(さらにはマルチキャストストリーミング)およびローカル接続されたディスク間のコピーを許可します。とは異なりdd
、Appleの最新のCore Storageボリューム管理について知っており、グラフィカルディスクユーティリティが1つのパーティションまたはボリュームから別のパーティションまたはボリュームにデータを移動するために呼び出すプログラムです。
asr
は、ディスクユーティリティの[復元]タブで使用するのと同じツールです(私の回答を参照)。コマンドラインインターフェイスには、GUIインターフェイスでは省略される追加オプションがあります。たとえば、HFS +(大文字と小文字を区別しない)形式とHFSX(大文字と小文字を区別する)形式間の変換、Core Storageボリュームグループへのコピーの配置などです。しかし、コマンドラインに慣れていない人には使いにくいかもしれません。
ディスクユーティリティは、[復元]タブを使用してボリューム間の複製を実行できます。2つのMac OS拡張ボリューム間で、これはブロックコピーを実行します。つまり、ボリューム構造をコピーするだけなので、すべてのファイルが(ファイルID番号まで)同一になります。これは基本的に同じことですdd
。ただし、宛先がソースと正確に同じサイズではない場合、Disk Utilityはボリュームを拡張/縮小でき、はるかに高速です(何らかの理由でdd
OS Xでは非常に低速です)。
編集:/ dev / rdiskN対/ dev / diskNを使用した速度に関する@Ianのメモを見た後、2つの4GBフラッシュドライブ間でコピーするいくつかのクイック&ダーティベンチマークを実行しました。
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とほぼ同じ速度で実行されるように見えます。本当の違いは、ディスクユーティリティがデータを検証し(低速ですが、おそらくより安全)、空白スペースをスキップすることです(ディスクが満杯に近くない場合は高速になります)。それと、前述したように、DUはコピーするときにサイズを変更できます。
dd
via からの詳細な出力pv
小さなディスクでもコピーするのには時間がかかり、沈黙はイライラすることがあります。pv(パイプビューア)をインストールすると、それを使用してストリームの進行状況を監視できます。
homebrewを使用している場合は(そうするべきです)インストール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
、内部リーダーのRaspberry PiのMicro SDカード/dev/disk3
で、USBドングルの新しいMicroSDです。
これをコピーする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] [ <=> ]
Carbon copy clonerは良かったのですが、Mac Proでは起動可能なクローンを作成できなくなり、3回試してみましたが、以前とは異なり、すべてのクローンが起動に失敗しました。そこで、SuperDuperに切り替えました!そしてそのクローンはうまく起動しました
クローンMacドライブには2つのタイプがあります。ファイルレベルおよびブロックレベルベースのクローン作成。私たちが知っているように、カーボンコピークローンはファイルレベルベースのクローンのみを作成でき、Superduperはディスク全体ではなくボリュームとパーティションのクローンを作成できます。そこで、ファイルレベルとブロックレベルの両方のクローン作成が可能なStellar Drive Cloneである、新しい新興のMacクローン作成ソフトウェアをお勧めします。
ドライブ全体と、外部ドライブ、ボリューム、およびネットワークドライブ上の特定のボリュームのビット単位の正確なコピーも作成できます。フォルダーにドライブのクローンを作成し、無料のデモバージョン機能で同じものからバックアップを復元できます。リカバリHDのクローンを作成し、Macでウィンドウファイル形式、MBR、ExFAT、FAT32などをサポートできます。
bs
1mを超えると実際には遅くなるため、より小さいを選択することをお勧めします。(少なくともUSB経由。外部USBドライブか直接SATA接続かは