dd linux 低格硬盘_linux dd 整个硬盘 - CSDN
  • dd实现linux硬盘备份

    2016-11-26 14:33:18
    一个去年的老本,500G硬盘,空间各种捉急,准备迁移到公司的台式机上,却发现Linux上迁移环境没有Windows下那么方便,只能复制整块硬盘了。从公司拿了一块1T的硬盘,插入移动硬盘盒(淘宝上搞的一个移动硬盘盒,40元...

    一个去年的老本,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 指向的内容,因为是按字节复制 如果没有足够的空间去存储内容,备份自然会失败。

    展开全文
  • linux系统如果想做备份还原,使用ghost的时候经常出现问题,后来发现可以直接使用dd命令完成硬盘的克隆和还原.当拷贝完硬盘后,就可以拿这个硬盘放到其它设备上跑了。也就是完成了“烧写”了。 实际操作中,最好...

    linux系统如果想做备份还原,使用ghost的时候经常出现问题,后来发现可以直接使用dd命令完成硬盘的克隆和还原.当拷贝完硬盘后,就可以拿这个硬盘放到其它设备上跑了。也就是完成了“烧写”了。

    实际操作中,最好使用另一个系统启动,如另一个硬盘的系统,或者用live cd。当然,拷贝当前运行中的系统也是可以的,但不知当前的这个系统还有哪些不确定东西,所以还是不建议。

    用fdisk -l查看当前所有分区信息(记得用root,否则执行了啥也看不到),如:

    Device Boot      Start         End      Blocks   Id  System /dev/sdb1            2048     1002047      500000   83  Linux /dev/sdb2         1002048    12002047     5500000   83  Linux /dev/sdb3        12002048    13002047      500000   83  Linux /dev/sdb4        13002048    15002047     1000000   83  Linux

    上面是我为了方便写文档而做的分区,可以看到Blocks十分工整,那是故意而为之的。

    全盘拷贝的命令:

    dd if=/dev/sdb  of=/dev/sdc

    分区拷贝:

    dd bs=512 count=[fdisk命令中最大的end数+1] if=/dev/sdb of=name.img

    以上为例:

    dd bs=512 count=15002048 if=/dev/sdb of=ghost_linux_latelee.img

    由于ghost_linux_latelee.img会很大,可以在拷贝时将其压缩:

    dd bs=512 count=15002048 if=/dev/sdb | gzip -9 > ghost_linux_latelee.img.gz

    上面所做的,就是传说的系统“备份”,或叫“系统克隆”。

    对应的,有系统恢复的操作。命令如下:

    dd if=ghost_linux_latelee.img of=/dev/sda

    如果是压缩包,则命令为:

    gzip -c -d ghost_linux_latelee.img.gz | dd of=/dev/sda

    在上面的拷贝过程中,并不知道拷贝了多少,只有最终结束时才显示出时间、拷贝速度。为了查看进度,可以在另一个终端输入(记得用root):

    watch -n 5 killall -USR1 dd

    (注:killall并不是传说中把进程kill掉,而是发送一个指定的信号到指定的进程)

    之后,就能执行dd的终端看到进度了,如:

    58299+0 records in 58298+0 records out 29848576 bytes (30 MB) copied, 4.67728 s, 6.4 MB/s 161403+0 records in 161402+0 records out 82637824 bytes (83 MB) copied, 9.69359 s, 8.5 MB/s 238651+0 records in 238650+0 records out 122188800 bytes (122 MB) copied, 14.7105 s, 8.3 MB/s

    备注:

    用dd的方式,得到的镜像文件十分庞大——取决于所要做的系统的大小。比如,拷贝4GB的分区,真的就是拷贝4GB,即使是用gzip压缩,也压缩不了多少,文件依然很大。

    另外dd的方式也消除了我之前的担心,因为现在的Linux发行版的分区使用硬盘uuid作为标识,而不是/dev/sda1这种格式,据说uuid更好。但用dd拷贝,竟然连硬盘的uuid也一一拷贝,毫无变化,这的确让我吃惊。不过,目前看没什么时间研究dd了。

    PS:使用dd命令,可以读取硬盘的mbr扇区,示例如下:

    dd if=/dev/sdb of=mbr.bin bs=512 count=1
    


    展开全文
  • ubuntu下低级格式化

    2012-05-28 15:43:02
    看你硬盘是什么坏道 物理坏道的话就不行了 只能把坏道屏蔽了 如果是逻辑坏道 可以...如果你要低格linux的livecd 其实linux下的低格工具就是ddlinux系统都有的一个命令。运行命令 代码:  dd if=/dev/zero of
    看你硬盘是什么坏道 物理坏道的话就不行了 只能把坏道屏蔽了 如果是逻辑坏道 可以用fsck工具修复 如果坏道的分区不是重要分区 可以直接卸载然后运行 fsck /dev/sdaX或者是hdaX 视具体情况 X为分区号 

    如果你要低格用linux的livecd 其实linux下的低格工具就是dd,linux系统都有的一个命令。运行命令
    代码:
     dd if=/dev/zero of=/dev/sda
    (of的值视情况请作修改) 低格就是用0或1去覆盖整个硬盘 低格的速度很慢 你可以自己不在的时候执行
    代码:
    sudo dd if=/dev/zero of=/dev/sda && sudo shutdown -h +2

    展开全文
  • 只拷贝前120GB ...sudo dd if=/dev/sdb of=/dev/sdc conv=notrunc bs=128MB count=938 sudo dd if=/dev/sdb of=/dev/sdc conv=notrunc bs=64MB count=1875 count为bs的次数 一个盘到多个盘的拷贝:
    只拷贝前120GB:
    120GB=128MB * 938=64MB*1875
    sudo dd if=/dev/sdb of=/dev/sdc conv=notrunc bs=128MB count=938
    sudo dd if=/dev/sdb of=/dev/sdc conv=notrunc bs=64MB count=1875
    count为bs的次数

    一个盘到多个盘的拷贝:
    dd if=image.bin | tee >(dd of=/dev/sdc) | dd of=/dev/sdh
    进度条dd with progress bar and statistics
    dd if=/dev/source | pv -s $(pv -s $(blockdev –getsize64 /dev/source) | tee >(dd of=/dev/dest1) | dd of=/dev/dest2

    部分拷贝问题修复:
    对于GPT格式的硬盘,如果只拷贝前面的部分,则会漏掉backup gpt table,出现下面的错误:
    the backup gpt table is corrupt
    小盘向大盘拷贝,使用parted命令查看硬盘时,会自动修复gpt备份表。
    等大小的盘拷贝,parted不会自动修复,需要使用gdisk命令:
    sudo gdisk /dev/sda
    然后分别执行:x(专家模式) e(将gpt备份表写到硬盘尾部) w(写入到磁盘)y(yes)


    查看UUID:
    ls -l /dev/disk/by-uuid
    blkid /dev/sda1

    改变UUID:
    tune2fs /dev/sdbX -U random

    其他相关命令:
    partprobe 通知内核分区表已经改变
    dcfldd 直接支持一个盘到多个盘的拷贝
    guymager 是将 dd 与 dcfldd 命令转换为图形化接口
    PyFlag 是一个使用 python 语言编写的硬盘分析工具
    partimage 分区备份压缩
    rsync 数据镜像远程备份工具
    ddrescue, gddrescue硬盘数据恢复工具


    链接

    展开全文
  • 但在x86上,硬盘动辄上G,安装一个发行版本的Linux,也得3GB~4GB,如果将这些数据“烧写”,的确不易,反正我是不知道用什么方法。 ghost方法我想过(但没试过),因此最终的设备没有鼠标、没有键盘,没有显示器,不...
  • linux下用dd命令拷贝硬盘 作者:李迟 发布:2014-11-04 20:02 分类:GNU/Linux系统 标签:dd命令, Linux备份, 拷贝硬盘 阅读:6,382 次 无评论 最近所做的项目涉及到系统的“烧写”,在ARM中,一般用flash,...
  • 所以我们需要测试硬盘的读写速度,测试的方法很多,下面是使用Linux 自带的dd命令测试硬盘的读写速度。   time有计时作用,dd用于复制,从if读出,写到of。if=/dev/zero不产生IO,因此可以用来测试纯写速度。同理of...
  • 现有linux系统,由硬盘sda运行,想将其整体拷贝至硬盘sdb,并由sdb启动系统,如何做? 两种方案,第一种方案tar命令压缩拷贝;第二种方案,linux dd命令直接拷贝。 1、第一种方案,tar压缩备份恢复 tar压缩备份后,...
  • 注意:本系列文章中所涉及的性能都是指磁盘(Magnetic Disks)IO性能,不考虑网络以及其他的性质的IO性能。
  • Linux下面没有未分区的硬盘空间了,但是又需要建立一个单独硬盘分区,怎么办,如果已分区的硬盘还有可用空间那就是用dd 命令吧 虚拟机技术 - 把Linux安装在一个文件中(用dd生成虚拟块设备文件)  第一个问题是...
  • 1、先熟悉两个特殊的设备: ... time dd if=/dev/zero of=/testw.dbf bs=4k count=100000  rm -f /testw.dbf  因为/dev//zero是一个伪设备,它只产生空字符流,对它不会产生IO,所以,IO都...
  • 使用Ghost对安装Linux系统进行磁盘对刻,会出现引导错误等问题。 正确的操作是使用:dd 命令。 使用 dd 命令进行磁盘对刻要求源磁盘和目标磁盘的规格,大小是一致的,是不是同一品牌无所谓,当然如果一样更好。 ...
  • dd命令备份Linux系统

    2019-01-25 11:42:26
    本文提供有关使用dd命令备份Linux系统的6个实例。 dd是一个功能强大的UNIX工具,由Linux内核的makefile进行引导映像,它也可以用来复制数据。 例 1:备份整个硬盘 使用dd命令备份整个硬盘。在这个例子中,源硬盘的...
  • linux硬盘擦除命令

    2019-06-17 03:37:42
    linux硬盘擦除命令硬盘在送人或丢弃时,应该小心一点,不然就成艳照门主角了,谁也不能保证自己的硬盘上没有什么不便于示人的东西,因此,你需要擦除硬盘上的数据。 理论上讲,目前,不存在完全安全的方法,因为,...
  • dd 复制硬盘底层信息 命令: dd if=/输入路径\源文件 of=/输出路径\保存文件 bs= 字节 (可以复制指定大小) count=块 (准备复制的文件部分大小是count*bs) 可以只复制一部分: 复制的不完整的部分也...
  • 仅仅因为你运行Linux操作系统并不...通过克隆Linux硬盘驱动器,可以创建以后可以恢复的磁盘映像。但是你如何克隆你的Linux硬盘? Linux磁盘克隆工具 您的Linux安装可能会产生错误; 您可以将硬盘驱动器升级到更大的卷...
1 2 3 4 5 ... 20
收藏数 36,050
精华内容 14,420
关键字:

dd linux 低格硬盘