告别双系统挤牙膏!手把手教你无损迁移Ubuntu到新NVMe固态(附DD命令进度监控)

张开发
2026/5/30 18:06:51 15 分钟阅读
告别双系统挤牙膏!手把手教你无损迁移Ubuntu到新NVMe固态(附DD命令进度监控)
告别双系统挤牙膏手把手教你无损迁移Ubuntu到新NVMe固态附DD命令进度监控每次打开电脑都要在Windows和Ubuntu之间反复切换128GB的系统分区早已捉襟见肘看着新买的2TB NVMe固态却不知如何物尽其用本文将带你用最安全的方式实现Ubuntu系统的完美迁移彻底告别双系统共存的存储焦虑。1. 迁移前的黄金准备阶段在按下那个危险的dd命令前有几个关键步骤决定了整个迁移过程的成败。首先需要准备一个容量至少8GB的U盘建议选择USB 3.0及以上接口的高速U盘。前往Ubuntu官网下载与当前系统版本一致的ISO镜像文件——这一点非常重要不同版本间的引导修复工具可能存在兼容性问题。制作启动盘时推荐使用Ventoy这款开源工具它允许你将多个ISO文件放在同一个U盘中随时切换使用。相比传统的Rufus或EtcherVentoy不会格式化整个U盘还能保留U盘原有数据。安装方法如下# 下载最新版Ventoy wget https://github.com/ventoy/Ventoy/releases/download/v1.0.88/ventoy-1.0.88-linux.tar.gz # 解压并安装 tar -zxvf ventoy-1.0.88-linux.tar.gz cd ventoy-1.0.88 sudo ./Ventoy2Disk.sh -i /dev/sdX # 将sdX替换为你的U盘设备名提示执行上述命令前务必确认设备名错误的设备名可能导致数据丢失。可以通过lsblk命令查看所有存储设备。进入BIOS设置时现代主板通常需要同时关闭Secure Boot和Fast Boot选项。特别是使用NVIDIA显卡的用户还需要在Graphics Configuration中将Primary Display设置为PCIe而非Auto避免试用模式下出现黑屏问题。2. 磁盘分区新旧硬盘的精准映射在试用Ubuntu环境中打开GParted工具前需要先安装必要的依赖sudo apt update sudo apt install -y gparted ntfs-3g对于NVMe固态硬盘设备命名规则为/dev/nvme0n1、/dev/nvme1n1等其中nvme0表示第一个NVMe控制器n1表示该控制器下的第一个命名空间p1、p2等后缀表示分区编号建议为新硬盘创建如下分区结构分区类型大小文件系统挂载点备注nvme0n1p1主分区512MBFAT32/boot/efiESP分区nvme0n1p2主分区32GBswap无交换空间nvme0n1p3主分区剩余空间ext4/根分区在GParted中创建分区时务必为EFI分区设置boot和esp标志。对于已有Windows系统的电脑可以共享原有的EFI分区但更推荐为Ubuntu创建独立的EFI分区以避免引导冲突。3. 核心迁移DD命令的进阶用法dd命令虽简单粗暴但配合以下参数可以显著提升迁移效率和安全性sudo dd if/dev/nvme1n1p3 of/dev/nvme0n1p3 bs128K statusprogress convnoerror,sync参数解析bs128K设置块大小为128KB在NVMe固态上可获得最佳性能statusprogress实时显示传输进度和速度convnoerror,sync遇到错误时继续操作并用NULL填充坏块如果源分区有200GB数据但目标分区有500GB空间迁移后需要扩展文件系统sudo resize2fs /dev/nvme0n1p3对于需要精确控制进度的场景可以结合pv命令实现更丰富的进度显示sudo apt install -y pv sudo pv -tpreb /dev/nvme1n1p3 | sudo dd of/dev/nvme0n1p3 bs128K这将显示已用时间(-t)进度百分比(-p)传输速率(-r)预计剩余时间(-e)4. 引导修复与系统调优安装boot-repair工具时如果遇到PPA源不可用的情况可以直接下载deb包安装wget https://sourceforge.net/projects/boot-repair-cd/files/boot-repair_4ppa130.deb sudo dpkg -i boot-repair_4ppa130.deb sudo apt --fix-broken install运行boot-repair时在高级选项中需要特别注意勾选Separate /boot/efi partition指定正确的EFI分区位置如/dev/nvme0n1p1取消勾选Secure Boot相关选项修复完成后检查/etc/fstab文件时需要确认以下三项根分区的UUID是否更新EFI分区是否使用正确的挂载点/boot/efiswap分区UUID是否匹配如果配置了swap对于使用LUKS加密的根分区迁移后需要额外处理sudo cryptsetup luksOpen /dev/nvme0n1p3 cryptroot sudo mount /dev/mapper/cryptroot /mnt # 重新生成initramfs sudo chroot /mnt update-initramfs -u -k all5. 终极验证与性能优化迁移完成后通过以下命令验证系统是否真的从新硬盘启动lsblk -o NAME,MOUNTPOINT,FSTYPE,UUID | grep -v loop df -h | grep -v tmpfs如果一切正常可以通过TRIM优化NVMe固态的性能sudo systemctl enable fstrim.timer sudo systemctl start fstrim.timer最后在BIOS中调整启动顺序将新硬盘设为第一启动项。如果发现启动速度变慢可能需要更新主板固件或调整GRUB超时设置sudo sed -i s/GRUB_TIMEOUT.*/GRUB_TIMEOUT1/ /etc/default/grub sudo update-grub整个迁移过程中最耗时的就是数据复制阶段。在我的测试中通过USB 3.0接口迁移200GB数据大约需要2小时而直接通过主板上的NVMe接口对拷仅需30分钟。如果条件允许建议使用支持NVMe的硬盘坞进行迁移操作。

更多文章