硬盘克隆

硬盘克隆（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
- 虚拟光驱