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 大小的块中尾部的空格替换为一个换行符;lca:将大写字符转换为小写;notrunc:不截断输出文件;uca:将小写字符转换为大写;swab:交换每一对输入数据字节;noerror:读取数据发生错误后仍然继续;sync:将每个输入数据块以 nul 字符填满至 ibs 的大小;当配合 block 或 unblock 时,会以空格代替 nul 字符填充;【例 1】备份文件
[root@localhost ~]# dd if=/etc/httpd/conf/httpd.conf of=/tmp/httpd.bak记录了67+1 的读入#数据占了写满的67个数据块,以及1个没有写满的数据块记录了67+1 的写出#默认数据块大小是512字节34439字节(34 kb)已复制,0.0524897 秒,656 kb/秒#如果要备份文件,那么dd命令和cp命令非常类似[root@localhost ~]# ll -h /tmp/httpd.bak-rw-r--r--.1 root root 34k 6月 5 18:04 /tmp/httpd.bak#查看一下生成的备份文件的大小
【例 2】备份分区为一个备份文件
[root@localhost ~]# df -h文件系统 容量 已用 可用 已用%% 挂载点/dev/sda3 20g 2.0g 17g 11% /tmpfs 306m 0 306m 0% /dev/shm/dev/sda1 194m 27m 157m 15% /boot/dev/sr0 3.5g 3.5g 0 100% /mnt/cdrom#查看一下分区容量,我们备份/boot分区[root@localhost ~]# dd if=/dev/sda1 of=/tmp/boot.bak#备份完成[root@localhost ~]# ll -h /tmp/boot.bak-rw-r--r--.1 root root 200m 6月 5 18:14 /tmp/boot.bak#查看生成的备份文件#如果需要恢复,则执行以下命令[root@localhost ~]# dd if=/tmp/boot.bak of=/dev/sda1
如果想要把分区直接备份成另一个分区,就需要生成一个新的分区,这个分区的大小不能比源分区小,只能和源分区大小一致或比它大。命令如下:
[root@localhost ~]# dd if=/dev/sda1 of=/dev/sdb1#如果需要恢复,则只需把输入项和输出项反过来即可,命令如下[root@localhost ~]# dd if=/dev/sdb1 of=/dev/sda1
【例 3】整盘备份
[root@localhost ~]# dd if=/dev/sda of=/dev/sdb#把磁盘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
【例 4】复制软盘
[root@loc哈尔滨专升本alhost ~]# dd if=/dev/fd0 of=/tmp/fd.bak#在linux中软盘的设备文件名是/dev/fd0#这条命令先把软盘中的数据保存为临时数据文件[root@localhost ~]# dd if=/tmp/fd.bak of=/dev/fd0#然后更换新的软盘,把数据备份复制到新软盘中,就实现了软盘的复制
如果需要备份的是光盘,那么在 linux 中就是使用 dd 命令制作光盘的 iso 镜像的。命令如下:
#制作光盘iso镜像[root@localhost ~]# dd if=/dev/cdrom of-/tmp/cd.iso #把光盘中所有的数据制作成iso镜像[ro高考失败ot@localhost ~j # mkdir /mnt/cd#建立一个新的挂载点[root@localhost ~]# mount -o loop /tmp/cd.iso /mnt/cd #挂栽iso文件到挂载点[root@localhost ~]# cd /mnt/cd#进入挂栽点[root@localhost cd]# lscentos_buildtag images relea-notes-en-tjs.html rpm-gpg-key-centos-debug-6 trans.tbleula isolinux repodata rpm-gpg-key-centos-curity-6gpl packages rpm-gpg-key-centos-6 rpm-gpg-key-centos-testing-6#数据是光盘当中的数据,这个iso镜像是可以被当作真正的光盘使用的
我们有时需要制作指定大小的文件,比如,在增加 swap 分区时,就需要建立指定大小的文件,这时也使用 dd 命令。命令如下:
[root@localhost ~]# dd if=/dev/zero of=/tmp/testfile bs=1m count=10#数据输入项是/dev/zero会向目标文件中不停地写入二进制的0#指定数据块大小是1mb#指定生成10个数据块。也就是定义输出的文件大小为10mb记录了10+0 的读入#显示数据占满了10个数据块记录了10+0 的写出#不过这里数据块的大小已经是1mb了10485760字节(10 mb)已复制,0.00709902 秒,1.5 gb/秒[root@localhost ~]# ll -h /tmp/testfile-rw-r--r--.1 root root 10m 6月 5 18:46 /tmp/testfile#生成的testfile文件的大小刚好是10mb
dd 命令在进行整盘复制时,类似于 ghost 工具的功能,不过通过 dd 命令复制出来的硬盘数据要比 ghost 复制出来的硬盘数据稳定得多。虽然 dd 命令功能强大,不过也有一个明显的缺排行手机点,就是复制的时间较长,复制 100gb 的数据需要 15~25 分钟(根据服务器的性能不同而不同)。
实现数据备份还有非常多的方法和工具,比如 tar 和 cpio 命令。至于网络复制工具,如 rsget考试ync 和 scp 等,需要较完善的网络知识才能够学习,这里不再介绍。
到此这篇关于linux dd命令详解:数据备份,并在备份过程中进行格式转换案例的文章就介绍到这了,更多相关linux dd命令内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章,希望大家以后多多支持www.887551.com!
本文发布于:2023-04-05 20:31:43,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/743dc78a40a53bd708157a4815119849.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:Linux dd命令详解:数据备份,并在备份过程中进行格式转换案例.doc
本文 PDF 下载地址:Linux dd命令详解:数据备份,并在备份过程中进行格式转换案例.pdf
留言与评论(共有 0 条评论) |