前几天帮朋友把一台老笔记本上的 Ubuntu 系统搬到一块容量更小的 SSD 上他第一反应是用再生龙做整盘备份再还原结果恢复时直接卡在“目标硬盘小于源硬盘”的检查上。这个场景太典型了源盘 1TB新盘 512GB实际数据只用了 180GB理论上完全装得下但再生龙默认会按源盘分区表去创建分区目标盘一检查就报错。很多刚接触再生龙备份 Linux 系统的朋友会以为这是工具 bug其实它只是把“整盘克隆”和“文件级迁移”的边界划得很清楚。这篇文章就从底层逻辑、容量核算、源端瘦身、专家模式参数、文件级迁移、临时大盘中转、引导修复、常见报错排查几个角度把“再生龙移植 Ubuntu 硬盘大小限制解决方案”一次讲透。无论你是在物理机之间搬系统还是在 VMware 虚拟机安装 Ubuntu 后想迁到小容量磁盘或者准备给旧机器做 Ubuntu 系统重装下面这些步骤都能直接参考。1. 先搞懂再生龙移植 Ubuntu 时硬盘大小限制到底卡在哪1.1 再生龙不是简单的 dd 复制分区表才是第一道门槛很多人把再生龙理解成“带界面的 dd”这个认知在整盘同容量克隆时问题不大但一旦目标盘变小就会踩坑。dd 是逐扇区复制源盘 1TB目标盘 512GB写到一半必然失败。再生龙比 dd 聪明一些它默认走的是“保存分区表 保存各分区文件系统数据”的路线恢复时先按源盘的分区表在目标盘上创建分区再把分区数据写回去。问题在于源盘分区表里记录的分区结束位置可能已经超过目标盘容量比如源盘第一个分区从 1MiB 到 500GiB第二个分区 500GiB 到 900GiB目标盘只有 476GiB创建分区表时就会提示目标盘太小。再生龙提供的“-icds”选项可以跳过“目标硬盘是否小于源硬盘”的检查但跳过检查不等于分区表就合理后续创建分区、写入数据时仍可能失败。所以真正要解决的不是一个勾选项而是让目标盘上的分区布局和文件系统大小都落在 476GiB 这个物理边界内。1.2 目标盘小于源盘时常见的三种翻车场景第一种是整盘恢复模式直接报错提示“Target disk is smaller than source disk”这时候如果只勾选 -icds继续恢复可能会发现分区表创建失败或者恢复到最后几个分区时提示空间不足。第二种是恢复完成了但系统启动进入 emergency mode原因通常是 /etc/fstab 里还写着旧分区的 UUID或者根分区 UUID 变了系统找不到根文件系统。第三种是能启动但根分区没有占满目标盘比如源盘根分区 800GB目标盘根分区只创建了 500GB但文件系统仍然按 800GB 的元数据挂载出现“文件系统大小大于分区大小”的异常。这三种场景的根源都一样源盘的分区尺寸、文件系统尺寸、目标盘物理容量三者没有重新对齐。解决办法要么在源端先缩小分区和文件系统要么在目标端手动创建更小的分区再用再生龙的分区恢复模式写数据绕开整盘分区表的限制。1.3 为什么 Ubuntu 系统尤其容易遇到这个问题Ubuntu 默认安装时如果选择“使用整个磁盘”通常会创建 EFI 分区、/boot 分区、根分区有时还有 swap 分区如果启用了 LVM还会多出物理卷、卷组、逻辑卷几层结构。源盘 1TB 时根分区可能被自动扩到 900GB 以上实际已用空间可能只有 200GB。再生龙保存的是文件系统数据不是真实数据量恢复时它需要按分区大小准备空间。目标盘 512GB如果直接按源分区表创建 900GB 根分区必然失败。另外 Ubuntu 的 GRUB 引导、initramfs、fstab 都依赖分区 UUID迁移后 UUID 变化如果只做块级复制而不进 chroot 修复系统很难顺利启动。再加上 UEFI 和 BIOS 两种引导模式对分区表的要求不同UEFI 通常需要 GPT 和 EFI 系统分区BIOS 可以用 MBR 或 GPT迁移前如果没确认目标盘分区表类型恢复时也会出各种幺蛾子。2. 动手前先把账算清楚容量、分区表和文件系统边界2.1 已用空间不等于镜像大小也不等于目标盘可用空间再生龙备份出来的镜像通常经过压缩180GB 的已用数据压缩后可能只有 80GB但这不代表目标盘只需要 80GB。恢复时再生龙要把文件系统恢复到分区里分区本身要能容纳文件系统的全部元数据和数据。目标盘 512GB 标称容量实际可用大约 476GiB文件系统还要留出 5% 到 10% 的保留块给 rootext4 默认给 root 保留 5%如果你用 -m 0 可以取消但不建议在生产系统上取消。再加上分区对齐、EFI 分区、/boot 分区、swap 分区的开销真正能分配给根分区的可能只有 440GiB 到 450GiB。如果你源系统已用 400GB那就非常紧张最好先清理缓存、日志、旧内核、Docker 镜像、 snap 旧版本把已用空间降到 350GB 以下再迁移。一个稳妥的经验公式是源系统实际已用数据量 目标盘可用容量 × 0.8。比如目标盘可用 450GiB源系统已用最好不超过 360GiB这样系统还能有 20% 空闲空间避免 ext4 碎片化严重和性能下降。2.2 用三条命令摸清源盘底线在源系统上先别急着做再生龙备份先执行下面这几条命令把容量、文件系统、分区表、LVM 结构全部看清楚。第一条是查看块设备整体布局lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT,UUID这条命令能一眼看出哪个是物理盘、哪个是分区、哪个是 LVM 逻辑卷以及挂载点和 UUID。第二条是查看文件系统使用情况df -hT sudo du -xhd1 / | sort -hdf 看的是文件系统层面的已用和可用du 看的是目录实际占用。很多时候 df 显示已用 300GBdu 加起来只有 220GB差额可能是被删除但进程仍占用的文件重启或清理后能释放。第三条是查看 ext4 文件系统的最小可缩小尺寸sudo e2fsck -f /dev/sda2 sudo resize2fs -P /dev/sda2把 /dev/sda2 换成你的根分区或根逻辑卷。resize2fs -P 会输出文件系统最小块数通常以 4K 块为单位乘以 4 再除以 1024 就是 MiB。这个值告诉你根文件系统理论上最小能缩到多少。如果是 LVM还要看sudo pvs sudo vgs sudo lvs sudo vgcfgbackupvgcfgbackup 会把 LVM 元数据备份到 /etc/lvm/backup缩卷前做一次万一缩错了还有机会恢复元数据。2.3 目标盘容量标称值与实际可用值的换算买硬盘时看到的 512GB、1TB 是十进制标称值操作系统里看到的是二进制 GiB。512GB 实际约 476.9GiB1TB 实际约 931.3GiB。你还要减去分区表本身的开销GPT 分区表通常占用 1MiB 到 2MiB每个分区对齐到 1MiB 或 2048 扇区几百 MiB 的 EFI 分区、1GiB 左右的 /boot 分区、8GiB 到 16GiB 的 swap 分区这些都要从总容量里扣。如果你准备把 Ubuntu 迁到 256GB SSD实际可用约 238GiB扣掉 EFI 512MiB、/boot 1GiB、swap 8GiB根分区最多 228GiB再留 15% 空闲源系统已用数据最好控制在 190GiB 以内。很多老机器 256GB SSD 装完 Ubuntu 和常用软件后已用 120GB 到 180GB所以迁移是可行的但前提是必须先把源盘根分区缩小到目标盘能容纳的尺寸。这个计算过程看起来琐碎但能避免你折腾一晚上才发现根本装不下。提示目标盘如果是 NVMe 和 SATA 混用分区表类型尽量保持一致。UEFI 启动的 Ubuntu 源盘通常是 GPT目标盘也建议用 GPTBIOS 启动的源盘可能是 MBR目标盘如果强行用 GPT旧主板可能无法引导。3. 方案一源端瘦身把 Ubuntu 缩到目标盘能装下3.1 ext4 根分区缩小先文件系统后分区缩小 ext4 分区的铁律是“先缩文件系统再缩分区”顺序反了会直接损坏文件系统。你需要在 Ubuntu Live USB 环境下操作不要在当前运行的根分区上直接缩因为根分区正在被挂载读写resize2fs 会拒绝或导致数据损坏。制作一个 Ubuntu Live USB启动后选择“Try Ubuntu”打开终端安装 gparted 和 lvm2sudo apt update sudo apt install gparted lvm2假设源盘是 /dev/sda根分区是 /dev/sda2目标是把根分区缩到 220GiB。先检查文件系统sudo e2fsck -f /dev/sda2然后缩小文件系统到 220GiBsudo resize2fs /dev/sda2 220G注意resize2fs 缩小文件系统时目标尺寸必须大于文件系统最小尺寸并且要留一定余量。缩完文件系统后再用 GParted 图形界面缩小分区。打开 GParted选中 /dev/sda2右键选择“Resize/Move”把分区大小调整为 220GiB并且把分区起始位置保持不动这样分区结束位置会往前移释放出后面的空间。点击应用后GParted 会调整分区表。如果你不习惯图形界面也可以用 parted 或 fdisk但 parted 缩分区时不会自动调整文件系统风险更高新手还是用 GParted 更稳。3.2 LVM、swap 与 EFI 分区的处理顺序如果 Ubuntu 安装时启用了 LVM根分区通常是 /dev/mapper/ubuntu--vg-ubuntu--lv底层是 /dev/sda3 这样的物理卷分区。缩小顺序是先缩逻辑卷文件系统再缩逻辑卷再缩物理卷最后缩分区。假设卷组叫 ubuntu-vg逻辑卷叫 ubuntu-lv先查看sudo lvs sudo vgs sudo pvs然后缩小逻辑卷和其中的文件系统sudo lvreduce --resizefs -L 220G /dev/ubuntu-vg/ubuntu-lv--resizefs 会先缩文件系统再缩逻辑卷比较省心。缩完逻辑卷后物理卷可能还有大量空闲空间需要把物理卷缩小到实际使用大小sudo pvresize --setphysicalvolumesize 225G /dev/sda3注意 pvresize 的尺寸要略大于逻辑卷实际占用否则会报错。最后用 GParted 把 /dev/sda3 分区缩小到 225GiB。swap 分区如果不需要可以在 /etc/fstab 里注释掉然后删除 swap 分区改用 swapfile。EFI 分区通常只有 100MiB 到 512MiB不建议缩得太小Ubuntu 的 EFI 分区建议保留至少 300MiB如果目标盘实在紧张可以保留 260MiB但不要再小否则未来内核更新可能写不进去。如果源盘有独立的 /boot 分区通常 1GiB 到 2GiB保留 1GiB 即可。所有分区缩完后源盘尾部会多出未分配空间这时候再用再生龙重新备份备份出来的分区表就不会超出目标盘容量了。3.3 收尾修复fstab、GRUB 和 initramfs源端瘦身完成后不要急着拔盘启动先检查 /etc/fstab 和引导配置。如果你删除了 swap 分区要把 /etc/fstab 里对应的 UUID 行注释掉或者改成 swapfile 的挂载项。如果根分区 UUID 没变通常不需要改。但如果你在 GParted 里调整了分区UUID 一般不会变只有重新格式化才会变。确认 UUIDsudo blkid cat /etc/fstab如果 UUID 有变化更新 /etc/fstab。然后重新生成 initramfs确保新分区布局被正确识别sudo update-initramfs -u sudo update-grub如果是 BIOS 启动可以重装 GRUB 到磁盘sudo grub-install /dev/sda如果是 UEFI 启动确保 EFI 分区挂载在 /boot/efi然后执行sudo grub-install --targetx86_64-efi --efi-directory/boot/efi --bootloader-idubuntu这些操作需要在 chroot 环境下进行如果你是在 Live USB 里缩分区要先挂载源系统根分区和必要目录再 chroot 进去执行。步骤稍微繁琐但能避免迁移后开机失败。缩分区本身就是高风险操作建议先做一次完整的再生龙备份再动手缩小。如果缩分区过程中断电源盘可能直接损坏所以笔记本要插电源台式机最好接 UPS。4. 方案二再生龙专家模式恢复跳过磁盘大小检查4.1 -icds、-k0、-k1、-r 到底怎么选再生龙的专家模式里有一堆参数很多人看到就晕。和硬盘大小限制最相关的是这几个-icds 表示跳过检查目标硬盘大小是否大于源硬盘-k0 表示不创建分区表沿用目标盘现有分区表-k1 表示使用源盘分区表创建目标盘分区-k2 表示用 dd 复制分区表-r 表示恢复后调整文件系统大小以填满分区。目标盘小于源盘时最危险的组合是“-icds -k1”因为虽然跳过了检查但源分区表仍然可能超出目标盘容量创建分区时就会失败。比较稳的思路是“手动在目标盘创建好较小的分区表然后用 -k0 恢复到现有分区”或者先用方案一把源盘缩到小于目标盘再用“-k1 -r”恢复到目标盘。如果目标盘和源盘容量相同或更大-k1 -r 是最省事的恢复后分区会自动扩展填满磁盘。如果目标盘更小千万别指望 -icds 单独解决问题它只是跳过检查不负责重新规划分区。4.2 手动在目标盘建分区再恢复分区这条路线适合不想动源盘或者源盘数据太重要不敢缩的情况。先把目标盘接到机器上用 Ubuntu Live USB 启动打开 GParted给目标盘创建 GPT 分区表然后按目标盘容量手动创建 EFI 分区、/boot 分区、根分区、swap 分区。比如目标盘 476GiB可以这样规划EFI 512MiB/boot 1GiBswap 8GiB根分区剩余全部约 466GiB。如果你源系统根分区已用 200GiB466GiB 完全够用。创建完分区后不要格式化根分区保持空白即可因为再生龙恢复分区时会写入文件系统。如果你手动格式化了也没关系恢复时再生龙会覆盖。然后启动再生龙选择 device-image 模式找到之前保存的镜像选择 restoreparts 恢复分区模式在专家模式里勾选 -k0不创建分区表把源系统的根分区恢复到目标盘的根分区EFI 分区恢复到目标盘 EFI/boot 恢复到目标盘 /boot。注意分区的对应关系要选对源盘 /dev/sda2 对应目标盘 /dev/sdb2 这种别选反了。恢复完成后目标盘的分区表是你手动创建的小分区表不会受源盘大分区表影响。这个方案的关键是手动分区时目标分区容量必须大于源分区已用数据量否则恢复到最后会提示 no space left on device。4.3 整盘恢复失败后的分区恢复路线如果你已经尝试过整盘恢复并失败目标盘可能被写入了残缺的分区表。这时候先别慌重新用 Live USB 启动打开 GParted删除目标盘所有分区重新创建 GPT 或 MBR 分区表然后按上一节的方法手动创建小分区。如果再生龙镜像里保存的是整盘信息你也可以只恢复分区不恢复整盘。在再生龙恢复菜单里选择“restoreparts”而不是“restoredisk”然后逐个选择要恢复的分区。恢复根分区时如果源根分区是 LVM 逻辑卷再生龙可能把它保存为 lvm 相关的镜像恢复时目标盘也要有对应的 LVM 结构或者你选择恢复到普通分区但这样需要额外修复 LVM 配置。更简单的做法是在目标盘上先创建和源盘一致的 LVM 结构再恢复逻辑卷。比如目标盘 /dev/sdb3 创建为物理卷加入卷组 ubuntu-vg创建逻辑卷 ubuntu-lv然后再生龙恢复到该逻辑卷。恢复完成后目标盘的分区表是你自己建的逻辑卷大小也是你控制的不会超出目标盘。整盘恢复失败后走分区恢复路线虽然步骤多但可控性最强尤其适合源盘和目标盘容量差异较大的场景。5. 方案三绕开块级克隆用文件级迁移更省心5.1 rsync 迁移 Ubuntu 的完整命令与排除项如果你不想缩源盘也不想和再生龙的分区表较劲文件级迁移是最灵活的方案。它的思路是把源系统文件复制到目标盘的新文件系统里然后重建引导。目标盘可以比源盘小很多只要文件总量装得下。先用 Live USB 启动给目标盘分区格式化EFI 分区 FAT32根分区 ext4/boot 分区 ext4swap 分区 swap。然后挂载目标盘根分区到 /mnt/newroot挂载 EFI 到 /mnt/newroot/boot/efi挂载 /boot 到 /mnt/newroot/boot。挂载源系统根分区到 /mnt/source如果源系统有独立 /boot 和 EFI也挂载上。然后执行 rsyncsudo rsync -aAXHv --delete \ --exclude{/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lostfound} \ /mnt/source/ /mnt/newroot/-a 表示归档模式保留权限、时间戳、符号链接-A 保留 ACL-X 保留扩展属性-H 保留硬链接-v 显示进度。排除项里 /dev、/proc、/sys、/tmp、/run 是运行时目录不需要复制/mnt、/media 挂载点也不需要。复制完成后还要处理 /etc/fstab把里面的 UUID 改成目标盘新分区的 UUID。用 blkid 查看新分区 UUID然后编辑 /mnt/newroot/etc/fstab。接着 chroot 进去重建引导sudo mount --bind /dev /mnt/newroot/dev sudo mount --bind /proc /mnt/newroot/proc sudo mount --bind /sys /mnt/newroot/sys sudo chroot /mnt/newroot在 chroot 环境里执行blkid nano /etc/fstab update-initramfs -u grub-install /dev/sdb update-grub exit如果是 UEFIgrub-install 命令换成grub-install --targetx86_64-efi --efi-directory/boot/efi --bootloader-idubuntu文件级迁移的好处是目标盘分区可以任意小只要装得下文件。缺点是会丢失一些块设备相关的元数据比如 LVM 配置、磁盘 UUID、部分内核模块参数但大多数普通 Ubuntu 系统都能这样迁移成功。迁移前最好把源系统里不用的东西清理掉比如 /var/cache/apt/archives、旧内核、Docker 镜像、 snap 缓存、日志文件能省出几十 GB。5.2 tar 打包迁移和引导重建tar 是另一种文件级迁移方式适合把整个系统打包成一个压缩包再解压到目标盘。命令如下sudo tar -cpf /mnt/backup/ubuntu-root.tar \ --exclude/proc --exclude/sys --exclude/dev \ --exclude/run --exclude/tmp --exclude/mnt \ --exclude/media --exclude/lostfound /这里假设你已经把源系统根分区挂载到了 /并且 /mnt/backup 是外接备份盘。打包完成后在目标盘上格式化并挂载根分区到 /mnt/newroot然后解压sudo tar -xpf /mnt/backup/ubuntu-root.tar -C /mnt/newroot解压后同样要更新 /etc/fstab、重建 initramfs、安装 GRUB。tar 迁移和 rsync 迁移本质一样都是复制文件区别是 tar 会保留更多归档属性但速度可能慢一些尤其是大量小文件。如果源系统有 SELinux 或 AppArmor 策略tar 解压后可能需要重新标记Ubuntu 默认 AppArmor 通常问题不大。文件级迁移还有一个隐藏好处它不关心源盘是 MBR 还是 GPT也不关心源盘分区有多大你只要在目标盘上创建合理的分区表然后复制文件即可。对于“再生龙移植 Ubuntu 硬盘大小限制”这个场景文件级迁移往往是最终兜底方案成功率很高。5.3 临时大盘中转先恢复再缩小如果你既想用再生龙又不想在源盘上冒险缩分区可以找一块容量大于等于源盘的大硬盘做中转。比如源盘 1TB目标盘 512GB先找一块 1TB 或 2TB 的临时硬盘用再生龙把源盘整盘恢复到临时盘上这一步不会遇到大小限制。然后从临时盘启动 Ubuntu或者用 Live USB 挂载临时盘用 GParted 把临时盘上的根分区缩小到 400GB 以内删除多余的 swap 或调整分区布局。缩完后再用再生龙把临时盘备份成新镜像这时候新镜像的分区表已经变小了恢复到 512GB 目标盘时就不会再触发硬盘大小限制。这个方案适合手头有临时大硬盘或虚拟机存储的场景也适合在 VMware 虚拟机安装 Ubuntu 后做系统迁移先在虚拟机里把虚拟磁盘扩容恢复到虚拟磁盘缩小再克隆到物理小盘。中转方案的缺点是耗时需要两次备份两次恢复但数据安全性最高因为源盘全程只读没有缩分区风险。如果你用的是服务器或工作站还可以把临时盘挂到另一台机器上操作减少对生产环境的干扰。6. 常见问题排查速查表与实操避坑心得6.1 报错信息与对应处理报错或现象可能原因处理思路Target disk is smaller than source disk目标盘物理容量小于源盘先缩小源分区或用手动分区 -k0 恢复分区Failed to create partition table源分区表超出目标盘容量不要用 -k1改为手动建 GPT/MBR 小分区再用 -k0No space left on device源分区实际数据超过目标分区清理源系统数据或缩小源文件系统或更换更大目标盘GRUB rescue引导程序找不到根分区chroot 后 grub-install update-grub检查 fstab UUIDWelcome to emergency mode/etc/fstab UUID 错误或根分区挂载失败用 blkid 查新 UUID更新 fstab重启LVM 卷不显示卷组未激活或元数据未恢复执行 vgchange -ay检查 pvs/vgs/lvsEFI 启动项丢失NVRAM 中没有新盘启动项UEFI 下用 efibootmgr 添加或 grub-install 重建根分区没有占满目标盘恢复后未调整文件系统用 growpart 扩分区resize2fs 扩文件系统双系统 Windows 引导丢失GRUB 未探测到 Windows进入 Ubuntu 后 update-grub确保 os-prober 已安装系统能启动但 swap 未挂载swap 分区被删除或 UUID 变化注释旧 swap创建 swapfile 并写入 fstab表格里的问题我几乎都遇到过尤其是 emergency mode 和 GRUB rescue。最容易被忽略的是 fstab UUID再生龙恢复后如果目标盘分区重新创建UUID 大概率会变但 /etc/fstab 还是旧的系统启动时找不到根分区就会掉进 emergency mode。解决办法很简单用 Live USB 启动挂载目标盘根分区编辑 /etc/fstab把 UUID 换成 blkid 输出的新值。另一个高频问题是根分区没有扩展恢复后根分区只用了 220GiB目标盘其实有 466GiB剩余空间白白浪费。这时候用 growpart 扩展分区再 resize2fs 扩展文件系统sudo growpart /dev/sdb 2 sudo resize2fs /dev/sdb2如果是 LVM先扩展逻辑卷和文件系统sudo lvextend -l 100%FREE --resizefs /dev/ubuntu-vg/ubuntu-lv注意顺序普通分区是先扩分区再扩文件系统LVM 是先扩逻辑卷再扩文件系统lvextend --resizefs 会自动处理。6.2 我踩过的坑和独家建议第一个坑是“边运行系统边缩根分区”。我第一次尝试缩根分区时直接在运行中的 Ubuntu 里执行 resize2fs结果提示文件系统忙强行用 -f 参数后文件系统直接损坏。后来才知道必须用 Live USB 启动在未挂载根分区的情况下操作。第二个坑是“只缩文件系统不缩分区”。resize2fs 把文件系统缩到 220G但分区还是 900G再生龙备份时仍然按 900G 分区表保存恢复到小盘照样失败。必须用 GParted 把分区也缩到 220G 左右让分区表尺寸和文件系统尺寸匹配。第三个坑是“忽略 LVM 的 pvresize”。缩了逻辑卷但物理卷还占着整块盘分区表还是大的。必须依次缩逻辑卷、缩物理卷、缩分区三层都缩完才行。第四个坑是“目标盘分区表类型选错”。源盘是 UEFI/GPT目标盘用 MBR恢复后 UEFI 固件找不到 EFI 分区系统无法启动。迁移前先确认源盘是 UEFI 还是 BIOS用[ -d /sys/firmware/efi ] echo UEFI || echo BIOS查看目标盘分区表保持一致。第五个坑是“忘了更新 initramfs”。迁移后内核模块和分区 UUID 变化如果不执行 update-initramfs -u启动时可能找不到根文件系统。第六个坑是“在双系统 Windows 快速启动开启时操作”。Windows 的快速启动和休眠会让 NTFS 分区处于脏状态GParted 无法安全调整甚至可能损坏 Windows。迁移前先在 Windows 里关闭快速启动和休眠。第七个坑是“没有留足空闲空间”。目标盘根分区装到 95% 以上ext4 性能急剧下降日志写入也容易失败。建议根分区使用率控制在 80% 以内。第八个坑是“再生龙镜像保存到源盘本身”。如果源盘快满了镜像没地方放备份到一半失败。用外接 USB 硬盘或网络共享存放镜像确认空间足够。第九个坑是“恢复后直接拔 U 盘重启”。有些主板会把 U 盘启动项排在硬盘前面重启又进了安装环境。恢复完成后先拔掉 U 盘再重启。第十个坑是“没有验证备份”。再生龙备份完成后最好用“检查镜像”功能验证一次或者恢复到虚拟机里启动测试。备份文件损坏但迟迟没发现等源盘坏了再恢复就来不及了。注意再生龙整盘恢复适合同容量或更大容量的目标盘跨容量尤其是目标盘更小时优先考虑源端瘦身或文件级迁移。不要为了省事只勾选 -icds它不解决分区表超界的问题。如果你经常做 Ubuntu 系统迁移我建议把流程固定下来先核算容量再备份源盘然后在 Live USB 里缩分区或做文件级复制最后重建引导并验证。对于 VMware 虚拟机安装 Ubuntu 的场景可以先把虚拟机磁盘扩容到大于源盘恢复后再缩虚拟磁盘或者直接在虚拟机里用 rsync 迁移到新虚拟磁盘。对于物理机准备一个 Ubuntu Live USB 和一个再生龙 U 盘基本能覆盖所有迁移需求。再生龙在批量部署和同容量克隆时非常高效但跨容量迁移时文件级方案更灵活也更不容易被分区表卡住。最后再分享一个我常用的小技巧在正式动目标盘之前先用一块移动硬盘做一次“缩小后恢复”演练把启动、登录、网络、休眠都跑一遍再往正式盘上写。这样即使翻车代价也只是重来一次演练而不是把唯一的生产系统弄丢。