硬碟克隆

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

## 用途

硬碟克隆軟體主要有以下幾種用途：

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

## 如何運作

### 軟體方面

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

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

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

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

- 如上述形式一樣安裝第一台電腦
- 為電腦的硬碟建立一個影像
- 把這個硬碟的影像克隆到其他電腦去

### 硬體方面

硬體克隆的好處，在於其快捷速度，以及無需受制於用作克隆的電腦。最簡單的硬體拷貝機，可以提供1對1的克隆；若要同時製造多個克隆的話，有些機型允許用戶一次過克隆29個副本。

目前硬碟複製機有分為兩種:一種是入門款的【克隆機】，功能較陽春且支援的硬碟種類較單一；另一種則是專業的【硬碟拷貝機】，拷貝的速度一般比克隆機穩定且快速且支援多種硬碟介面拷貝，如:IDE、PCIe、M.2、U.2、SATA等硬碟介面拷貝。這種專業的拷貝機大多應用在企業內的資料複製、系統商的系統拷貝、製造商的生產過程的系統或資料複製及公家單位的特殊系統資料拷貝，目前市場上較知名的拷貝機品牌如: U-Reach、 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
- 虛擬光碟機