硬盘克隆

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

硬體方面

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

歷史發展

在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的工具程式，以便用戶能夠翻閱影像檔內所包含的檔案內容，甚或抽至部份檔案出來。　亦有一些軟體可以讓用戶把影像檔當作一個唯讀的硬碟來架設。有些程式亦允許用戶把影像內所包含的部分檔案刪除。