Irs*_*had 2 bootloader arch-linux multi-boot windows-10
在我的 Acer 笔记本电脑上,我安装了 Windows 10 /dev/sda4
,ESP 分区是/dev/sda2
.
如初学者指南中所述,我在新创建的分区上安装了 Arch Linux,/dev/sda5
并/dev/sda6
与 Windows 10 创建的 ESP 交换/dev/sda2
为/boot
.
作为引导加载程序,我选择systemd-boot
了指南推荐的引导程序,如果主板是 UEFI(它是)。
我配置/boot/loader/loader.conf
如下:
timeout 10
default arch
Run Code Online (Sandbox Code Playgroud)
我为arch.conf
at创建了一个条目,/boot/loader/entries/arch.conf
如下所示;
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=/dev/sda5 rw
Run Code Online (Sandbox Code Playgroud)
但是在重新启动 Windows 10 后默认启动。我什至看不到引导加载程序菜单。在引导选项中也没有选择 Linux 引导加载程序的选项。我究竟做错了什么?
注意:fastboot
(Windows 10) 和secureboot
(UEFI) 均已关闭。
在Windows 10 / Linux Dual Boot - Boot-loader Problems 问题中 ,OP 使用 GRUB 作为引导加载程序。就我而言,我正在使用systemd-boot
. 在我的设置中,fastboot
akafast startup
已经被禁用。
#efibootmgr -v
返回我所有的启动选项。它在列表中有 Linux 启动管理器,但启动顺序没有指定任何有关它的内容。所以,我手动编辑了启动顺序# efibootmgr -o 1003,1001,2001
。但是,问题是一样的。重新启动后,引导顺序将恢复。
好的,我试过以下
#efibootmgr -v
Run Code Online (Sandbox Code Playgroud)
这将返回我所有的启动选项。它在列表中有 Linux 启动管理器 (1003),但启动顺序没有指定任何关于它的内容。所以,我手动编辑了启动顺序
# efibootmgr -o 1003,1001,2001
Run Code Online (Sandbox Code Playgroud)
但是,问题是一样的。重新启动后,引导顺序将恢复。所以我检查了 Linux 启动管理器是否可见以bcd
存储在 Windows 10 中
bcdedit /enum firmware
Run Code Online (Sandbox Code Playgroud)
bcd
store 包含我的 Linux 启动管理器。所以我跑了
bcdedit /set {bootmgr} path \EFI\systemd\systemd-bootx64.efi
Run Code Online (Sandbox Code Playgroud)
在提升的命令提示符中。此命令将使 Windows 引导加载程序调用 Linux 引导管理器,而无需直接调用 Windows 10。
这确实解决了我的问题。现在我在同一个硬盘上有一个双启动 Windows 10 和 Arch Linux。
归档时间: |
|
查看次数: |
9283 次 |
最近记录: |