Chinaunix首页 | 论坛 | 博客
  • 博客访问: 454673
  • 博文数量: 38
  • 博客积分: 764
  • 博客等级: 军士长
  • 技术积分: 485
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-09 23:22
文章分类

全部博文(38)

文章存档

2019年(1)

2018年(1)

2014年(2)

2013年(3)

2012年(23)

2011年(8)

分类: LINUX

2011-08-21 12:52:05

建议不要轻易dd,有可能把系统搞坏,在有把握情况下或数据备份过情况下使用dd
 
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一下就可以了
 
阅读(3783) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~