1. 方案概述
dd
是一个低级别的数据复制工具,能够直接将磁盘或分区的内容逐位复制到另一个设备或文件中。使用 dd
备份系统盘可以获得整个系统的精确副本,包括操作系统、配置文件、已安装的软件、以及所有用户数据。
2. 前提条件
- 源设备:包含系统的磁盘(如
/dev/sda
) - 目标设备或文件:可以是另一个磁盘(如
/dev/sdb
),或者一个备份文件(如/mnt/backup/system_backup.img
),本次采用备份为img文件的方式测试备份。 - 备用存储设备:用于存储备份数据,其容量应等于或大于源设备的容量。
- 可启动的LiveCD/LiveUSB:用于停机时备份。
3. 备份前的准备工作
-
准备LiveCD/LiveUSB:
- 下载Ubuntu ISO镜像文件并制作LiveCD或LiveUSB。
- 从LiveCD/LiveUSB启动系统,以避免备份过程中文件系统的变动。
-
确认设备名称:
- 使用
lsblk
命令确认系统盘(源设备)和目标盘(或备份位置)的名称。 - 示例:
lsblk
- 使用
-
检查磁盘使用情况:
- 确保目标设备的容量足够大,可以容纳源设备的数据。
-
环境介绍:
- 本次使用
测试环境
环境进行测试,系统分区如下,需要备份区域为整个sda磁盘:
- LiveUSB启动系统后系统分区如下:
/dev/sda # 目标备份盘 /dev/sdb # 备份存储盘 /dev/sdc # LiveUSB启动盘
- 本次使用
4. 备份过程
-
使用
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左右,具体速率与存储介质有关
- 如果目标是另一个磁盘:
-
使用压缩减少备份文件大小(可选):
- 适用于目标设备空间不足的情况,通过压缩备份文件以节省存储空间。
sudo dd if=/dev/sda bs=4M | gzip > /mnt/backup/system_backup.img.gz # 该项未进行测试
- 适用于目标设备空间不足的情况,通过压缩备份文件以节省存储空间。
5. 恢复过程
-
从备份文件恢复到磁盘:
- 从备份文件恢复:
sudo mount /dev/sdb1 /mnt # 挂载备份存储盘 sudo dd if=/mnt/ubuntu_2.0.img of=/dev/sda bs=4M status=progress
- 如果备份文件被压缩:
gunzip -c /mnt/backup/system_backup.img.gz | sudo dd of=/dev/sda bs=4M status=progress #未测试
- 从备份文件恢复:
-
从备份磁盘恢复到原始磁盘:
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系统盘是一种可靠的方法,适用于完整系统的复制和恢复操作。通过压缩和合理的磁盘管理,可以克服备份文件过大的问题,并确保系统能够在需要时恢复到工作状态。