搜索结果

×

搜索结果将在这里显示。

🛬 使用dd命令备份硬盘镜像并压缩保存到指定目录

使用 dd 命令备份硬盘镜像并结合压缩工具(如 gzippigzxz)可以大幅减少备份文件体积。以下是完整的操作指南,包括备份、压缩和存储到指定目录的步骤:


1. 准备工作

  • 确认源硬盘和目标路径
    • 使用 lsblkfdisk -l 确认源硬盘设备(如 /dev/sda)。
    • 确保目标目录有足够空间(至少等于源硬盘已用空间,压缩后会变小)。
  • 卸载源硬盘(可选)
    如果备份的是系统盘,建议从 Live CD/USB 启动,避免写入冲突。

2. 基本备份命令

(1)直接备份整个硬盘(未压缩)

sudo dd if=/dev/sdX of=/path/to/backup/disk.img bs=4M status=progress
  • if=/dev/sdX:源硬盘设备(如 /dev/sda)。
  • of=/path/to/backup/disk.img:备份镜像保存路径。
  • bs=4M:块大小(提高读写效率)。
  • status=progress:显示实时进度。

(2)备份分区(如 /dev/sda1

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

3. 压缩备份

方法 1:使用 gzip(快速压缩)

sudo dd if=/dev/sdX bs=4M status=progress | gzip -c > /path/to/backup/disk.img.gz
  • 解压命令
    gunzip -c /path/to/backup/disk.img.gz | sudo dd of=/dev/sdX bs=4M status=progress

方法 2:使用 pigz(多线程加速,推荐)

sudo dd if=/dev/sdX bs=4M status=progress | pigz -c > /path/to/backup/disk.img.gz
  • pigzgzip 的多线程版本,速度更快(需安装:sudo apt install pigz)。

方法 3:使用 xz(高压缩比,速度慢)

sudo dd if=/dev/sdX bs=4M status=progress | xz -z -T0 -c > /path/to/backup/disk.img.xz
  • -T0:使用所有CPU线程。
  • 解压命令
    xz -d -c /path/to/backup/disk.img.xz | sudo dd of=/dev/sdX bs=4M status=progress

4. 校验备份完整性

(1)校验原始设备和备份文件

sudo sha256sum /dev/sdX  # 计算源设备的哈希
sha256sum /path/to/backup/disk.img.gz  # 计算备份文件的哈希

确保两者哈希一致(解压后比对)。

(2)检查镜像内容(可选)

file /path/to/backup/disk.img.gz  # 查看文件类型
gunzip -l /path/to/backup/disk.img.gz  # 检查压缩文件信息

5. 恢复备份

(1)恢复整个硬盘

gunzip -c /path/to/backup/disk.img.gz | sudo dd of=/dev/sdX bs=4M status=progress

(2)恢复分区

gunzip -c /path/to/backup/partition.img.gz | sudo dd of=/dev/sdX1 bs=4M status=progress

6. 高级技巧

  • 排除空数据(节省空间)
    使用 conv=sparse 跳过空块:
    sudo dd if=/dev/sdX bs=4M conv=sparse status=progress | pigz -c > disk.img.gz
  • 备份到远程服务器
    通过 ssh 直接备份到远程主机:
    sudo dd if=/dev/sdX bs=4M status=progress | pigz -c | ssh user@host "cat > /remote/path/disk.img.gz"

注意事项

  1. 权限问题:所有命令需 sudo 权限。
  2. 目标空间:压缩后大小取决于数据内容(文本/日志压缩率高,已压缩文件如视频压缩率低)。
  3. 中断恢复:如果备份中断,恢复时需从头开始。

总结

场景 命令示例
备份+压缩 dd if=/dev/sdX | pigz -c > backup.img.gz
恢复 gunzip -c backup.img.gz | dd of=/dev/sdX
高压缩比 替换 pigzxz -z -T0
远程备份 dd if=/dev/sdX | pigz -c | ssh user@host "cat > backup.img.gz"

按需选择压缩工具和存储路径即可! 🔧