硬盘克隆

**硬碟複製**（英語：Disk cloning），是一種透過電腦軟體或硬體，把硬碟內容完整複製到另一台硬碟的過程。一般來說，若是透過軟體方式來複製的話，都會把整顆硬碟的內容寫進一個映像檔裡，以待下次恢復時，能夠從映像檔裡還原硬碟內容。

## 用途

硬碟複製軟體主要有以下幾種用途：

* **重新啟動和恢復**：硬碟複製技術可用於系統恢復的過程裡，把原來的硬碟內容全數清除，然後再從「乾淨」的主映像檔裡，把電腦原先應有的內容恢復過來。這種做法，可以確保電腦能夠恢復應有的功能之餘，亦能夠剷除留存在硬碟內的電腦病毒。這在部份網咖、學校或訓練學院很常用，以確保當使用者在有意無意中改動過系統的設定，又或招惹了病毒到電腦後，可以透過重新啟動而快速恢復系統至「乾淨」的狀態。透過對電腦及複製軟體的設定，電腦可以透過定時重啟而恢復系統，又或當系統出現問題時自動恢復。
* **為新電腦的安裝作準備**：透過硬碟複製軟體，可以把標準設定的軟體安裝到電腦裡，讓新使用者可以即時應用，而無需等候安裝。這種做法，在原裝電腦及大公司的電腦部門尤為普遍。
* **硬碟升級**：當使用者購買了新的硬碟回來，可以利用軟體把舊硬體的內容全數複製到新的硬碟去，免卻重新安裝的麻煩。
* **全面的系統備份**：使用者可以利用軟體來為電腦的作業系統及已安裝的軟體來一個全面的備份，以省卻日後要恢復系統時所花的時間。
* **系統恢復**：對於 OEM 廠商，一般會連同電腦附送一張系統恢復的光碟，以便使用者能夠把系統恢復至出廠時的狀況。

## 如何運作

### 軟體方面

在沒有硬碟複製的幫助下，要安裝一台電腦，一般要經歷以下步驟：

1. 在硬碟上建立一個分割；
2. 透過對每個分割格式化來在其上建立檔案系統；
3. 安裝作業系統；
4. 為特定的硬體安裝驅動程式；
5. 安裝有關之應用軟體。

然後每一台電腦都要經歷上述的五個步驟。

在硬碟複製軟體的幫助下，以上五個步驟可以簡化為以下三個步驟：

1. 如上述形式一樣安裝第一台電腦
2. 為電腦的硬碟建立一個影像
3. 把這個硬碟的影像複製到其他電腦去

### 硬體方面

硬體複製的好處，在於其快捷速度，以及無需受制於用作複製的電腦。最簡單的硬體拷貝機，可以提供 1 對 1 的複製；若要同時製造多個複製的話，有些機型允許使用者一次過複製 29 個副本。
目前硬碟複製機有分為兩種：一種是入門款的【複製機】，功能較陽春且支援的硬碟種類較單一；另一種則是專業的【硬碟拷貝機】，拷貝的速度一般比複製機穩定且快速且支援多種硬碟介面拷貝，如：IDE、PCIe、M.2、U.2、SATA 等硬碟介面拷貝。這種專業的拷貝機大多應用在企業內的資料複製、系統商的系統拷貝、製造商的生產過程的系統或資料複製及公家單位的特殊系統資料拷貝，目前市場上較知名的拷貝機品牌如：EZ Dupe （頁面存檔備份，存於網際網路檔案館）。

## 歷史發展

在 Windows 95 以前，部份電腦生產商利用硬體的硬碟複製機器來複製軟體。然而，由於硬碟複製機器沒有判別硬碟的結構，也沒有判別內容的智慧型，所以在複製時會連同沒有使用的空間也一併複製，白白浪費操作的時間。此外，一旦電腦的硬體環境轉變（例如：換成了不同大小的硬碟），基於上述原因，機器無法對不同的大小的硬碟進行複製，生產商亦需要重新建立一個新的影像。

