当您需要从一台电脑复制数据到另一台电脑上去的时候,本文所讲基于网络的且安全、简易、有效的方法就派上用场了。
提要:
尽管克隆动物(“多莉羊“)甚至人类胚胎的研究依然是个充满争议和风险的领域,而掌控一些关于“克隆”电脑的知识不但没有害(正确的操作为前提),反而会使您仔细书写配置脚本的能力得到提升。根据摩尔定律连同电脑生产的快速进程,我们在使用电脑时很可能会碰到需要“克隆”我们的电脑的情况——不管是台式机被笔记本取代还是换一台更快的机子。而我们就需要将电脑A 上的任何文档分区 复制到电脑B上而且使他正常工作。通常有两种做法:一种就是直接打开机箱,然后将硬盘换掉就能够了——但是但打开机箱通常意味着失去质保,而且这通常很危险——一个没有经验的用户可能会给硬件带来机械的或电子上的损伤。另一种方法需要两台电脑都有网卡(现在即使是在家用电脑中通常也满足),这种在下面会周详介绍的方法更安全。
下面描述的任何方法都是建立在网络连接的基础上,即,需要在“源”电脑(就是那台有数据要被复制的电脑)和“目标”电脑(就是需要数据的那台电脑)之间有网络连接。能够直接通过集线器连接,或通过特别连接线(crossovercable)将两张网卡连接起来(注意:一般的网线是不行的)。对目标电脑来说,需要一张Live-CD(如Knoppix 或 LNX-BBC)或一个最小安装,以确保可对网卡进行操作而且使ssh和/或netcat能用。甚至有的软盘上的系统(就像我用tomsrtb也能很好工作),而且假如您想安装另一个全新的发行版,这是个很不错的选择。两台电脑的IP要在同一个网段,以便他们能相互进行“会话”,
可能的方案:
通过基本的准备,有几种方法来进行复制:
* 通过dd复制
* tar/cpio管道
* rsync
* dump和restore
假如您的两块硬盘不是同样的型号和大小,第一种方法是不可行的或很复杂的(复制iso 映像(dd if=/dev/cdrom of=the.iso)或软盘通过dd很不错。这里 (diskcopy 脚本)是个使用dd的脚本diskcopy)。使用dd的另一个缺点是:您未使用的空间也会被复制,从而浪费很多无谓的时间。通过tar和cpio的管道会花费很长的时间(长达数小时),而且对文档名和符号连接会有一些限制,在/dev时会被阻塞,等等。因此,不推荐此法。假如您的源电脑和目标电脑上的文档系统不相同,那么rsync(1)可能是最好的选择。这只需要有ssh正常的运行且文档传输协议正常。而且他更有针对设备文档的-D选项连同其他很多针对各种场合各种需求的选项。这是对每天的备份、作映像或其他任务来说很有用的一个工具,他的手册上更有很多值得学习的例子。通过rsync复制的例子在[1]能够找到。
这里,我们使用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
我推荐大家一定要做一些分区,否则,文档系统的错误使用或硬盘磁道的一点损坏就会完全破坏掉您任何的数据。而且根据Murphy定律,在事先没有做好硬盘分区而是直接使用整块硬盘的时候,这通常就会发生。我最近就碰到过这样的情况,假如事先没有做好分区的话,就会由于主分区的一点问题而丢失掉我的任何数据。上面的文档表明/usr分区增长的太大了,所以/usr/share必须被加入。是该换一个大点的硬盘的时候了。在目标电脑上,使用parted(推荐)或您喜爱的分区工具(Qtparted 是个很好的图像界面的工具,据说是PartitionMagic克隆版)。创建的分区不能比源电脑上对应的分区小。另外,别忘了 swap 分区。保存好分区表,在刚创建的分区上创建文档系统,能够使用
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




