我有一个双启动系统,进入 Grub,可以在一个 SSD 上选择 Windows 10 和 Ubuntu。自 11 月更新 W10 以来一切都很好。启动是 UEFI,当我打开笔记本电脑时,它无法进入 grub 并直接进入 Windows。
我在 Ubuntu 中有一个 /boot 分区。我在 Ubuntu 中有一些重要文档,我需要分步指南。
如果我进入 BIOS 并将 UEFI 更改为传统模式,它会卡在等待可启动磁盘的状态。如果我再次更改为 UEFI 模式,它会启动 Windows 10。
任何帮助都将不胜感激。
答案1
1. 从活动磁盘/USB 启动
2.将 ubuntu 根分区挂载到 /mnt. 通过以下任一方式查找 ubuntu 根分区
lsblk
或者
sudo fdisk -l
(假设其为 sda5)
sudo mount /dev/sda5 /mnt
3.绑定挂载其他必要分区
for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
4. Chroot 进入 /mnt
sudo chroot /mnt
5. 安装 grub
grub-install /dev/sda
6.更新Grub
sudo update-grub
7. 退出
ctrl + D
8. 重启
答案2
经过多次尝试,我找到了一个解决方案,希望它能帮助其他人...与建议的重复帖子类似,但有点不同,因为我有一个 EFI 分区:
对我有用的是:
0)如果没有安装(我有64位系统):
sudo apt-get 安装 grub-efi-amd64
(这解决了诸如权限被拒绝错误 /usr/lib/grub/i386-pc/modinfo.sh 不存在之类的问题。请指定 --target 或 --directory)。
1)安装gksudo:
sudo apt-get 安装 gksu
2)它对我来说不起作用,但你尝试一下也不会失去任何东西:
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get 更新
sudo apt-get 安装启动修复
执行启动修复并使用推荐的修复。
如果不起作用:
观察:(如果 live cd 安装了任何这些分区,请先卸载它们,然后再在这些文件夹中再次安装):
4)因为我的 / 分区是 /dev/sda8
sudo mount /dev/sda8 /mnt
5)仅当您具有单独的启动分区(我的情况是 /dev/sda6)时才执行此步骤:
sudo mount /dev/sda6 /mnt/boot
只有当您在另一个分区中有 EFI 时:挂载 EFI 分区。这解决了诸如似乎没有 efi 分区之类的错误
sudo mount /dev/sda2 /mnt/boot/EFI
6)挂载关键虚拟文件系统:
sudo mount --bind /dev /mnt/dev sudo mount --bind /dev/pts /mnt/dev/pts sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys
7)Chroot 到你的正常系统设备:sudo chroot /mnt
8)如果没有 /boot/grub/grub.cfg 或者不正确,请使用以下命令创建一个
更新 grub
9)重新安装 GRUB 2:
替换正确的设备 - sda、sdb 等。不要指定分区号。在我的情况下是 /dev/sda
grub-安装/dev/sdX
10)验证安装(使用正确的设备,例如 sda。不要指定分区):在我的情况下是 /dev/sda
grub-install --recheck /dev/sdX
11)退出 chroot:键盘退出时按 CTRL-D
重启
可选:安装 grub-customizer 以更改条目的名称和位置