使用Linux作硬盘克隆.docx
《使用Linux作硬盘克隆.docx》由会员分享,可在线阅读,更多相关《使用Linux作硬盘克隆.docx(9页珍藏版)》请在冰豆网上搜索。
![使用Linux作硬盘克隆.docx](https://file1.bdocx.com/fileroot1/2022-12/16/78cf12a6-1b0b-4aca-9728-70c98a473167/78cf12a6-1b0b-4aca-9728-70c98a4731671.gif)
使用Linux作硬盘克隆
使用Linux作硬盘克隆作者:
文章出处:
发布时间:
2001-12-20点击:
1031字体:
【小中大】
源盘:
IBM20G5400RPMFAT16分区1;Linuxnative分区1;FreeBSD分区1,内又分为一个主Sillice和一个SwapSillice;扩展分区1,4个逻辑分区,其中最后一个是LinuxSwap分区。
IDE1Master
目标盘:
西部数据30G7200RPM,空白盘。
IDE2Master
进入Linux,运行:
ddif=/dev/hdaof=/dev/hdc
dd就是Linux/Unix下通用的克隆、镜像程序,if=输入的文件of=输出的文件。
由于在Linux下所有的硬件都表示为文件,所以可以进行任何复制、克隆。
比如还可以把/dev/hda克隆到MO、磁带以及映像文件中,当然,目标“文件”必须比原“文件”大,不然就会溢出。
20G的硬盘复制了大约不到2个小时,在整个过程中,使用K6-2500CPU,UDMA2打开的情况下,CPU占用率只有18%-19%,从来没有超过20%。
在此期间还可以玩玩扫雷、国际象棋等游戏,也可以看看文档、帮助什么的,但是最好不要作写操作。
当然你可以估计时间,在复制进程还没有到Linux分区,或者已经过了Linux分区的时候,也可以进行写操作,但是要当心!
最后,dd会报告一共复制了多少字节,这就是源盘的实际大小。
完成以后,30G的西部数据硬盘就跟原来的IBM硬盘“一模一样”了,只不过是后面有10G的空空间,你可以在份一个分区(我的硬盘不能在分主分区了,因为4个Primray分区已满,只能在芬逻辑分区),或者用PQ、Fips扩大原有的分区。
如果你什么都不做,那么从新启动Win98以后,跟原来是一模一样的。
如果启动Linux,就有了一些问题,因为对于新硬盘来说,相当于运行完了dd程序就切断了电源,因此文件系统处于unclean状态,在启动的时候会报错,不要怕,输入root密码,然后运行:
fsck/这就启动了文件系统检测程序,相当于Windows下的磁盘检测,对于所有的问题都回答“y”,大部分都是/tmp的问题,无关紧要的。
修复完毕,输入:
reboot就可以安全的启动Linux了!
总的来说,Linux下的dd相对于Ghost各有所长。
dd的复制是完全基于二进制的物理复制,从硬盘的第一个字节道最后一个字节,完全一样的克隆了一边,所以是最保险、最准确的。
而且由于dd是物理复制,所以只要是硬盘上存在的分区,无论Linux是否认识,甚至是Linux认不出是什么的一段数据,都可以原原本本的复制,例如FreeBSD分区、其他操作系统的分区,甚至加密扇区什么的,就连逻辑坏块也原样复制!
因此除非出现物理问题,不然dd是绝对不会出错的!
而Ghost则比较“高级”一些,可以在复制的时候改变分区大小(他认识的分区格式),压缩映像文件(dd本身不具有压缩功能,但是可以用gzip、bzip2等工具压缩生成的文件),在Windows下还有explore软件可以单独提取文件出来,还有网络功能,而且速度也要比dd快一些(好像Ghost使用了较大的缓存)。
另外一点dd的优势在于,在克隆的同时还可以干些别的事情,不像Ghost那样只能干等。
因此从这方面来看,dd的速度又要比Ghost快,因为它完全占用系统的时间是零!
其它Unix下的dd操作跟Linux下的雷同,只不过是/dev/hda的称谓变化一下。
我
在FreeBSD4.2下试验过,效果跟Linux下完全相同,时间稍微长一点点,但是在FreeBSD下,dd的CPU占用率有时会达到30%以上。
如果你的源盘是IDE,而目标盘是SCSI的,这时要注意了,虽然对于硬件来说是没有什么问题,因为现在的Linux还是FreeBSD都支持即插即用;但是,/etc/fstab文件需要修改,在dd之前要把所有的hda改成sda,然后再改回来^_^
网上看到很多都是用dd的,但是那个应该只能应用于完全相同的硬盘。
今天从一块大硬盘把系统复制到一块小硬盘,基本的步骤是这样的。
1.同时装载源硬盘(hda)与目的硬盘(hdb),从源硬盘启动。
2.用fdisk给目的硬盘分区,并用mkefs等设置文件系统。
3.mount目的硬盘分区,主要是其/,以及/boot
4.进单用户模式(不知是否必要),用cp-a复制源硬盘内容到目的硬盘的分区中。
其中/proc不用复制的,/sys可能也不用复制(不过今天是复制了/sys),自己mkdir建立空路径。
5.卸载源硬盘,用livecd启动,mount目的硬盘,用grub-install/dev/hda(今天一开始是在上一步之后,即源硬盘与目的硬盘同时mount的时候,尝试grub-install/dev/hdb,结果不行。
然后想到用的livecd。
)
6.用目的硬盘启动,完成。
今天要传一份8G的Vmware下的linux虚拟机文件给同事,但他电脑是fat32的,不知道4G的文件,所以我就想了个方法,把磁盘分割成2G一份,然后传给他。
这个做法就涉及到硬盘复制,当然,在虚拟机环境,硬盘就是一个文件而已,Vmware里面没有把现有磁盘分割的功能,但可以先加一个磁盘,这个磁盘被限制为2G一个文件,这样就可以传到fat32上使用了,剩下的就是磁盘对拷了,首先想到的是ghost,用ghost可以执行硬盘对硬盘的复制。
先编辑虚拟机,加载两个硬盘,然后加载某XP启动盘ISO在光驱,光盘启动后就可以进入ghost操作了。
结果,ghost完毕后,把原磁盘下架,挂上另外一块,启动到init3之前就挂在那里了,好像缺什么文件。
看来不太行,于是查到了linux下的dd这个工具:
dd就是Linux/Unix下通用的克隆、镜像程序。
ddif=/dev/hdaof=/dev/hdd
if=输入的文件of=输出的文件。
由于在Linux下所有的硬件都表示为文件,所以可以进行任何复制、克隆。
比如还可以把/dev/hda克隆到MO、磁带以及映像文件中,当然,目标“文件”必须比原“文件”大,不然就会溢出。
下面是dd和ghost的对比:
引用
Linux下的dd相对于Ghost各有所长。
dd的复制是完全基于二进制的物理复制,从硬盘的第一个字节道最后一个字节,完全一样的克隆了一边,所以是最保险、最准确的。
而且由于dd是物理复制,所以只要是硬盘上存在的分区,无论Linux是否认识,甚至是Linux认不出是什么的一段数据,都可以原原本本的复制,例如FreeBSD分区、其他操作系统的分区,甚至加密扇区什么的,就连逻辑坏块也原样复制!
因此除非出现物理问题,不然dd是绝对不会出错的!
而Ghost则比较“高级”一些,可以在复制的时候改变分区大小(他认识的分区格式),压缩映像文件(dd本身不具有压缩功能,但是可以用gzip、bzip2等工具压缩生成的文件),在Windows下还有explore软件可以单独提取文件出来,还有网络功能,而且速度也要比dd快一些(好像Ghost使用了较大的缓存)。
另外一点dd的优势在于,在克隆的同时还可以干些别的事情,不像Ghost那样只能干等。
因此从这方面来看,dd的速度又要比Ghost快,因为它完全占用系统的时间是零!
其它Unix下的dd操作跟Linux下的雷同,只不过是/dev/hda的称谓变化一下。
下面是关于速率设置的参考:
引用
dd if=/dev/hda of=/dev/sdb bs=20000k
hda处如果是scsi硬盘,请换成sda,可以用fdisk -l查看
bs速率,如果是普通硬盘设置成20000k或30000k,如果是scsi,sas硬盘,可以提高到50000k
硬盘越大越慢,他是逐个扇区复制,而且目标盘要大于原盘
Linux硬盘克隆备份详细图解
我想会有很多Linux爱好者正在为怎样备份或克隆自己的Linux系统而发愁,本人在多次实验中发现了一种Linux硬盘克隆备份的好方法,并给多家Linux系统做了硬盘备份,无一出现故障,所以写出来与广大Linux爱好者一同分享。
很多人用ghost来备份Linux,做完ghost之后有时候系统无法启动,可能还要重新安装grub,现在我们用ddcopy解决了备份之后无法启动的问题。
因为ddcopy是彻底的硬盘物理拷贝,和文件系统无关,不仅适用Linux也同样适用于其他unix系统。
以下是ddcopy的使用说明:
程序的运行
ddcopy[-ds=md=d1,dn]|[-ps=m:
id=d1:
j,dn:
k][-vn][-en][-s][-c][-f][-y][-h]
命令行参数
-d设定拷贝模式为硬盘整盘拷贝
s表示数据源,m可以为硬盘号或映像文件.
d表示目标,dn可以为硬盘号或映像文件,多个目标间用“,”分隔.
-p设定拷贝模式为分区拷贝
s表示数据源,m可以为硬盘号或映像文件,i为分区号.
d表示目标,dn可以为硬盘号或映像文件,k为分区号,多个目标间用“,”分隔.
-v表示如目标为映像文件,则对其分卷存储,n为每卷容量(MB)
-e表示指定拷贝扇区,n为希望拷贝的扇区数目
-c采用数据压缩方式保存映像文件
-s显示计算机内所有硬盘的信息
-f缺省拷贝模式(拷贝计算机内所有的硬盘),源盘为第1硬盘,目标盘为其余的硬盘。
此参数等同于-ds=1d=2,3,...
-y对于在运行过程的提示信息均回答Yes
-h显示帮助信息和示例
使用示例
ddcopy-ds=1d=2,3,4
将第1硬盘上的数据复制到第2、3、4硬盘上。
ddcopy-ds=1d=2,x:
\d1.img-c
将第1硬盘复制到第2硬盘,并采用压缩方式保存到映像文件“d1.img”上。
ddcopy-ds=x:
\d1.imgd=1,3
将映像文件“d1.img”上的数据复制到第1、3硬盘上。
ddcopy-ps=1:
1d=2:
1,3:
2
将第1硬盘第1分区上的数据复制到第2硬盘的第1分区和第3硬盘的第2分区上。
ddcopy-ps=2:
1d=1:
2,x:
\p21.img-v634
将第2硬盘第1分区上的数据复制到第1硬盘的第2分区上,并保存到映像文件“p21.img”中,并设定分卷容量为634MB(649216KB)。
ddcopy-ps=x:
\p21.imgd=2:
1,1:
2
将映像文件“p21.img”中的数据复制到第2硬盘的第1分区和第1硬盘的第2分区上。
ddcopy-ds=x:
\d1.imgd=1,3-e1024000
将映像文件“d1.img”上的数据复制到第1、3硬盘上,但是只拷贝1024000个扇区。
使用说明
DDCOPY是DOS模式下运行的程序,可以运行在PC-DOS、MS-DOS和Win95/98/Me的DOS环境下。
不能在NT、Win2000、XP环境下运行。
硬盘号:
“1”表示80h硬盘,即BIOS中所认的第一块硬盘,“2”表示81h硬盘,即BIOS中所认的第二块硬盘,依此类推。
分区号:
“1”表示硬盘上的第一个分区,“2”表示硬盘上的第二个分区。
每个硬盘上取多有四个分区。
映像文件所在的磁盘区域不要位于将要对其进行操作的“源盘”或“目标盘”上。
硬盘连接方法
前提:
在计算机BIOS中设置以"C"或"IDE0"启动时
IDE硬盘:
PrimaryMaster->第1硬盘(80h)
PrimarySlave->第2硬盘(81h)
SecondaryMaster->第3硬盘(82h)
SecondarySlave->第4硬盘(83h)
SCSI硬盘:
ID=0->第1硬盘(80h)
ID=1->第2硬盘(81h)
……
说明:
将硬盘接到计算机,并在BIOS中正确设置硬盘参数;
记下硬盘的排放顺序,以免拷贝时出现错误;
提高拷贝速度
如果条件允许,用以下连接方法可以提高20%拷贝速度:
对于IDE硬盘,将源盘与目标盘分别用两根数据(排)线与主板连接
对于SCSI硬盘,将源盘与目标盘分别连接到不同的SCSI控制器上
注意:
虽然本人用此软件没有出现过问题,但不能说明用此软件就一定没有问题,所以在您使用此软件时请先备份好数据,以便出现故障时恢复。
具体步骤:
1,下载ddcopy,做一张win98启动软盘把ddcopy拷贝到软盘。
也可用优盘。
2,把第一块硬盘即安装好Linux系统的源盘接到与主版连接的主数据排线上,把第二块硬盘即目标盘接到与主版连接的副数据排线上。
3,用启动软盘启动计算机,然后执行ddcopy查看帮助,出现如下图的提示信息。
4,ddcopy-s查看硬盘信息。
(为了给大家截图演示我用了VMware,创建了两个各100M的硬盘)
5,执行ddcopy-ds=1d=2(或ddcopy8081)出现如下图的提示。
6,确信无误,按y开始硬盘克隆,见下图。
如果不想克隆按n键。
7,克隆完成,出现命令提示符。
见下图。