Nic*_*gen 104 boot grub2 dual-boot boot-repair windows-10
我刚刚在安装了 Ubuntu 14.04 的分区笔记本电脑上从 Windows 8.1 升级到 Windows 10。Grub 不再出现在启动时,所以我从 Ubuntu liveUSB 运行启动修复。这似乎没有任何影响。我已经检查过,安全启动仍然被禁用。
从引导修复登录:http
: //paste.ubuntu.com/11972534/
那么接下来是什么?
更新:我尝试使用 chroot 从我的 Ubuntu 分区更新 grub。update-grub 运行成功找到了 linux 和 windows 启动管理器,但该过程仍然没有任何影响。grub-install 抱怨它找不到 EFI 目录(但我已经正确安装了所有内容)。
更新 2:刚刚发现在 chroot 进入 ubuntu 之后运行 efibootmgr 显示 ubuntu 根本不在引导顺序中。我手动更改了顺序并重新启动以发现引导顺序已重置。我在 Windows 中运行:bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi
但是即使在报告“操作成功”之后,这也没有任何影响。
Nic*_*gen 149
我只需要以管理员身份在 Windows 中运行它:
bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi
Run Code Online (Sandbox Code Playgroud)
或者,如果您使用的是 PowerShell:
bcdedit /set "{bootmgr}" path \EFI\ubuntu\grubx64.efi
Run Code Online (Sandbox Code Playgroud)
GRUB 在启动时看起来很好,我可以很好地启动到 Ubuntu 和 Windows 10。
正如评论中所指出的(David Faure),此命令的最后一个参数取决于您的特定系统配置。您可以使用此命令来确定系统的正确路径:
bcdedit /enum firmware
Run Code Online (Sandbox Code Playgroud)
这将列出所有已安装的引导管理器和关联的 EFI 路径,grub 应该在列表中的某个位置。
小智 23
唯一对我有用的解决方案在那个链接上有描述, 我把它再次带到这里只是因为在谷歌上更容易找到这个线程。
基本上步骤是:
/dev/sda2
)。挂载linux分区:
sudo mount /dev/sda2 /mnt #Replace sda2 with your partition number
Run Code Online (Sandbox Code Playgroud)挂载所有其他 linux 系统文件夹:
for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
Run Code Online (Sandbox Code Playgroud)
如果您运行的是 UEFI 系统,则还必须使用以下命令挂载 EFI 目录:
sudo mount /dev/sda1 /mnt/boot/efi
Run Code Online (Sandbox Code Playgroud)chroot 进入你的安装
sudo chroot /mnt
Run Code Online (Sandbox Code Playgroud)现在您已登录您的安装(不是 Ubuntu Live),只需执行
update-grub
grub-install /dev/sda
update-grub
exit
sudo reboot
Run Code Online (Sandbox Code Playgroud)就是这样!积分在我上面提到的链接上做 Scott Severance。
归档时间: |
|
查看次数: |
315226 次 |
最近记录: |