玩转Linux dd命令:备份与恢复指南

news2024/11/16 13:49:07

欢迎来到我的博客,代码的世界里,每一行都是一个故事


在这里插入图片描述

🎏:你只管努力,剩下的交给时间

🏠 :小破站

玩转Linux dd命令:备份与恢复指南

    • 前言
    • 简介
      • 基本语法
      • 常用选项
    • 示例
        • 3. 高级用法
    • 性能优化
      • 1. 调整块大小(`bs` 选项)
      • 2. 使用直接 I/O(`oflag=direct` 选项)
      • 3. 异步 I/O(`oflag=dsync` 或 `iflag=dsync` 选项)
      • 4. 禁用错误检测(`conv=noerror,sync` 选项)
      • 5. 多线程处理(`pv` 工具)
      • 6. 调整输入输出缓冲区大小(`ibs` 和 `obs` 选项)
      • 7. 设置进度显示(`status=progress` 选项)
      • 总结

前言

在Linux世界中,有一个命令被称为数据处理的“瑞士军刀”,那就是dd命令。无论你是需要复制大文件、创建磁盘镜像,还是进行数据备份,dd命令都能轻松应对。虽然它功能强大,但也常被新手认为复杂难用。今天,我们就来揭开dd命令的神秘面纱,看看它如何帮助我们高效地处理数据。

简介

dd 是一个在 Unix 和类 Unix 操作系统中用于低级别数据复制和转换的命令。它的名字来源于 IBM 的 JCL(Job Control Language)中的一条类似命令。dd 是一个强大且灵活的工具,可以用于备份、恢复、创建磁盘映像、清除磁盘数据等操作。

以下是 dd 命令的基本用法和一些常见选项:

基本语法

dd if=<输入文件> of=<输出文件> [选项]
  • if(input file):输入文件或设备。例如,if=/dev/sda 表示读取整个硬盘。
  • of(output file):输出文件或设备。例如,of=/dev/sdb 表示写入另一个硬盘。

常用选项

  • bs(block size):指定读写的块大小。例如,bs=4M 表示每次读写 4MB 的数据。
  • count:指定要复制的块数。例如,count=100 表示只复制 100 个块。
  • status:控制状态输出的详细程度。例如,status=progress 会显示复制进度。
  • conv:指定数据转换选项。例如,conv=sync,noerror 表示同步写入并忽略读写错误。

示例

  • 复制文件:将一个文件复制到另一个文件。

    dd if=/path/to/source_file of=/path/to/destination_file
    
  • 备份磁盘分区:将一个磁盘分区备份到一个镜像文件。

    dd if=/dev/sda1 of=/path/to/backup.img
    
  • 恢复磁盘分区:将镜像文件恢复到磁盘分区。

    dd if=/path/to/backup.img of=/dev/sda1
    
3. 高级用法
  • 设置块大小:使用bs参数设置块大小,以提高复制效率。

    dd if=/dev/sda of=/path/to/backup.img bs=64K
    
  • 跳过和截取数据:使用skipcount参数跳过输入文件中的部分数据或仅复制部分数据。

    dd if=/dev/sda of=/path/to/backup.img skip=1M count=100M
    
  • 数据格式转换:使用conv参数进行数据格式转换,如转换为小写或大写。

    dd if=/path/to/source_file of=/path/to/destination_file conv=lcase
    
  • 生成一个 1GB 的随机数据文件

    dd if=/dev/urandom of=randfile bs=1M count=1024 status=progress
    
  • 转换文本文件的换行符

    dd if=unixfile.txt of=dosfile.txt conv=unix2dos
    
  • 创建启动盘:将ISO文件写入U盘,制作启动盘。

    dd if=/path/to/ubuntu.iso of=/dev/sdb bs=4M status=progress
    
  • 磁盘性能测试:使用dd命令测试磁盘的读写速度。

    dd if=/dev/zero of=testfile bs=1G count=1 oflag=direct
    

性能优化

dd 命令可以通过调整一些参数来优化性能,特别是在处理大文件或设备时。以下是一些常用的性能优化方法:

1. 调整块大小(bs 选项)

选择合适的块大小可以显著提高 dd 的性能。块大小太小会导致系统调用频繁,增加开销;块大小太大会浪费内存。一般来说,较大的块大小(如 4MB 或 8MB)通常能提高传输速度。

dd if=/dev/sda of=/path/to/backup.img bs=4M status=progress

2. 使用直接 I/O(oflag=direct 选项)

使用直接 I/O 选项可以绕过操作系统的缓存,提高大文件复制的性能。这对于磁盘备份和恢复尤其有效。

dd if=/dev/sda of=/path/to/backup.img bs=4M oflag=direct status=progress

3. 异步 I/O(oflag=dsynciflag=dsync 选项)

异步 I/O 可以在写入数据时不等待 I/O 操作完成,这样可以提高数据传输效率。dsync 选项可以保证数据完整性。