其他生產商及公司選擇手動為硬碟進行分割及格式化，然後再用複製檔案或備份的軟體去複製系統內的檔案。這些檔案一般會先進行壓縮，然後在寫入硬碟時才解壓。比較常見的壓縮有 tar（Unix/Linux 系統，俗稱 tarball）、zip 或 cab 格式。舉個例子：Compaq 及 Acer 在他們的 Windows 95/Windows 98 安裝光碟裡，會先把要複製的 Windows 檔案用多個需要密碼來解碼的 zip 檔案儲存，然後把 zip 檔案儲存在可啟動的 CD-ROM 裡。當使用者用電腦進行安裝時，會自動執行程式去為 zip 檔案解壓到硬碟上。用這種方法來複製硬碟有一個弊處：就是通常這些方法都不能把啟動磁區一併複製，而需要安裝程式去額外處理。

Windows 95 的出現，使原來的問題更複雜化：過往的作業系統的安裝碟只需要數張軟碟，但 Windows 95 卻要用上十多張碟片，使安裝的時間加長了許多。新的作業環境對 FAT 檔案系統加入了長檔案名稱的支援，但很多當時存在的程式都不懂得去讀取。到 1997 年引入的 FAT32 檔案系統更引起了其他軟體的各種問題。個人電腦市場的成長，促使軟體開發商去尋找一個更好的答案去解決這些問題。

1996 年，Norton Ghost 由 Binary Research 推出市面。它最初只直接支援 FAT 檔案系統，對於使用其他檔案系統的分割，則只能逐個逐個磁區複製，而不能改變其分割大小。之後一年，Ghost 增加了 NTFS 檔案系統的支援，亦提供讓使用者改變硬碟的 Security Identifier（SID）的程式，使 Windows NT 系統能夠分辨源電腦及複製的電腦。1999 年，對於 ext2 的支援亦加入了。

Ghost 的競爭對手很快出現，而且他們一直都在比較特色，直到現在還是如此。現時很多硬碟複製程式都會提供比單純作複製更多的功能，例如：硬體資產管理、使用者設定轉移等。

對於 UNIX（包括 Linux 和 Mac）系列的電腦系統，由於 Ghost 只能辨識其個別幾種檔案系統如 ext2，對於不辨識的檔案系統則需要逐磁區（sector by sector）進行「1:1」複製，速度較慢且不支援分割區縮放。一些專門的工具包如 Clonezilla 則能支援大部分主流的檔案系統，並對這些類型的分割區進行逐檔案的複製。

## 複製後的程式

對於某些作業系統，兩部位於同一網路上的電腦不可以使用同一個名稱，例如：對於 Windows NT 及其繼後的版本來說，保安認證（Security Identifier，SID）在相同的 Active Directory 裡是不可以一樣的。一個及格的硬碟複製程式，應該要在進行複製及還原時更改此值。此外，對於一些對硬體變更比較敏感的作業系統，例如 Windows XP，有可能會在複製完成後因為底板、顯示卡或網路卡等硬體的變更而拒絕運作。這時候，就不能夠採用硬碟複製軟體，而要改用作業系統生產商提供的軟體進行安裝。再以先前的 Windows XP 為例，其實微軟公司建議使用者應該採用 Sysprep 而不是硬碟複製軟體來進行作業系統的安裝。

Linux 系統一般在啟動時都會採用 LILO 或 GRUB 這兩套 Bootloader 軟體。Bootloader 的作用，在於啟動系統之時，為硬體指向主要啟動紀錄（Master Boot Record，MBR）的位置所在。對於一般系統來說，這可能很簡單，但若系統由多於一組硬碟，而啟動分割又未必在第一個分割時，硬碟複製軟體就要有辦法去指引系統，並在複製時順道修改這一紀錄。

## 操作環境

一個硬碟複製程式需要能夠讀取源硬碟上所有內容，即使它被作業系統所保護，而且必須保證在讀取硬碟的資料時，仍然能夠保持始終如一。在寫入目的硬碟時，亦要確原來的作業系統被完全覆寫。為簡化這些步驟，大多數硬碟複製程式都會在一個與電腦宿主的原來作業系統不同的環境裡運作。舉例說，早期的硬碟複製程式（例如：舊版的 Norton Ghost）都在 PC-DOS 或 DR-DOS 環境裡執行，而隨著 Linux 的盛行，不少較新的複製程式都以 Linux LiveCD 的形式在網上發布。

