dd 命令主要用来进行数据备份,并且可以在备份的过程中进行格式转换。其实 dd 命令可以把源数据复制成目标数据,而且不管源数据是文件、分区、磁盘还是光盘,都可以进行数据备份
dd 命令的基本格式如下:
[root@localhost ~]# dd if="输入文件" of="输出文件" bs="数据块" count="数量"
参数:
- if:定义输入数据的文件,也可以是输入设备;
- of:定义输出数据的文件,也可以是输出设备;
- bs:指定数据块的大小,也就是定义一次性读取或写入多少字节。模式数据块大小是 512 字节;
- count:指定 bs 的数量;
- conv=标志:依据标志转换文件。标志有以下这些:
- ascii:由 EBCDIC 码转换至 ASCII 码;
- ebcdic:由 ASCII 码转换至 EBCDIC 码;
- ibm:由 ASCII 码转换至替换的 EBCDIC 码;
- block:将结束字符块里的换行替换成等长的空格;
- unblock:将 cbs 大小的块中尾部的空格替换为一个换行符;
- lcase:将大写字符转换为小写;
- notrunc:不截断输出文件;
- ucase:将小写字符转换为大写;
- swab:交换每一对输入数据字节;
- noerror:读取数据发生错误后仍然继续;
- sync:将每个输入数据块以 NUL 字符填满至 ibs 的大小;当配合 block 或 unblock 时,会以空格代替 NUL 字符填充;
备份前查看硬盘的情况:
fdisk -u -l
确定从哪个硬盘克隆到哪个硬盘上
整盘备份
整盘拷贝前一定要先格式化磁盘
fdisk /dev/sdb
[root@localhost ~]# dd if=/dev/sda of=/dev/sdb bs-1024K&
#把磁盘a备份到磁盘b
[root@localhost ~]# dd if=/dev/sda of=/tmp/disk.bak
#把磁盘a备份成文件disk.bak
#备份恢复
#如果要备份到另一块硬盘上,那么,当源硬盘数据损坏时,只需用备份硬盘替换源硬盘即可
#如果要备份成文件,那么在恢复时需要把备份数据复制到其他Linux中,然后把新硬盘安装到这台Linux
#服务器上,再把磁盘备份数据复制到新硬盘中。命令如下
[root@localhost ~]# dd if=/tmp/disk.bak of=/dev/sdb