在兩台Mac之間克隆磁盤的最佳方法是什麼?我每兩年左右詢問一次,每次得到相同答案時都會詢問。他們說:“使用碳複製克隆”。但是不幸的事實是CCC是磁盤之間的文件級副本。當我遷移到新的Mac上時,請確保所有文件都存在,但是到處都是怪癖(包括文件日期不同等)。
那麼,實際上,現在再說一次:如何以字節為單位克隆磁盤?
在兩台Mac之間克隆磁盤的最佳方法是什麼?我每兩年左右詢問一次,每次得到相同答案時都會詢問。他們說:“使用碳複製克隆”。但是不幸的事實是CCC是磁盤之間的文件級副本。當我遷移到新的Mac上時,請確保所有文件都存在,但是到處都是怪癖(包括文件日期不同等)。
那麼,實際上,現在再說一次:如何以字節為單位克隆磁盤?
您可以使用 dd命令對驅動器進行完美的克隆。這是OS X附帶的命令行工具。為了使克隆完美,您需要確保未主動使用源和目標。
為克隆準備,我建議創建可以從中引導的輔助引導盤。製作副本時,克隆源應為離線卷,而不是在使用中。否則,冒著將狀態不完整的內容複製到磁盤上的風險。
將計算機引導到輔助引導磁盤後,登錄並啟動終端或iTerm窗口。
運行 diskutil以獲得可用驅動器的列表。其中之一將是您要克隆的目標驅動器。另一個將是您的源驅動器。例如:
> diskutil list / dev / disk0#:類型名稱大小標識符0:GUID_partition_scheme * 320.1 GB磁盤0 1:EFI 209.7 MB disk0s1 2:Apple_HFS Macintosh HD 319.2 GB disk0s2 3:Apple_Boot恢復高清650.0 MB disk0s3 / dev / disk1#:類型名稱大小標識符0:GUID_partition_scheme * 500.1 GB disk1 1:EFI 209.7 MB disk1s1 2:Apple_HFS備份499.8 GB disk1s2 / dev / disk2#:類型名稱大小標識符0:GUID_partition_scheme * 500.1 GB disk2 1:EFI 209.7 MB disk2s1 2: Apple_HFS克隆499.8 GB disk2s2
假設我們的 dd
操作的源是 Macintosh HD(disk0)
,而 Clone(disk2)
是目標。使用以下命令啟動克隆:
> sudo dd if = / dev / rdisk0 of = / dev / rdisk2 bs = 1m conv = noerror,sync
何時 dd
完成後,您可能會看到這樣的錯誤:
dd:/ dev / rdisk2:在字符devicedd上短寫:/ dev / rdisk2:輸入/輸出錯誤3726+ 1記錄in3726 + 1記錄out 500107862016字節在14584.393113秒(34290619字節/秒)中傳輸。
最後一條錯誤消息實際上是可以的。最後寫入的塊是一小段,因為沒有完整的1MB塊要復制。不用擔心。
現在,您已經有了 Macintosh HD
驅動器的逐位完美克隆。使用 Macintosh HD
驅動器重新啟動系統並享受您的克隆!
Apple進行磁盤克隆的定制命令行實用程序是 asr
。
它是針對OS X的特定需求量身定制的,它需要逐個文件執行以及基於塊的映像並處理分區大小的差異,允許網絡流(甚至多播流)以及在本地連接的磁盤之間進行複制。與 dd
不同,它了解Apple最新的Core Storage捲管理,並且是圖形磁盤實用程序調用的用於將數據從一個分區或卷移動到另一個分區或卷的程序。
您可以閱讀在 asr手冊頁中有更多信息。
Disk Utility可以使用“還原”選項卡進行卷對卷克隆。在兩個Mac OS Extended卷之間,這將進行塊複製,即它僅複製卷結構,因此所有文件都完全相同(直到文件ID號)。這與 dd
基本相同,不同之處在於,如果目標磁盤的大小與源磁盤大小不完全相同,並且磁盤工具可以擴展/收縮卷,而且速度要快得多(出於某種原因, dd
在OS X上非常慢)。
編輯:看到@Ian關於使用/ dev / rdiskN與.dev / diskN的速度的註釋後,我運行了一些quick&dirty基準測試在兩個4GB閃存驅動器之間:
dd使用/ dev / diskN:2737秒dd使用/ dev / rdiskN:907秒磁盤Util,完整捲:840秒要復制+ 213秒來驗證Disk Util,空volume:複製需要4秒,驗證需要1秒。 r>
真正的區別是Disk Utility驗證其數據(速度較慢,但也許更安全),並跳過空白空間(如果磁盤幾乎未滿,則速度更快)。就像我在上面說的那樣,DU可以在復制時調整大小。
pv
dd
輸出詳細信息
即使復制一個小磁盤也要花費很長時間,並且靜音可能令人沮喪。如果安裝 pv(管道查看器),則可以使用它來監視任何流的進度。
如果您使用的是自製軟件(應該如此),則安裝 pv
的操作非常簡單:
brew install pv
然後確定要復制的磁盤。
diskutil列表
/ dev / disk0(內部,物理):
#:TYPE NAME SIZE IDIFIFIER
0:GUID_partition_scheme * 251.0 GB磁盤0
1:EFI EFI 209.7 MB磁盤
2:Apple_CoreStorage SSD 250.1 GB磁盤
3:Apple_Boot恢復高清650.0 MB磁盤
/ dev / disk1(內部,虛擬):
#:TYPE NAME SIZE IDIFIFIER
0:SSD +249.8 GB磁盤1
disk0s2上的邏輯卷
2CFBB247-D59D-474F-8467-2B1BDB275524
未加密
/ dev / disk2(內部,物理):
#:TYPE NAME SIZE IDIFIFIER
0:FDisk_partition_scheme * 15.6 GB磁盤2
1:Windows_FAT_32引導43.0 MB disk2s1
2:Linux 15.5 GB disk2s2
/ dev / disk3(外部,物理):
#:TYPE NAME SIZE IDIFIFIER
0:FDisk_partition_scheme * 15.6 GB磁盤3
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管道。 dd
函數偵聽Ctrl-t鍵,並且在運行時被要求報告時將向您更新進度。
#我將定義變量以簡化複製粘貼
SRC = / dev / rdisk2
DST = / dev / rdisk3
#這是您想要的命令
sudo dd bs = 1m if = $ SRC |光伏| sudo dd bs = 1m of = $ DST
#注意這與執行簡單操作有多相似
sudo dd bs = 1m if = $ SRC | sudo dd bs = 1m of = $ DST
#...在功能上與
sudo dd bs = 1m if = $ SRC of = $ DST
#(2個進程與1個進程除外)
實際輸出如下:
dd bs = 1m if = / dev / zero count = 16000 |光伏| dd bs = 1m of = / dev / null
16GiB 0:00:06 [2.46GiB / s] [< = >]
Carbon copy cloner很好,但是後來在我的Mac Pro上它不再製作可引導的克隆,我嘗試了3次,每個克隆都無法像以前那樣引導失敗,所以我改用SuperDuper!並且克隆啟動正常
有兩種類型的克隆Mac驅動器。基於文件級別和塊級別的克隆。眾所周知,抄襲克隆器只能創建基於文件級別的克隆,而其最大的競爭對手Superduper之一隻能創建捲和分區的克隆,而不能創建整個磁盤。因此,我建議選擇一種新的新興Mac克隆軟件,該軟件是Stellar Drive Clone,能夠同時進行文件級和塊級克隆。
它可以一點一點地創建整個驅動器和特定驅動器的精確副本。您的任何外部驅動器上的捲,捲和網絡驅動器上也是如此。它可以在其免費的演示版本功能中在文件夾上創建驅動器的克隆,並從該文件夾還原備份。它可以在Mac上創建Recovery HD的克隆並支持窗口文件格式,MBR,ExFAT,FAT32等。