linux全盘备份命令,dd命令磁盘对拷及备份

dd命令:convert and copy a file

用法:

dd if=/PATH/FROM/SRC of=/PATH/TO/DEST

bs=#:block size, 复制单元大小;

count=#:复制多少个bs;

磁盘拷贝:

dd if=/dev/sda of=/dev/sdb

备份MBR

dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1

破坏MBR中的bootloader:

dd if=/dev/zero of=/dev/sda bs=256 count=1

两个特殊设备:

/dev/null: 数据黑洞;

/dev/zero:吐零

1.做硬盘对拷:

dd if=/dev/sda of=/dev/sdb bs=1024k &

注意:

(1).先改fstab文件,把LABLE换成对应的  /dev/sda(不改的话,拷完后重启系统不知道从哪块盘启动了)

/dev/sda2              /                      ext3    defaults        1 1

/dev/sda5              /data                  ext3    defaults        1 2

/dev/sda1              /boot                  ext3    defaults        1 2

(2).一定要写bs=1024k,一定要加k, 默认是bytes,不加K或M,是以bytes写入,

有可能系统要挂了,至于 也有人写bs=4M,没啥区别,最后速度差不多。

(3).加 & 后台进行,因为要用当前的终端来查看dd进度,如果忘了加 &,可以用Ctrl+z

把dd进程移到后台,再运行 bg 记其后台运行(为了在当前终端查看进度)。

2.查看dd完成进度,要不然鬼知道啥时候能dd完成啊

ps -ef|grep dd  //查看 dd 进程id号,其实上边命令加&后,己经显示了。

kill -USR1  id  //查看 dd 完成进度

100118036480 bytes (100 GB) copied, 1346.94 seconds, 74.3 MB/s

如果想时时查看进度,可以用下面语句:

watch -n 1 kill -USR1 3730  // 每2秒查看一次进度

while kill -USR1 3730;do sleep 2;done;  //每2秒查看一次进度

这种是通过发送USR1信号的方法,去产生一个标准的IO错误,来达到显示当前COPY进度与COPY速度的目的。

3.如果sdb原来是一个裸盘没有格式化过,dd可能并不能拷贝superblock信息,所以盘不能mount起来。

所以只需要进入fdisk界面:

# fdisk /dev/sdb

# w

“write table to disk and exit”,sdb就可以mount起来了,如果是格过的,可能需要fsck一下就可以了

注意:建议不要轻易dd,有可能把系统搞坏,在有把握情况下或数据备份过情况下使用dd

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值