2015-12-22 10:00:04 a515983690 阅读数 348

要从服务器A上拷贝系统到服务器B

先最好把A上面的进程都关闭,我是直接把A重启了。

然后把B上的硬盘拆入服务器A中。  sda是A上原来的硬盘,sdc是B上拔下来的硬盘

执行命令:dd dd if=/dev/sda of=/dec/sdc

1T的大小,拷贝了将近6个小时,有点慢,可能东西有点多。

把硬盘sdc拔下插回服务器B中。

登录,修改/etc/hosts  , /etc/hostname , /etc/network/interface 修改内网IP和主机名。即可。



遇到的问题:由于NFS的问题开机启动不了。

解决:开启进入选择 ubuntu  recovery mode ,然后选择root 进入系统命令行。

修改/etc/fstab  。由于权限问题,所以要先执行  mount -o remount,rw /  来重新挂载根目录后就能写了。

把NFS的设置注释后 reboot 即可进入系统

2016-11-26 14:33:16 mao0514 阅读数 5176

一个去年的老本,500G硬盘,空间各种捉急,准备迁移到公司的台式机上,却发现Linux上迁移环境没有Windows下那么方便,只能复制整块硬盘了。

从公司拿了一块1T的硬盘,插入移动硬盘盒(淘宝上搞的一个移动硬盘盒,40元),加电识别,格式化,开始硬盘复制。

市面上针对数据备份的软件不计其数,我们不讨论他们的优缺点。但是如果你正在使用Linux(其实如果你没有使用Linux,而是通过一些 Linux live CD来启动计算机,我想也是一样的),那么恭喜你,你可以简单地使用系统命令“dd”来完成磁盘克隆,分区克隆或者磁盘或分区到磁盘镜像的复制。一般情况 下,这几个任务已经可以满足你日常工作的需要了。
先说明几个概念,在Linux上,一块硬盘或者一个分区都由一个目录表示,一般存在于系统根目录的/dev/之下。例如/dev/hda代表你的第一块 IDE硬盘,/dev/sdb代表第二块SCSI硬盘,/dev/fd0代表系统的软盘驱动器等等。同样每块硬盘上的分区也有独特的目录名,例如/dev /hda1表示你第一块硬盘上的第一个分区(至于这个分区上有什么东西在进行备份操作的时候并不重要)。

1. 磁盘克隆
也就是把整个硬盘复制一份。当然你首先需要在计算机上在接上一块新硬盘,并让系统识别。例如这块硬盘可能被识别为/dev/sdb,原有硬盘叫/dev/sda. 然后你可以在linux命令行上简单地执行:
dd if=/dev/sda of=/dev/sdb
对就这么简单,此命令完成后,你的第二块硬盘上将有一个和第一块硬盘一模一样的副本,也是可以启动的。因为dd操作就是简单的按字节复制,什么分区表啊,MBR啊统统照搬。
当然你也可以做一些微调,来定制一下克隆操作。例如你可能希望把硬盘上的内容全部备份到一个磁盘文件中,而不是另一块新硬盘,你可以
dd if=/dev/sda of=~/disk1.img
之后,disk1.img就是备份好的磁盘映像文件,你可以复制或转移到其他介质也可以压缩一下:
gzip disk1.img #generates disk1.img.gz
或者在创建磁盘映像文件的同时就执行压缩:
dd if=/dev/sda | gzip > disk.img.gz
dd if=/dev/sda | bzip2 > disk.img.bz2

不错吧!ghost的功能都有了。

2.分区克隆
如果我们不想克隆整块磁盘,只想把某些存放数据的分区备份一下,你会需要克隆一个分区。正如预备知识所述,分区在linux下也是一个文件。例如
dd if=/dev/sda1 of=~/part1.img
将把第一块磁盘的第一个分区备份到名为part1.img的文件中。
也可以进行分区复制:
dd if=/dev/hda1 of=/dev/hda3
将把分区一原样复制到分区3.

