dd

语法说明

dd if="input_file" of="outptu_file" bs="block_size" / count="number"

使用dd来备份还原mbr,分区表

原文: http://forum.ubuntu.org.cn/viewtopic.php?f=169&t=270612

# 备份mbr
dd if=/dev/sda of=/backup/mbr.img bs=512 count=1

# 还原mbr
dd if=/backup/mbr.img of=/dev/sda bs=446 count=1

# 还原分区表,跳过mbr
dd if=/backup/mbr.img of=/dev/sda bs=66 skip=446 count=1

# 此外,dd还可以克隆整个硬盘和分区,不论你的文件系统是什么类型都可以,但是由于速度较慢,一般不建议这么做,克隆U盘倒是很推荐,另外还可以转换光盘为ISO
# 克隆硬盘
dd if=/dev/sda of=/sda.img

# 克隆分区
dd if=/dev/sda1 of=/sda1/img

# 制作光盘镜像
dd if=/dev/cdrom of=/cdrom.iso

DD做硬盘速度测试

机器
笔记本(ASUS F6ve,SATAII) 152MB/s 56MB/s
HPDL360G5,df2game(SAS) 426MB/s 188MB/s
HPDL360G5,df2db(SAS,Raid5) 431MB/s 139MB/s
DELL1850,s1.db(SCSI,Raid0?) 286MB/s 99.7MB/s
DELL1850,s1.game(SCSI,Raid0?) 251MB/s 84.3MB/s
hpDL360G3(SCSI,Raid1?) 157MB/s 32.2MB/s

最开始的时候未指定bs的大小,默认只有512字节,经过约30小时的等待后,测速发现只有1M/s,后中断该过程,改为bs=8M

应用服务器未安装stat包,补充测速的方法:

time strace -o strace.log -p 11929
# 运行一段时间后ctrl+c终止

# 统计write出现的次数
grep -c write starace.log
echo "次数*8/time得到的时间" |bc

即为估算的每秒复制的速度。 30个小时后备份结束

249999+1 records in
249999+1 records out
2097150257664 bytes (2.1 TB) copied, 130468 s, 16.1 MB/s