双系统磁盘分区迁移后GRUB引导可行性咨询
双系统磁盘分区迁移后GRUB引导可行性咨询
Hey there! 你的需求完全可以实现,但光靠简单迁移分区还不够,必须额外处理引导配置和系统磁盘标识的问题,不然迁移后大概率会出现无法启动的情况。下面给你梳理清楚具体步骤和注意事项:
迁移前的必做准备
- 备份所有重要数据!不管操作多熟练,外接硬盘拷一份关键文件是底线,避免迁移过程中出意外丢数据。
- 准备一个Ubuntu(或其他Linux发行版)的Live启动盘,用来在离线环境下操作——毕竟不能在正在运行的系统里修改自身的分区。
分区迁移步骤(用Live系统操作)
推荐用GParted工具(Live系统里一般自带,没有的话可以临时安装),可视化操作更直观:
- 迁移Windows到SATA SSD:
- 先在SATA SSD上腾出足够的空闲空间(至少比当前Windows占用的200GB大10-20GB,留些冗余)。
- 选中NVMe上的Windows主分区(如果有恢复分区也一起选中),右键选择「复制」,然后在SATA的空闲空间右键选择「粘贴」。
- 粘贴完成后,GParted会自动给新分区生成新的UUID(这个很重要,系统靠UUID识别分区)。
- 迁移Ubuntu到NVMe SSD:
- 同理,在NVMe SSD上腾出空闲空间(你的NVMe有800GB剩余,完全够放500GB的Ubuntu分区)。
- 复制SATA上的Ubuntu根分区(如果有单独的/home分区也要一起复制)到NVMe的空闲空间,粘贴后同样会生成新UUID。
关键的引导修复环节(这步不能省!)
迁移完成后,两个系统的引导信息都还指向旧分区,必须手动修复:
1. 修复Windows引导
- 准备一个Windows安装盘/PE启动盘,启动后进入「修复你的电脑」→「疑难解答」→「命令提示符」。
- 依次执行以下命令:
执行完成后,Windows就能识别新的SATA分区并更新引导项。bootrec /scanos # 扫描所有可引导的Windows系统 bootrec /fixboot # 修复引导分区 bootrec /rebuildbcd # 重建引导配置文件
2. 修复GRUB引导
回到Ubuntu Live系统,重新安装并配置GRUB:
- 先挂载新的Ubuntu根分区(假设NVMe上的新分区是
/dev/nvme0n1p3,根据实际情况替换):sudo mount /dev/nvme0n1p3 /mnt - 挂载EFI系统分区(假设EFI分区在
/dev/nvme0n1p1,如果原来EFI在SATA盘就替换成对应路径):sudo mount /dev/nvme0n1p1 /mnt/boot/efi - 重新安装GRUB到NVMe磁盘(注意是磁盘而非分区,比如
/dev/nvme0n1):sudo grub-install --boot-directory=/mnt/boot --efi-directory=/mnt/boot/efi /dev/nvme0n1 - 更新GRUB引导菜单,让它扫描到新位置的Ubuntu和Windows:
sudo update-grub
3. 更新Ubuntu的fstab文件
Ubuntu启动时靠fstab里的UUID找根分区,所以必须更新:
- 编辑新根分区下的fstab文件:
sudo nano /mnt/etc/fstab - 用
blkid命令查看新Ubuntu分区的UUID(比如blkid /dev/nvme0n1p3),把文件中原先的根分区UUID替换成新的,保存退出。
最后验证
- 重启电脑,进入BIOS确认启动顺序(确保GRUB对应的EFI项排在首位)。
- 测试两个系统都能正常启动后,再删除原来的旧分区(别着急删,留着当备份直到确认没问题)。
备注:内容来源于stack exchange,提问作者SnoAke
相关产品推荐
相关产品推荐

