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