【Linux】dd命令常用的使用场景

1. 备份整个磁盘

dd if=/dev/sda of=/path/to/backup.img bs=4M
  • 备份整个硬盘到一个镜像文件。

2. 恢复磁盘镜像

dd if=/path/to/backup.img of=/dev/sda bs=4M
  • 从磁盘镜像恢复整个硬盘。

3. 制作 USB 启动盘

dd if=/path/to/linux.iso of=/dev/sdb bs=4M status=progress
  • 将 Linux ISO 镜像写入 USB 驱动器制作启动盘。

4. 擦除磁盘数据

dd if=/dev/zero of=/dev/sda bs=1M
  • 将零写入整个磁盘,安全擦除磁盘内容。

5. 制作空文件

dd if=/dev/zero of=empty_file.img bs=1M count=100
  • 创建一个 100MB 的空文件,用于虚拟磁盘或测试。

6. 创建稀疏文件

dd if=/dev/zero of=sparse.img bs=1M seek=1024 count=0
  • 创建一个 1GB 的稀疏文件,不实际占用磁盘空间。

7. 从损坏的硬盘恢复数据

dd if=/dev/sda of=/path/to/output.img conv=noerror,sync bs=4M
  • 忽略读取错误,跳过损坏的扇区并恢复数据。

8. 从压缩文件中恢复数据

gunzip -c backup.img.gz | dd of=/dev/sda bs=4M
  • 解压缩备份并恢复到硬盘。

9. 创建磁盘镜像的压缩备份

dd if=/dev/sda bs=4M | gzip > backup.img.gz
  • 备份整个磁盘并压缩为 .gz 文件。

10. 测试磁盘写入性能

dd if=/dev/zero of=testfile.img bs=1M count=1000 oflag=direct
  • 创建 1GB 文件测试磁盘的写入速度。

11. 测试磁盘读取性能

dd if=testfile.img of=/dev/null bs=1M
  • 从测试文件读取数据,测量磁盘的读取性能。

12. 从特定偏移量开始复制

dd if=input.file of=output.file bs=512 skip=1000
  • 从输入文件的第 1001 个块开始复制数据。

13. 复制部分数据

dd if=input.file of=output.file bs=512 count=200
  • 只复制输入文件的前 200 个块。

14. 交换字节顺序

dd if=input.file of=output.file conv=swab
  • 交换相邻字节,适用于处理不同字节序的文件。

15. 将硬盘写入到网络端

dd if=/dev/sda | ssh user@remote "dd of=/path/to/backup.img"
  • 通过网络将硬盘的内容写入到远程服务器。

16. 将网络传输的数据写入到磁盘

ssh user@remote "dd if=/path/to/backup.img" | dd of=/dev/sda
  • 从远程服务器读取备份文件并恢复到本地硬盘。

17. 复制 CD/DVD 镜像

dd if=/dev/cdrom of=cd_image.iso bs=4M
  • 将 CD/DVD 的内容复制到 ISO 镜像文件。

18. 创建硬盘的 MD5 校验值

dd if=/dev/sda bs=1M | md5sum
  • 创建整个硬盘的 MD5 校验值,用于验证一致性。

19. 从镜像创建分区

dd if=backup.img of=/dev/sda1 bs=4M
  • 将备份镜像写入到指定的分区 /dev/sda1

20. 将随机数据写入磁盘以增强安全性

dd if=/dev/urandom of=/dev/sda bs=1M
  • 用随机数据覆盖整个磁盘,增加数据销毁的安全性。

21. 转换 ASCII 和 EBCDIC 编码

dd if=ebcdic_file of=ascii_file conv=ascii
  • 将 EBCDIC 文件转换为 ASCII 编码。

22. 转换 ASCII 文件为 EBCDIC 编码

dd if=ascii_file of=ebcdic_file conv=ebcdic
  • 将 ASCII 编码的文件转换为 EBCDIC。

23. 从文件尾部读取数据

dd if=logfile of=tail.log bs=1M skip=50
  • 跳过日志文件的前 50MB 数据,从文件尾部读取日志。

24. 复制硬盘主引导记录 (MBR)

dd if=/dev/sda of=mbr_backup.img bs=512 count=1
  • 备份硬盘的主引导记录(MBR),一般为前 512 字节。

25. 恢复主引导记录 (MBR)

dd if=mbr_backup.img of=/dev/sda bs=512 count=1
  • 恢复之前备份的 MBR 到硬盘。

26. 从磁盘读取前 100MB 数据

dd if=/dev/sda of=first_100MB.img bs=1M count=100
  • 将磁盘的前 100MB 数据读入到镜像文件中。

27. 将镜像恢复到特定分区

dd if=backup.img of=/dev/sda1 bs=4M
  • 将备份的镜像文件恢复到指定分区 /dev/sda1

28. 备份 UEFI BIOS 固件

dd if=/dev/mem of=bios_backup.bin bs=1M count=4 skip=100
  • 从内存中备份 UEFI BIOS 固件。

29. 创建 FAT 文件系统的引导扇区备份

dd if=/dev/sda1 of=fat_boot_sector.img bs=512 count=1
  • 备份 FAT 文件系统的引导扇区。

30. 复制磁带设备

dd if=/dev/nst0 of=/path/to/tape_backup.img bs=64k
  • 将磁带设备中的内容复制到文件中。

31. 恢复磁带数据

dd if=/path/to/tape_backup.img of=/dev/nst0 bs=64k
  • 将备份的文件恢复到磁带设备。

32. 备份 SD 卡内容

dd if=/dev/mmcblk0 of=sd_backup.img bs=4M
  • 将整个 SD 卡备份到镜像文件。

33. 恢复 SD 卡内容

dd if=sd_backup.img of=/dev/mmcblk0 bs=4M
  • 将备份的镜像文件恢复到 SD 卡。

34. 快速格式化分区

dd if=/dev/zero of=/dev/sda1 bs=1M count=100
  • 用零覆盖分区的前 100MB 数据,快速清空分区。

35. 生成随机数文件

dd if=/dev/urandom of=random_data.bin bs=1M count=10
  • 生成 10MB 的随机数文件,可用于密码学或安全测试。

36. 备份 GPT 分区表

dd if=/dev/sda of=gpt_backup.img bs=512 count=34
  • 备份 GPT 磁盘的前 34 个扇区(包含 GPT 分区表)。

37. 恢复 GPT 分区表

dd if=gpt_backup.img of=/dev/sda bs=512 count=34
  • 恢复备份的 GPT 分区表到磁盘。

38. 删除硬盘的签名

dd if=/dev/zero of=/dev/sda bs=512 count=1
  • 用零覆盖硬盘的第一个扇区,清除硬盘签名(类似于重置硬盘)。

39. 修复损坏的分区表

dd if=/dev/sda of=/dev/sda bs=512 count=1 skip=1 seek=1
  • 将分区表的备份扇区复制回主分区表位置,修复损坏的分区表。

40. 转换文件系统镜像为标准镜像

dd if=filesystem.img of=standard.iso bs=2048 conv=sync
  • 将文件系统镜像转换为标准 ISO 文件格式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值