克隆Ubuntu系统到新硬盘

刚刚因为硬盘空间太小而更换了新的硬件系统,并且希望使用新的硬盘作为系统?没有问题,把Ubuntu克隆到其它硬盘非常容易,实际上Ubuntu提供了可以克隆整个硬盘(包含Windows分区,如果有的话)的工具。Ubuntu做这种事情非常拿手。

在开始克隆一起,有三件事情需要需要去做:

1. 查看Ubuntu是如何安排磁盘空间

2. 安装ddrescure软件以进行磁盘克隆

3. Ddrescure安装完成以后,用Gparted进行磁盘分区调整

如果在车辆行驶中无法更换轮胎一样,最好不要在磁盘正在使用的情况下进行克隆,所以你必须使用你的Ubuntu安装CD。从Ubuntu安装CD启动,选择"尝试Ubuntu"。

注意下面的操作都是在Ubuntu CD的Live模式下面进行,除了最后测试以外不能进入硬盘里面的Ubuntu。

准备克隆

在开始一起,最好做三件事情:第一,把所有有价值的私人数据备份到CD/DVD-R/RW、U盘或者其他硬盘从上面。这是为了避免由于误操作而造成的数据丢失。第二,检查磁盘错误,如果存在错误进行修复。第三,移除所有的移动存储设备,譬如U盘、读卡器、MP3播放器等,以避免调整分区时的混淆。

现在打开"终端",输入下面的命令列出硬盘的分区情况:

$ sudo fdisk –l

下面是我的测试系统的显示:

Disk /dev/sda: 81.9 GB, 81964302336 bytes

255 heads, 63 sectors/track, 9964 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk identifier: 0x1c381c37

Device Boot Start End Blocks Id System

/dev/sda1 * 1 4742 38090083+ 7 HPFS/NTFS

/dev/sda2 4743 9964 41945715 5 Extended

/dev/sda5 4743 9744 40178533+ 83 Linux

/dev/sda6 9745 9964 1767118+ 82 Linux swap/Solaris

Disk /dev/sdb: 120.0 GB, 120034123776 bytes

255 heads, 63 sectors/track, 14593 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk identifier: 0xb94838a4

Disk /dev/sdb doesn't contain a valid partition table

可以看到有两个硬盘显示在结果里面:我已经用红色高亮显示了。上面的结果还显示硬盘的具体技术信息。

非常明显,"/dev/sdb"是新的分区,因为他没有分区(注意"Disk /dev/sdb doesn't contain a valid partition table")。而"/dev/sda"则是我的老Ubuntu磁盘。显示可能稍有区别,根据你硬盘的情况而定。

现在找到了你的新磁盘,我的是"/dev/sdb",输入下面的命令开始cfdisk程序,在新硬盘上面建立一个磁盘分区表。

$ sudo cfdisk –z /dev/sdb

在cfdisk输入"shift+w"(即大写的"W"),出现提示,选择"yes",然后输入"q"退出。不要理会那些警告。

克隆硬盘

现在有了这些信息,我们可以安装"ddrescue"软件来克隆硬盘。ddrescure不是默认的系统工具,因此需要安装。尽管我们的Ubuntu的LiveCD模式下面,我们还是可以从网络上面的"软件源"里面安装软件。在开始一起,首先确保"Universe"软件源可以使用。点击"系统"-"管理"-"软件源",勾选"社区维护的开源软件",点击"Close"按钮,并且同意刷新源。

现在,输入下面的命令安装ddrescue:

$ sudo apt-get install gddrescue

安装完成以后,输入下面的命令:

$ sudo ddrescure –v /dev/sda /dev/sdb

其中,"-v"参数代表显示进度,"/dev/sda"是原来的硬盘,"/dev/sdb"是新硬盘。注意,如果磁盘顺序不对,可能导致原来的硬盘数据被完全清除。

克隆过程根据硬盘的大小,可能花费1个小时甚至更多的时间。完成以后,关闭计算机,把旧硬盘拆除,然后使用新硬盘启动测试一下。注意,硬盘上面的Windows XP/Vista可能因为新硬盘而出现"Windows Genuine Advantage"提示,请重新激活。Ubuntu则不用担心,一切工作良好。

这一步完成以后,我们进入下一步:扩展磁盘分区,以充分利用新硬盘的空间

扩展分区

在进行分区扩展以前,最好检查一下Ubuntu的文件系统。用Ubuntu的安装CD,进入LiveCD模式,打开终端,输入:

$sudo fsdk.ext3 –f /dev/sda5

完成以后,关闭终端。点击"系统"-"管理"-"分区管理器"。

下面的工作根据自己的情况而定。如果你希望扩大Ubuntu的分区大小,有三个步骤:

1. 在"分区列表"里面,右键点击"linux-swap"分区,选择"Swapoff"。这样就可以防止Ubuntu的LiveCD模式下面访问交换分区,让交换分区可以进行移动。

2. 首先必须扩展Ubuntu所在的分区,右键点击"Extended"项,选择"Resize/Move",在出现的对话框里面,把"Free Space Following(MIB)"输入框改为0,键入"TAB",这样这个分区就会扩展到整个分区空间,点击"Resize/Move"按钮。注意,现在不用点击"Apply"按钮,我们在最后会一次完成。

3. 同上,把swap分区的空间也扩展到整个分区。

4. 回到Gparted出口,右键点击"Ext3"项,选择"Resize/Move",同第一步调整。

5. 点击Gparted工具栏上面的"Apply"按钮,等待分区移动和改变大小完成。

6. Gparted完成以后,关闭这个程序。打开终端,输入下面的命令重新检查硬盘是否存在错误:

$sudo fsck.ext3 –f /dev/sda5。如果出现错误,提示是否修复,通常情况下选择"yes"。

检查完成以后,就可以重新启动计算机。现在就可以看到Ubuntu分区变大了。

如果你希望丢弃旧硬盘或者把它送给别人,必须保证数据被完全销毁了,请查看"安全的删除数据".但是在确保你的新系统能100%工作以前,请不要这样做。