1. 方案概述

dd 是一个低级别的数据复制工具,能够直接将磁盘或分区的内容逐位复制到另一个设备或文件中。使用 dd 备份系统盘可以获得整个系统的精确副本,包括操作系统、配置文件、已安装的软件、以及所有用户数据。

2. 前提条件

  • 源设备:包含系统的磁盘(如 /dev/sda
  • 目标设备或文件:可以是另一个磁盘(如 /dev/sdb),或者一个备份文件(如 /mnt/backup/system_backup.img),本次采用备份为img文件的方式测试备份。
  • 备用存储设备:用于存储备份数据,其容量应等于或大于源设备的容量。
  • 可启动的LiveCD/LiveUSB:用于停机时备份。

3. 备份前的准备工作

  1. 准备LiveCD/LiveUSB

    • 下载Ubuntu ISO镜像文件并制作LiveCD或LiveUSB。
    • 从LiveCD/LiveUSB启动系统,以避免备份过程中文件系统的变动。
  2. 确认设备名称

    • 使用 lsblk 命令确认系统盘(源设备)和目标盘(或备份位置)的名称。
    • 示例:
      lsblk
      
  3. 检查磁盘使用情况

    • 确保目标设备的容量足够大,可以容纳源设备的数据。
  4. 环境介绍

    • 本次使用测试环境环境进行测试,系统分区如下,需要备份区域为整个sda磁盘:
      alt text
    • LiveUSB启动系统后系统分区如下:
      alt text
      /dev/sda   # 目标备份盘
      /dev/sdb   # 备份存储盘
      /dev/sdc   # LiveUSB启动盘
      

4. 备份过程

  1. 使用 dd 创建备份

    • 如果目标是另一个磁盘:
      sudo dd if=/dev/sda of=/dev/sdb bs=4M status=progress
      # 速率由500MB/s降至250MB/s趋于稳定 花费时间在6000s左右,具体速率与存储介质有关
      
    • 如果目标是备份文件:
      sudo dd if=/dev/sda of=/mnt/ubuntu_2.0.img bs=4M status=progress
      # 速率由500MB/s降至250MB/s趋于稳定 花费时间在6000s左右,具体速率与存储介质有关
      
  2. 使用压缩减少备份文件大小(可选):

    • 适用于目标设备空间不足的情况,通过压缩备份文件以节省存储空间。
      sudo dd if=/dev/sda bs=4M | gzip > /mnt/backup/system_backup.img.gz
       # 该项未进行测试
      

5. 恢复过程

  1. 从备份文件恢复到磁盘

    • 从备份文件恢复:
      sudo mount /dev/sdb1 /mnt # 挂载备份存储盘
      sudo dd if=/mnt/ubuntu_2.0.img of=/dev/sda bs=4M status=progress
      
      alt text
    • 如果备份文件被压缩:
      gunzip -c /mnt/backup/system_backup.img.gz | sudo dd of=/dev/sda bs=4M status=progress  #未测试
      
  2. 从备份磁盘恢复到原始磁盘

    sudo dd if=/dev/sdb of=/dev/sda bs=4M status=progress
    # 该项未测试,直接将启动盘设置为/dev/sdb 后系统可以正常启动。(遇到不能识别磁盘时,在BIOS中将硬盘做RAID后可以正常识别启动)
    

6. 可行性分析

  • 优点

    • dd 是一种简单而直接的备份方法,能够完整地备份整个系统盘,包括引导扇区、文件系统、分区表等。
    • 适用于需要将系统恢复到与原始硬件完全相同的情况。
  • 缺点

    • 备份时间较长,特别是在磁盘容量较大的情况下。
    • 备份文件大小与磁盘大小相同,除非使用压缩,否则备份文件会非常大。
    • 恢复到不同硬件时可能需要额外的配置调整,如修复GRUB引导加载器、调整网络接口名称等。
  • 适用场景

    • 系统迁移:将整个操作系统迁移到新的磁盘或硬件设备。
    • 系统恢复:在系统崩溃或硬件故障时,快速恢复到备份时的状态。
    • 环境复制:复制相同配置的多个系统环境。

7. 注意事项

  • 备份和恢复过程中,确保不对源设备进行写操作,以防数据不一致。
  • 如果目标设备容量小于源设备,无法使用 dd 进行完整备份。
  • 使用LiveCD/LiveUSB时,建议在挂载目标设备时确保其已被正确识别且无数据损坏。

8. 方案总结

使用 dd 备份Ubuntu系统盘是一种可靠的方法,适用于完整系统的复制和恢复操作。通过压缩和合理的磁盘管理,可以克服备份文件过大的问题,并确保系统能够在需要时恢复到工作状态。