磁盘管理 -- 对拷 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
... ...

 

posted @ 2019-04-10 17:05  荣荣很乖  阅读(1392)  评论(0编辑  收藏  举报