硬盘克隆

硬盘克隆（Disk cloning），是一种透过电脑软件或硬件，把硬碟内容完整复制到另一台硬碟的过程。一般来说，若是透过软件方式来复制的话，都会把整颗硬碟的内容写进一个映像档里，以待下次恢复时，能够从映像档里还原硬碟内容。
用途.
硬盘克隆软件主要有以下几种用途：
如何运作.
软件方面.
在没有硬碟克隆的帮助下，要安装一台电脑，一般要经历以下步骤：
然后每一台电脑都要经历上述的五个步骤。
在硬碟克隆软件的帮助下，以上五个步骤可以简化为以下三个步骤：
硬件方面.
硬件克隆的好处，在于其快捷速度，以及无需受制于用作克隆的电脑。最简单的硬件拷贝机，可以提供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的工具程式，以便用户能够翻阅映像档内所包含的档案内容，甚或抽至部份档案出来。　亦有一些软件可以让用户把映像档当作一个唯读的硬碟来架设。有些程式亦允许用户把影像内所包含的部分档案删除。