3. 从镜像文件恢复磁盘或分区
很简单,把上面命令中,of和if指向的文件名互换一下即可实现恢复。例如
dd if=disk1.img of=/dev/sda
把保存在disk1.img中的映像恢复到第一块磁盘
dd if=part1.img of=/dev/hda2
把保存在part1.img中的映像恢复到第一块硬盘的第二个分区

最后,需要注意一点是,无论备份还是恢复,都需要保证 of 指向的文件或磁盘空间要大于 if 指向的内容,因为是按字节复制 如果没有足够的空间去存储内容,备份自然会失败。

2013-10-11 14:27:56 nontew 阅读数 3086
    Linux设备在行业应用领域里,基本上都是先把系统安装到一台设备,调试完成后,再取出做好系统的硬盘(也称之为母盘),通过复制这个母盘到新的硬盘,达到批量生产的目的。
    硬盘的复制有两种形式,一个是使用硬盘复制机(也称硬盘拷贝机),普通1拖5的硬盘复制机价格大概在2万元左右,对于微小创业公司而言是一笔不小的数目。另一种就是通过软件的方式,在windows平台下这种类型的软件非常多,最出名的,就是Ghost了。本文主要介绍在Linux环境下,如何实现硬盘的批量复制。 
 
    Linux环境中,主要有两种方式,一种是纯粹DD,第二种是DD+TAR,下面分别介绍并比较各自的优缺点。 
    注:以下讨论的复制功能,基于母盘和等待复制的硬盘容量相等的情况下,如果容量不相等,可能导致数据不完整甚至出错。
 
    一、DD方式
    DD是linux下最常用的复制数据的命令,因其能进行字节级别的复制,可以保证两块硬盘的数据完全相同。
    普通硬盘在Linux中一般使用sdx标识,其中x为:a,b,c...,如sda代表第一个硬盘,sdb代表第二个硬盘,以此类推。假设第一个硬盘也就是sda做母盘,复制到第二块硬盘sdb中,完整dd命令如下:
dd if=/dev/sda of=/dev/sdb bs=1024K
    简单说明:
    if:输入位置;
    of:输出位置,可以是硬盘的盘符,也可以某个文件路径;
    bs:缓存大小,合适的缓存能够加快复制速度;
    更多参数,请参考dd帮助文档。
 
    此方法的优点在于,硬盘sda和sdb的数据完全一样,缺点也很明显,就是把空白数据区也复制一遍。在硬盘容量比较大,同时数据量很小的情况下,非常浪费时间。比如一块500G的硬盘,只使用了3G的内容,使用DD命令,会复制500G的数据,如果是普通5400转的硬盘,以50M/S的速度算,约需要166分钟,也就是2个多小时。
 
    二、DD+TAR方式
    硬盘上的数据分为两种,一种是硬盘的引导及分区信息(俗称MBR),一种是用户数据(包括操作系统)。
    先看看MBR介绍:硬盘的0柱面、0磁头、1扇区称为主引导扇区(也叫主引导记录MBR)。它由三个部分组成,主引导程序、硬盘分区表DPT(Disk Partition table)和硬盘有效标志(55AA)。在总共512字节的主引导扇区里主引导程序(boot loader)占446个字节,第二部分是Partition table区(分区表),即DPT,占64个字节,硬盘中分区有多少以及每一分区的大小都记在其中。第三部分是magic number,占2个字节,固定为55AA。
    通过以上说明,我们发现,其实复制硬盘时,只需要复制MBR数据和用户数据,就能达到硬盘复制效果。
    考虑以后的方便性,这里使用一个安装了Linux操作系统的U盘做为复制中介,母盘的所有数据先保存在U盘上,通过U盘复制到目标硬盘上。这样只要接上U盘,就可以进行数据复制的操作。
 
    下面介绍详细步骤。
    1、安装Linux操作系统到U盘中。最简单的办法就是在Windows环境下,使用unetbootin把ubutu桌面版的ISO镜像(如ubuntu-12.04-desktop-i386.iso)写到U盘上。
    2、把U盘接到安装有母盘的设备中,并设置从U盘启动。
    3、复制MBR到U盘中。
