Abh*_*hay 12 grub2 dual-boot uefi
我最近在 HP 笔记本电脑上安装了双启动 Ubuntu 和 Windows 10。最初我无法使用 grub 启动 Windows,因为选择 Windows 选项只会循环回 grub。
然后我执行了引导修复,所有这些额外的选项都显示在 grub 菜单中。
我可以使用“Windows UEFI bootmgfw.efi”选项打开 Windows,但不能使用“Windows 启动管理器(在 /dev/sda1 上)”的标准选项。
如何减少这些条目,为什么我不能使用后一个选项启动 Windows?
这是 grub 的图像。第一个选项是 Ubuntu:
Win*_*nix 13
每次我运行boot-repair它时,它都会向我的主菜单添加5 个额外的 Windows 启动选项,但grub这些选项不起作用。在您的情况下,它添加了11 个额外条目!
grub.cfg 显示问题秘密可以在/etc/grub/grub.cfg文件中找到:
### BEGIN /etc/grub.d/25_custom ###
menuentry "Windows UEFI bootmgfw.efi" {
search --fs-uuid --no-floppy --set=root D656-F2A8
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}
menuentry "Windows Boot UEFI loader" {
search --fs-uuid --no-floppy --set=root D656-F2A8
chainloader (${root})/EFI/Boot/bkpbootx64.efi
}
menuentry "EFI/ubuntu/fwupx64.efi" {
search --fs-uuid --no-floppy --set=root D656-F2A8
chainloader (${root})/EFI/ubuntu/fwupx64.efi
}
menuentry "Windows UEFI bootmgfw.efi sda1" {
search --fs-uuid --no-floppy --set=root 9478-B6E2
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}
menuentry "Windows Boot UEFI loader sda1" {
search --fs-uuid --no-floppy --set=root 9478-B6E2
chainloader (${root})/EFI/Boot/bkpbootx64.efi
### END /etc/grub.d/25_custom ###
### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows Boot Manager (on /dev/nvme0n1p2)' --class windows --class os $menuentry_id_option 'osprober-efi-D656-F2A8' {
savedefault
insmod part_gpt
insmod fat
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root D656-F2A8
else
search --no-floppy --fs-uuid --set=root D656-F2A8
fi
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
menuentry 'Windows Boot Manager (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-efi-9478-B6E2' {
savedefault
insmod part_gpt
insmod fat
set root='hd0,gpt1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 9478-B6E2
else
search --no-floppy --fs-uuid --set=root 9478-B6E2
fi
chainloader /efi/Microsoft/Boot/bootmgfw.efi
}
### END /etc/grub.d/30_os-prober ###
Run Code Online (Sandbox Code Playgroud)
该部分30_os-prober包含grub您想要保留的“好”Windows菜单条目。部分25_custom包含由boot-repair. 您无法编辑 grub 配置文件,因为它会在下次update-grub运行时被覆盖。
25_custom是由引导修复创建的在我的系统上:
$ locate 25_custom
/boot/efi/boot-repair/log/20171111_224241/nvme0n1p5/25_custom
/boot/efi/boot-repair/log/20171208_030854/nvme0n1p5/25_custom
/etc/grub.d/25_custom
Run Code Online (Sandbox Code Playgroud)
查看已设置(但不起作用)的额外 Windows 选项:
$ cat /boot/efi/boot-repair/log/20171208_030854/nvme0n1p5/25_custom
#!/bin/sh
exec tail -n +3 $0
menuentry "Windows UEFI bootmgfw.efi" {
search --fs-uuid --no-floppy --set=root D656-F2A8
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}
menuentry "Windows Boot UEFI loader" {
search --fs-uuid --no-floppy --set=root D656-F2A8
chainloader (${root})/EFI/Boot/bkpbootx64.efi
}
menuentry "EFI/ubuntu/fwupx64.efi" {
search --fs-uuid --no-floppy --set=root D656-F2A8
chainloader (${root})/EFI/ubuntu/fwupx64.efi
}
menuentry "Windows UEFI bootmgfw.efi sda1" {
search --fs-uuid --no-floppy --set=root 9478-B6E2
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}
menuentry "Windows Boot UEFI loader sda1" {
search --fs-uuid --no-floppy --set=root 9478-B6E2
chainloader (${root})/EFI/Boot/bkpbootx64.efi
Run Code Online (Sandbox Code Playgroud)
这些是在其中boot-repair创建的错误条目/etc/grub.d/25_custom随后被编译到\boot\grub\grub.cfg.
25_custom使用sudo -H gedit /etc/grub.d/25_custom并删除除前三行之外的所有内容:
#!/bin/sh
exec tail -n +3 $0
Run Code Online (Sandbox Code Playgroud)
sudo update-grub。现在,您的菜单不再因五个无效的虚假 Windows 菜单条目而变得臃肿。
25_custom运行此命令并验证25_custom有三行:
$ wc /etc/grub.d/25_custom
3 6 30
# ^ ^ ^
# | | +--- Number of characters
# | +----------- Number of words
# +------------------- Number of lines
Run Code Online (Sandbox Code Playgroud)
我添加了#注释来破译wc(字数统计)输出。
Windows 在这里是题外话, 但答案是这是一项非常古老的技术,引导扇区只有 512 字节,因此它不足以容纳我们希望它容纳的所有内容。
要自己轻松地从 grub 中添加和删除条目,请:
通过执行以下命令安装grub-customizer:
sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt update
sudo apt install grub-customizer
Run Code Online (Sandbox Code Playgroud)如果遇到严重问题,请恢复系统备份。
| 归档时间: |
|
| 查看次数: |
11934 次 |
| 最近记录: |