Linux dd命令解析: 数据备份及格式转换的实例详解
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 字符填充;
【例 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@localhost ~]# 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镜像 [root@localhost ~J # mkdir /mnt/cd #建立一个新的挂载点 [root@localhost ~]# mount -o loop /tmp/cd.iso /mnt/cd #挂栽ISO文件到挂载点 [root@localhost ~]# cd /mnt/cd #进入挂栽点 [root@localhost cd]# ls CentOS_BuildTag images RELEASE-NOTES-en-tJS.html RPM-GPG-KEY-CentOS-Debug-6 TRANS.TBL EULAisolinux repodata RPM-GPG-KEY-CentOS-Security-6 GPL 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 命令。至于网络复制工具,如 rsync 和 scp 等,需要较完善的网络知识才能够学习,这里不再介绍。
以上是Linux dd命令解析: 数据备份及格式转换的实例详解的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

对于许多用户来说,破解 Android 电视盒听起来令人畏惧。然而,在 Broadcom 芯片短缺期间,开发人员 Murray R. Van Luyn 面临着寻找 Raspberry Pi 合适替代品的挑战。他与 Armbia 的合作努力

DeepSeek 是一款强大的智能搜索与分析工具,提供网页版和官网两种访问方式。网页版便捷高效,免安装即可使用;官网则提供全面产品信息、下载资源和支持服务。无论个人还是企业用户,都可以通过 DeepSeek 轻松获取和分析海量数据,提升工作效率、辅助决策和促进创新。

DeepSeek的安装方法有多种,包括:从源码编译(适用于经验丰富的开发者)使用预编译包(适用于Windows用户)使用Docker容器(最便捷,无需担心兼容性)无论选择哪种方法,请仔细阅读官方文档并充分准备,避免不必要的麻烦。

如何下载BitPie比特派钱包App?步骤如下:在AppStore(苹果设备)或GooglePlay商店(安卓设备)中搜索“BitPie比特派钱包”。点击“获取”或“安装”按钮下载应用程序。对于电脑版,访问BitPie比特派钱包官方网站并下载相应软件包。

BITGet 是一款加密货币交易所,提供各种交易服务,包括现货交易、合约交易和衍生品。该交易所成立于 2018 年,总部位于新加坡,致力于为用户提供安全可靠的交易平台。BITGet 提供多种交易对,包括 BTC/USDT、ETH/USDT 和 XRP/USDT。此外,该交易所还在安全性和流动性方面享有盛誉,并提供多种功能,如高级订单类型、杠杆交易和 24/7 全天候客户支持。

1.安装环境(Hyper-V虚拟机):$hostnamectlStatichostname:localhost.localdomainIconname:computer-vmChassis:vmMachineID:renwoles1d8743989a40cb81db696400BootID:renwoles272f4aa59935dcdd0d456501Virtualization:microsoftOperatingSystem:CentOSLinux7(Core)CPEOSName:cpe:

欧易 OKX,全球领先的数字资产交易所,现推出官方安装包,提供安全便捷的交易体验。欧易 OKX 安装包无需通过浏览器访问,可直接在设备上安装独立应用程序,为用户打造稳定高效的交易平台。安装过程简便易懂,用户只需下载最新版本安装包,按照提示一步步操作即可完成安装。

Gate.io是一款受欢迎的加密货币交易所,用户可通过下载其安装包并安装在设备上使用。获取安装包步骤如下:访问Gate.io官方网站,点击“下载”,选择对应操作系统(Windows、Mac或Linux),将安装包下载至计算机。安装过程中建议暂时禁用杀毒软件或防火墙,确保安装顺利。完成后,用户需创建Gate.io账户以开始使用。
