磁盘管理 -- 对拷 dd 命令
dd 命令简介
dd -- 转换和复制文件
复制文件(指定大小) , 根据操作数进行转换和格式化;
参数:
if=FILE // 从 FILE 文件中读取; 即指定源文件; 如果不指定if 默认从 stdin 读取; of=FILE // 写入到 FILE 文件; 即指定目标文件, 如果不指定of 默认输出到 stdout; iflag=FLAGS // 设置读入的标志, 这些标志参数控制 dd 如何读入数据; ( 按照逗号分割的符号列表读取 ); oflag=FLAGS // 设置输出的标志, 控制 dd 如何输出数据; ( 按照逗号分割的符号列表编写 ); bs=BYTES // 读取和写入的块大小字节数, < 相当于设置 ibs 和 obs >; cbs=BYTES // 每次转换的字节数, 即指定转换缓冲区的大小; conv=CONVS // 使用指定参数转换文件; count=N // 只拷贝 N 个输入块(ibs 设置的字节数); ibs=BYTES // 每次读取的字节数 ( 默认 512 ); obs=BYTES // 每次写入的字节数 ( 默认 512 ); seek=BLOCKS // 输出到 output 文件时, 跳过 obs 大小的块; 即跳过n个block, 从 n+1 个开始写入; skip=BLOCKS // 输入时, 跳过 ibs 大小的块; 即跳过 n 个block, 从 n+1 个开始读取; status=WHICH // 指哪些信息要抑制输出到stderr; 'noxfer'--抑制传输统计, 'none' -- 抑制所有;
示例
// 整个磁盘备份
dd if=/dev/sdb of=/dev/sdc
// 分区进行备份; 挂载 /dev/sdb2 进行查看
dd if=/dev/sda1 of=/dev/sdb2
mount /dev/sdb2 /tian
ls /tian
config-2.6.32-431.el6.x86_64 lost+found
efi symvers-2.6.32-431.el6.x86_64.gz
grub System.map-2.6.32-431.el6.x86_64
initramfs-2.6.32-431.el6.x86_64.img vmlinuz-2.6.32-431.el6.x86_64
// 将 /dev/sda 全盘数据备份到指定路径的指定文件, 文件名可以自定义,不用提前创建文件;
dd if=/dev/sda of=/back/backup
// 将备份文件恢复到指定的盘;
dd if=/back/backup of=/dev/sdb
// 备份全盘数据, 并使用 gzip 工具压缩后保存到指定目录;
dd if=/dev/sda | gzip > /back/backup.zip
// 将压缩的备份文件恢复到指定磁盘
gzip -dc /back/backup.gz |dd of=/dev/sdb
// 备份 MBR ( 磁盘的前 512 个字节 )
dd if=/dev/sda of=/back/mbr_back count=1 bs=512
// 恢复 MBR
dd if=/back/mbr_back of=/dev/sdb
// 测试写的速度
dd if=/dev/zero bs=1024 count=1000000 of=/back/file
// 测试读的速度
dd if=/back/file bs=64k | dd of=/dev/null
// 可以通过 写的速度, 使用不同块大小测出不同的速度, 确定系统最佳的块大小
dd if=/dev/zero bs=1024 count=1000000 of=/back/file
dd if=/dev/zero bs=2048 count=500000 of=/back/file
... ...

浙公网安备 33010602011771号