通过网络完全复制你的电脑
提要
尽管克隆动物(“多莉羊“)甚至人类胚胎的研究依然是一个充满争议和风险的领域,而掌握一些关于“克隆”电脑的知识不但没有害(正确的操作为前提),反而会使你仔细书写配置脚本的能力得到提升。 根据摩尔定律以及计算机生产的快速进程,我们在使用电脑时很可能会遇到需要“克隆”我们的电脑的情况——不管是台式机被笔记本取代还是换一台更快的机子。而我们就需要将电脑A 上的所有文件分区 复制到电脑B 上而且使它正常工作。通常有两种做法:一种就是直接打开机箱,然后将硬盘换掉就可以了——但是但打开机箱通常意味着失去质保,而且这通常很危险——一个没 有经验的用户可能会给硬件带来机械的或者电子上的损伤。另一种方法要求两台电脑都有网卡(现在即使是在家用电脑中通常也满足),这种在下面会详细介绍的方 法更安全。下面描述的所有方法都是建立在网络连接的基础上,即,需要在“源”电脑(就是那台有数据要被复制的电脑)和“目标”电脑(就是需要数据的那台电脑)之间有网络连接。可以直接通过集线器连接,或者通过特殊连接线(crossover cable)将 两张网卡连接起来(注意:一般的网线是不行的)。 对目标电脑来说,需要一张Live-CD(如Knoppix 或 LNX-BBC)或一个最小安装,以保证可对网卡进行操作而且使ssh 和/或 netcat能用。甚至有的软盘上的系统(就像我用tomsrtb也能很好工作),而且如果你想安装另一个全新的发行版,这是一个很不错的选择。两台电脑的IP 要在同一个网段,以便他们能相互进行“会话”,如上图。
可能的方案
通过基本的准备,有几种方法来进行复制:
- 通过 dd复制
- tar / cpio 管道
- rsync
- dump 和 restore
这里,我们使用dump 和 restore,这样还可以重新分配整个文件系统。这是一个快速、有效且可以通过最少的努力达到我们的目的——简直是理想的解决方法。 我需要操作这个过程两次,因为有两台目标电脑。两台目标电脑都能很好的启动、工作,而且复制那些成G 的数据大概只花了我一个小时。这个方法要求源电脑和目标电脑有同样的文件系统。在此,我们假定是ext2 或ext3,因为这是现在最广泛的使用的两种文件系统()(参见 下面).
配置ssh
一旦配置好最小安装的系统或者Live-CD,下一步就是配置ssh(如果你没有像下面描述的使用netcat来传送文件)。这需要源电脑运行sshd(the secure shell daemon)。如果不确定,请检查 /etc/init.d/。在目标电脑上输入(root帐户):ssh-keygen -t rsa为简便起见,不要输入密码。公钥就会保存在/root/.ssh/id_rsa.pub文件里。复制此文件到源电脑上
scp /root/.ssh/id_rsa SourcePC:/tmp在此 SourcePC 是你源电脑的IP 地址,当提示你是否确认时,输入完整的“yes”(单独的“y” 有时会不行)。在源电脑上你还会被要求输入root 的密码。现在把目标电脑加入你源电脑的可信任网络节点里去
cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys为检查是否成功完成,重复上面的复制命令,应该不会再要求你输入密码了!
在目标电脑上创建文件系统
通常第一步都是对你的硬盘分区,然后创建ext2/ext3文件系统。 ext3 的需要在mke2fs 命令里加一个-j (journalling)的选项(需要内核对ext3的支持)。你甚至可以将ext2的分区转化为 ext3的, 参见tune2fs(8)。 假设我们的源电脑上有如下的分区:
| Filesystem | Size | Used | Use% | Mounted on |
|---|---|---|---|---|
| /dev/hda3 | 2.7G | 552M | 22% | / |
| /dev/hda5 | 7.8G |
1.6G | 22% | /usr |
| /dev/hda7 | 6.3G | 1.7G | 28% | /usr/share |
| /dev/hda8 | 3.4G | 601M | 19% | /home |
| /dev/hda12 | 5.3G | 1.9G | 37% | /opt |
| /dev/hda1 | 587M | 70M | 13% |
/var/backup |