sudo dd if=/dev/sda of=/media/back/mbr.img bs=1024K count=1
    说明:使用缓存1M,复制一次,也就是总共复制了硬盘最前面的1M数据,包括了MBR(MBR总共512字节)。 
    2、复制分区数据到文件中,假设操作系统安装在分区sda1,数据保存在分区sda2。
sudo mount -o rw /dev/sda1 /mnt
sudo tar -cpzvf /media/back/bak.os.tgz-C /mnt . --exclude=./mnt/tmp 
sudo umount /mnt
sudo mount -o rw /dev/sda2/mnt
sudo tar -cpzvf /media/back/bak.data.tgz-C /mnt
sudo umount /mnt
    3、把U盘接到需要复制的目标设备上,设置从U盘启动。
    4、复制MBR到目标盘上,在目标设备上,硬盘同样是sba。
sudo dd if=/media/back/mbr.img of=/dev/sda bs=1024K count=1
    5、格式化目标盘的分区,然后复制分区数据到目标盘上。
sudo mkfs -t ext4 /dev/sda1
sudo mkfs -t ext4 /dev/sda2
sudo mount -o rw /dev/sda1/mnt
sudo tar -xpzvf /media/back/bak.os.tgz  -C/mnt
sudo umount /mnt
sudo mount -o rw /dev/sda2/mnt
sudo tar -xpzvf /media/back/bak.data..tgz  -C/mnt
sudo umount /mnt
    
    此方法的优点在于复制时间短,尤其在硬盘容量大,数据量小的情况下,非常明显。同样是一块500G的硬盘,只使用了3G的数据,普通5400转的硬盘,以50M/S的速度算,1分钟左右就可以复制完成,就算加上系统切换时间,也比dd 500G硬盘要少得多。缺点在于前期准备工作比较多。另外,推荐把命令写在脚本中,直接执行脚本可以节省不少敲命令的时间。
 
    通过以上的比较,如果偶尔做硬盘的备份,直接使用dd更加简单而方便。如果是需要批量复制几十甚至上百台设备,又不想投资购买硬盘复制机,可以考虑dd+tar的方案。
    
2017-09-24 21:11:48 yang_xu_1987 阅读数 461

dd 复制硬盘底层信息

命令:

dd if=/输入路径\源文件 of=/输出路径\保存文件

bs= 字节        (可以复制指定大小)

count=块     (准备复制的文件部分大小是count*bs)

可以只复制一部分:


复制的不完整的部分也可以打开



制造一个自己设定大小的空文件:dd if=/dev/zero of=文件名  bs=512 count=10 ---------------- 大小为bs*count(字节),数字自己设定  



2013-10-23 23:38:22 gkyh899 阅读数 562
  • 连接好新硬盘,开机,进入系统(废话!)
  • fdisk -l ; 由于我两块硬盘都是Sata的,所以fdisk -l出来的结果是sda(旧) sdb(新)
  • dd if=/dev/sda of=/dev/sdb ; 注意的是最好两块硬盘是同一容量和同一型号,否则比较麻烦。
  • 等待,漫长的等待
  • 关机,将两个硬盘的接口更换一下。
  • finish

dd的方式有点类似于ghost的全盘复制,速度较慢,但不会出现ghost那样无法启动的现象。制作linux的软raid1也可以尝试用这种方式同步。

PS:dd过程中如果无聊,可以通过在另一个终端键入 killall -s SIGUSR1 dd 发送SIGUSR1信号获取当前进度

dd命令安装Linux

阅读数 622

复制Linux系统

阅读数 468

没有更多推荐了,返回首页