dd if=/dev/sda of=/path/to/backup.img bs=4M oflag=dsync status=progress

4. 禁用错误检测(conv=noerror,sync 选项)

在复制过程中,如果遇到错误,默认情况下 dd 会停止。使用 noerror 选项可以忽略错误,继续复制。sync 选项可以填充错误的块,使输出文件和输入文件大小一致。

dd if=/dev/sda of=/path/to/backup.img bs=4M conv=noerror,sync status=progress

5. 多线程处理(pv 工具)

dd 本身是单线程的,可以通过 pv 工具来监控和调整数据流,以提高性能。pv 工具允许实时监控进度,并可以利用多线程进行数据处理。

安装 pv 工具:

sudo apt-get install pv

使用 pvdd 组合:

pv -tpreb /dev/sda | dd of=/path/to/backup.img bs=4M

6. 调整输入输出缓冲区大小(ibsobs 选项)

可以分别设置输入和输出的块大小,以优化特定设备的读写性能。例如,输入块大小为 1MB,输出块大小为 4MB:

dd if=/dev/sda of=/path/to/backup.img ibs=1M obs=4M status=progress

7. 设置进度显示(status=progress 选项)

虽然这不会直接提高性能,但 status=progress 选项可以实时显示进度,使你能够监控 dd 的执行情况,有助于识别和优化性能瓶颈。

dd if=/dev/sda of=/path/to/backup.img bs=4M status=progress

总结

通过适当调整 dd 的参数和选项,可以显著提高数据传输的性能。根据具体的使用场景和硬件环境,选择合适的块大小、直接 I/O、异步 I/O 等选项,可以优化 dd 的执行效率。在进行重要数据操作前,建议先进行小规模测试,确保选项设置正确且高效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1860836.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微深节能 料场堆取料无人操作系统 格雷母线

格雷母线高精度位移检测系统在料场堆取料中的应用是一个重要的技术进步&#xff0c;它极大地提升了堆取料作业的自动化和精确性。 一、格雷母线定位系统概述 格雷母线高精度位移测量系统&#xff0c;包括格雷母线、天线箱、地址解码器、地址编码器四个部分组成。 格雷母线类似一…

圈子系统搭建教程,以及圈子系统的功能特点,圈子系统,允许二开,免费源码,APP小程序H5

圈子是一款社区与群组的交友工具。你可以在软件内创造一个兴趣的群组从而达到按圈子来交友的效果用户可以根据自己的兴趣爱好。 1. 创建圈子 轻松创建专属圈子&#xff0c;支持付费型社群。 2. 加入圈子 加入不同圈子&#xff0c;设置不同名片&#xff0c;保护隐私。 3. 定…

权威VS实战:如何权衡六西格玛培训证书的两种价值?

当我们谈论六西格玛培训证书时&#xff0c;我们不得不提到两种截然不同的“身份象征”。一种是由专业培训机构颁发的证书&#xff0c;这种证书在质量管理领域同样具有不可忽视的价值。 培训机构颁发的六西格玛证书&#xff0c;不仅代表着你已经完成了他们精心设计的培训课程&a…

分布式事务之Seata框架

文章目录 一、分布式事务1.什么是分布式事务2.分布式事务的思想 二、Seata框架1.认识Seata2.事务管理三个重要角色3.事务模式4.二阶段提交5.XA模式6.AT模式7.AT模式与XA模式的区别8. TCC 模式9.Saga 模式 一、分布式事务 1.什么是分布式事务 传统的单体项目被拆分成多个微服务…

七牛云 Miku 快直播,陪你一起看球!

足球&#xff0c;作为全球最受欢迎的运动之一&#xff0c;每一次大赛都是球迷心中的狂欢&#xff0c;每一场比赛都记录着足球历史的精彩。 2000 年&#xff0c;特雷泽盖的金球&#xff0c;照亮了法兰西的足球梦想。 2004 年&#xff0c;查理斯特亚斯的头槌破门&#xff0c;成就…

数字化营销师:企业数字化转型中的关键力量

在当今数字化浪潮席卷全球的时代&#xff0c;企业面临着又新又难的挑战与机遇。数字化转型已成为企业提升竞争力、实现可持续发展的必然选择。而在这一过程中&#xff0c;数字化营销师正以其独特的专业技能和创新思维&#xff0c;发挥着不可或缺的重要作用。蚓链数字化营销系统…

C#——里氏转换详情

里氏转换 里氏转换就是派生类的对象赋值给父类对象&#xff0c;反之则不行 实例 : 先创键一个类然后继承 调用

方案论证项目分析

文章目录 1. 介绍2. 分析2.1. 场景加载2.2. 地形平压2.3. 模型放置2.4. 绘制区域2.5. 查看方案2.6. 数据库的字段2.7. 接口 3. 难点3.1. 调整模型的位置3.2. 旋转 1. 介绍 这是一个涉及Cesium.js&#xff08;一个用于Web的3D地球和地图的JavaScript库&#xff09;和前后端交互…

Reqable抓包工具

