如何将GRUB引导程序迁移至Ubuntu系统所在的磁盘?
嘿,这个情况我之前帮朋友处理过好几次,其实迁移GRUB的步骤挺清晰的,操作前记得备份好重要数据以防万一,跟着下面的步骤来就行:
1. 准备Ubuntu可启动介质
- 找个至少4GB的空U盘,下载Ubuntu 17.10的镜像文件
- 用工具(比如Rufus)把镜像写入U盘,做成可启动安装盘
2. 进入Ubuntu Live试用模式
- 把U盘插电脑,重启后按对应按键(一般是F2/F10/Del,不同品牌主板略有差异)进入BIOS/UEFI设置,把U盘设为第一启动项
- 从U盘启动后,选择「Try Ubuntu without installing」,进入试用系统
3. 确认Ubuntu所在的磁盘
- 打开终端(快捷键Ctrl+Alt+T),输入命令
lsblk或者sudo fdisk -l - 查看输出里的磁盘信息:区分Windows和Ubuntu所在的磁盘(比如Windows磁盘可能是
/dev/sda,Ubuntu的是/dev/sdb),注意磁盘名是不带数字的(带数字的是分区,比如/dev/sdb1) - 记下来Ubuntu所在的磁盘名(比如
/dev/sdb)和它的根分区(可通过容量或挂载标识判断)
4. 挂载Ubuntu的分区
- 先挂载根分区到
/mnt:sudo mount /dev/sdb1 /mnt # 替换成你的Ubuntu根分区实际路径 - 如果你的Ubuntu有单独的
/boot分区,也要挂载:sudo mount /dev/sdb2 /mnt/boot # 替换成你的boot分区实际路径 - 如果是UEFI启动模式,还需要挂载EFI分区(一般是FAT32格式,大小几百MB):
sudo mount /dev/sdb3 /mnt/boot/efi # 替换成你的EFI分区实际路径
5. 重新安装GRUB到目标磁盘
若为BIOS启动模式:
sudo grub-install --root-directory=/mnt /dev/sdb # 这里的/dev/sdb是Ubuntu所在的磁盘,不是分区!
若为UEFI启动模式:
确保已经挂载EFI分区后,执行:
sudo grub-install --efi-directory=/mnt/boot/efi --bootloader-id=ubuntu /dev/sdb
6. 更新GRUB配置(可选但推荐)
- 进入Ubuntu系统的chroot环境:
sudo chroot /mnt - 更新GRUB,让它能识别Windows系统:
update-grub - 输入
exit退出chroot环境
7. 重启并设置启动顺序
- 拔掉U盘,重启电脑,再次进入BIOS/UEFI设置
- 把Ubuntu所在的磁盘设为第一启动项,保存设置后重启
完成以上操作后,GRUB就成功迁移到Ubuntu所在的磁盘上了,启动时会正常显示双系统选择菜单。
内容的提问来源于stack exchange,提问作者fenasi