電腦系統打從一開始就以一個與作業系統不同的環境運作，有助複製的過程順利執行；但亦有部份程式（例如：Acronis TrueImage）選擇依舊在原作業系統上執行，不過會安排在所有其他應用軟體運作執行之先而執行，以避免系統內容被干擾、及避免檔案因為被開啟而無法複製。這種做法有兩個缺點：其一是軟體不能覆寫執行中的系統分割區；其二是軟體未必可以對非作業系統支援的分割作完整的支援。又再以 Acronis TrueImage 為例子：他們系列的免費版本 DiskImage 就未能複製 Linux 分割的啟動磁區，而需要使用者在複製後手動重建。另外，他們的 Acronis TrueImage 2009 版本只能在 WinXP 電腦上執行，所以若使用者希望透過這軟體來把舊有的 Windows 2000 系統從舊硬碟複製到新硬碟的話，就會英雄無用武之地。

採用非 Windows 操作環境的硬碟複製程式有一個問題要克服，就是對相關硬體需要提供驅動程式的支援。部份硬體由於沒有相關的支援驅動程式，往往需要由硬體生產商去撰寫，又或透過其他功能來補救。早期的硬碟複製程式都不支援外部貯存裝置，到後來才逐漸加入對可讀寫 CD-ROM/DVD 的支援，再擴展到磁帶機、USB 貯存裝置、Firewire 及網路硬碟等不同裝置的支援。對於支援網路存取的硬碟複製程式，其多播的功能使用者能夠同一時間對網路上多台電腦在同一時間進行複製。

## 影像轉移

要用硬碟複製程式為硬碟建立一個映像檔，最簡單的方法是把源硬碟和目的硬碟都放在同一部電腦裡面，但實際運作上不一定要受此限制。簡單點來說，可以透過簡單的連線：不論是平行埠的連線（例如：Norton Ghost 可以透過 Laplink cable 進行硬碟複製）又或是網路連線也可以。對於網路連線，一般會把映像檔儲存在網路硬碟上。由於這些映像檔一般都非常大，動軋數百 MB，所以當需要為多台電腦同時進行硬碟複製時，會對網路造成很大的壓力。解決辦法是透過多播技術，使單一的映像檔能夠同時往多個網點發送，以減輕網路的壓力。不過，現時支援多播技術的硬碟複製軟體不多，而且價錢頗為昂貴。

## 線上複製的問題

早期具有線上複製功能的軟體，在使用時往往需要使用者提供網卡的驅動程式，費時失事。新一代以 Linux 為基礎的 LiveCD 普遍都已無需再擔心這個問題。

另外，一般線上複製程式都允許使用者使用現在的 Windows 分享、FTP 伺服器等功能；但亦有一些軟體要求使用者在使用前先行安裝 TFTP/PXE 的服務支援。

## 映像檔處理

雖然一般的硬碟複製軟體都不是設計作備份用途，但他們很多時都被這樣用。備份程式的一項主要功用是允許使用者在無需恢復整個備份而可以存取當中的部份檔案。有些硬碟複製軟體會提供一個近似 Windows Explorer 的工具程式，以便使用者能夠翻閱映像檔內所包含的檔案內容，甚或抽至部份檔案出來。　亦有一些軟體可以讓使用者把映像檔當作一個唯讀的硬碟來架設。有些程式亦允許使用者把影像內所包含的部分檔案刪除。

## 軟體

### 商業及專用軟體

* Acronis True Image 及 DiskWizard
* Altiris - Deployment Solutions
* Apple Software Restore（隨 Mac OS X 附送）
* FarStone DriveClone
* Drive Copy
* DriveImage
* DriveSnapshot
* ImageX（Microsoft）
* O&O DiskImage
* Paragon Drive Backup
* Rollback Rx
* Scriptlogic - Desktop Authority Image Center
* Macrium Reflect
* StorageCraft ShadowProtect
* Symantec Ghost
* Undisker
* Net-Runna

### 自由軟體

* Carbon Copy Cloner (Mac)
* DriveImage XML
* IRestorer - Drive Image Backup & Disaster Recovery
* Maxblast Acronis based, for Maxtor or Seagate HDDs
* Partition-saving
* SelfImage
* XXCLONE File based cloning, not low-level HDD clone

### 開源軟體

* PartImage 系列軟體
  * SystemRescueCd
  * PING (Partimage Is Not Ghost)
  * 再生龍，另有企鵝龍提供群播還原功能
  * FOG - Free OpenSource Ghost
* g4u 系列
  * g4u Ghost for Unix
  * G4L Ghost for Linux Boot CD
* LRS Linbox Rescue Server
* Mondo Rescue
* Trinity Rescue Kit

## 內部連結

* dd (Unix)
* Live USB
* Recovery disc
* Security Identifier
* 虛擬光碟機

## 參考資料