今天给大家最近一个好用的Api抓包工具&#xff0c;最重要的是它还是中文版本的 电脑 手机 都可以抓 这是官网地址&#xff1a;https://reqable.com/zh-CN/docs/getting-started/ 进入后我们点击【下载】根据自己电脑需求选择对应版本&#xff0c;我的是window10&#xff0c;选…

LLC开关电源开发:如何使用信号发生器与示波器设计环路

如何使用信号发生器与示波器设计环路 一、主回路二、小信号注入三、LLC 数字环路计算书一、主回路 如下图所示为系统整体架构,包括 LLC 主功率线路,采集线路、RC 滤波线路,DSP 运算。DSP 通过采集由差分运放转化而来的输出电压量(一阶 RC 滤除线路杂波),经数字环路产生特…

中国智能驾驶功能体验及技术方案研究报告

◼ 随着高速NOA功能的落地&#xff0c;用户对于高阶智能驾驶功能的认知被打开。2023年&#xff0c;车企在不断优化高速NOA功能体验的同时&#xff0c;也正在争先推动城市NOA功能的落地。掌握并实现全场景辅助驾驶的技术实力&#xff0c;能够帮助车企在未来的市场竞争中占据主动…

表单prop必填验证根据el-radio-group的值来动态绑定

1、radio的值为5时输入框是必填&#xff0c;其余时候是非必填 2、看图 3、代码 data() {return {optForm:{type:,remark:,},rules:{type:[{ required: true,trigger: change,message:该项为必填项}],remark:[]}};},watch: {"optForm.type"(newVal, oldVal) {this.$…

【scrapy】1.scrapy爬虫入门

一、scrapy爬虫框架 Scrapy 框架是一个基于Twisted的一个异步处理爬虫框架&#xff0c;应用范围非常的广泛&#xff0c;常用于数据采集、网络监测&#xff0c;以及自动化测试等。 scrapy框架包括5个主要的组件&#xff1a; Scheduler&#xff1a;事件调度器&#xff0c;它负…

Unix-privesc-check一键检查 Unix 系统(KALI工具系列三十一)

目录 1、KALI LINUX 简介 2、Unix-privesc-check简介 3、使用对象 4、操作实例 4.1 快速扫描 4.2 检测特定列表 4.3 详细模式 4.4 扫描结果解读 5、总结 1、KALI LINUX 简介 Kali Linux 是一个功能强大、多才多艺的 Linux 发行版 &#xff0c;广泛用于网络安全社区。它…

小白篇--如何在本地搭建 go环境

前言 Go语言的优势主要体现在其简洁、高效、并发性能、跨平台支持、强大的社区支持以及在云计算和多核CPU时代的高效算子处理能力。 简洁&#xff1a;Go语言的设计哲学是“少即是多”&#xff0c;其遵循简单和清晰的原则&#xff0c;使得代码简洁明了&#xff0c;易于理解和维…

GPT-5智能新纪元的曙光

在美国达特茅斯工程学院周四公布的采访中&#xff0c;OpenAI首席技术官米拉穆拉蒂被问及GPT-5是否会在明年发布&#xff0c;给出了肯定答案并表示将在一年半后发布。穆拉蒂在采访中还把GPT-4到GPT-5的飞跃描述为高中生到博士生的成长。 这一爆炸性的消息&#xff0c;震动了整体…

木材容易发霉怎么办除霉处理方法

木材存放不当就容易出现发霉情况&#xff0c;那么可通过那些方法将木材表面的霉斑除掉呢&#xff1f;经ihaoer防霉人士介绍处理木材发霉处理方法如下&#xff1a; 木材发霉的原因主要包括木材本身的营养物质、环境湿度、温度以及空气流动性等因素。木材中含有蛋白质、淀粉、油类…

SpringBoot优点达项目实战:项目基本配置(二)

SpringBoot优点达项目实战&#xff1a;项目基本配置&#xff08;二&#xff09; 文章目录 SpringBoot优点达项目实战&#xff1a;项目基本配置&#xff08;二&#xff09;1、项目初始化配置2、MyBatisPlus配置3、Knife配置4、定义统一返回数据结构 1、项目初始化配置 创建appli…

【期末复习】计算机组成原理

海明码 最通俗的海明码计算方法&#xff0c;不需记公式&#xff0c;套步骤即可&#xff08;可能都不需要理解&#xff09; https://www.bilibili.com/video/BV1tL4y1h7Fd/ 接上一海明码视频&#xff08;海明码的纠错&#xff09; https://www.bilibili.com/video/BV1tf4y1A7NX/…

探索 Screen:一个强大的终端复用工具

在日常的系统管理和开发工作中&#xff0c;我们经常需要同时运行多个终端任务&#xff0c;或者需要在一个终端会话中保持任务的持续运行&#xff0c;即使我们断开了与服务器的连接。这时&#xff0c;screen 命令就成为了一个非常有用的工具。本文将详细介绍 screen 的功能、使用…