Ubuntu 文件系统克隆步骤
一、准备与总体思路
- 备份重要数据,克隆会覆盖目标盘数据。
- 准备一个可启动的 Ubuntu Live USB(Try Ubuntu),从 U 盘启动可确保源盘处于未挂载或只读状态,避免数据不一致。
- 确认设备名:用 lsblk 或 sudo fdisk -l 确认源盘(如 /dev/sda)与目标盘(如 /dev/sdb),务必使用整盘设备名,不要写成分区(如 /dev/sda1)。
- 目标盘容量需大于或等于源盘;若目标盘更大,后续可扩展分区。
- 操作前关闭电源相关省电,避免休眠/挂起导致写入异常。
二、方法一 使用 dd 进行整盘克隆(最稳妥、逐位复制)
- 启动到 Live USB,打开终端,确认设备:
- 执行克隆(示例将 /dev/sda 克隆到 /dev/sdb):
- sudo dd if=/dev/sda of=/dev/sdb bs=4M status=progress
- 可选:压缩镜像(先整盘 dd 到文件,再压缩)
- sudo dd if=/dev/sda bs=4M | gzip > /path/to/backup.img.gz
- 验证与启动:
- 关机,拔掉原系统盘或仅保留新盘,从目标盘启动验证系统是否正常进入。
- 提示:
- 目标盘原有数据会被完全覆盖;若需还原,可将镜像写回(gunzip -c backup.img.gz | sudo dd of=/dev/sda bs=4M)。
三、方法二 使用 Clonezilla 进行分区/整盘镜像克隆(图形化、适合批量与跨设备)
- 制作 Clonezilla 启动 U 盘(Rufus 写入 ISO)。
- 从 Clonezilla 启动,选择 device-image 模式。
- 选择源磁盘/分区与目标位置(外接硬盘/U 盘/网络存储),按向导执行镜像创建或恢复。
- 完成后关机,从目标盘启动并验证。
四、方法三 手动分区复制与 GRUB 修复(GParted + chroot,适合精细控制)
- 用 Live USB 启动,打开 GParted:
- 在目标盘创建与源盘相同类型/大小的分区布局(如 ext4、swap 等)。
- 逐个分区右键“复制”,粘贴到目标盘对应分区。
- 若目标盘更大,可在复制后扩展最后一个分区(如 ext4)以利用剩余空间。
- 挂载目标系统分区并 chroot:
- sudo mount /dev/sdb2 /mnt
- sudo mount --bind /dev /mnt/dev && sudo mount --bind /proc /mnt/proc && sudo mount --bind /sys /mnt/sys
- sudo chroot /mnt
- 在 chroot 内修复引导与文件系统标识:
- 更新 initramfs:update-initramfs -u -k all
- 安装/更新 GRUB:grub-install /dev/sdb && update-grub
- 如为 Btrfs 并启用子卷,按实际子卷挂载(如 /@、/@home)后再执行 update-grub。
- 退出 chroot,重启并从目标盘启动验证。
五、方法四 仅迁移用户数据或做系统级快照(非整盘克隆)
- 使用 Timeshift(适合系统配置与软件环境的快照/还原,默认不备份 /home):
- 安装:sudo apt install timeshift
- 选择 RSYNC 或 BTRFS 模式,设置备份位置与计划,执行快照;还原可在系统内或 Live 环境中进行。
- 使用 rsync 迁移文件级数据(不保留引导与权限细节,适合迁移 /home 或做自定义备份):
- 备份:sudo rsync -aAXv --exclude={“/dev/“,”/proc/”,“/sys/“,”/tmp/”,“/run/“,”/mnt/”,“/media/*”,“/lost+found”} / /path/to/backup/folder
- 恢复:sudo rsync -aAXv /path/to/backup/folder/ /mnt/target/
- 使用 tar 打包系统(便于离线保存/传输):
- 备份:sudo tar cvpzf /path/to/backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/mnt --exclude=/sys --exclude=/media /
- 恢复:sudo tar xvpfz /path/to/backup.tgz -C /,然后重建被排除目录(mkdir /proc /lost+found /mnt /sys /media)。
六、关键注意事项
- 正确识别设备名,严禁把 /dev/sda 写成 /dev/sda1;写错设备名会造成数据丢失。
- 目标盘容量需≥源盘;dd 不支持“缩小克隆”,若目标盘更大,克隆后扩展分区/文件系统。
- 全程避免对源盘写入;从 Live USB 操作最安全。
- 克隆后首次启动建议检查 /etc/fstab 的 UUID 是否匹配(可用 blkid 查看),必要时修正;如使用 GParted 复制分区,通常建议为新分区生成新的 UUID 以避免冲突。
- 若从 NVMe 迁移到 SATA 或反之,引导参数与设备路径可能变化,需在 chroot 中重新安装/更新 GRUB 并验证 。