我最近安装的 Kali Linux 在我打开计算机时没有自动启动。每次重启后都会出现grub提示。ls -l
在 grub shell 中输出:
Device proc: Filesystem type procfs - Sector size 512B - Total size 0KiB
Device memdisk: Filesystem type squash4 - Last modification time 2023-01-30 10:51:57 Monday - Sector size 512B - Total size 828 KiB
Device lvm/elgin--vg-swap_1: No known filesystem detected - Sector size 512B - Total size 1003520KiB
Device lbm/elgin--vg-root: Filesystem type ext* - Last modification time 2023-09-10 08:54:44 Sundaym UUID 017f3393-b329-4b76-beb3-4322232898362 - Sector size 512B - Total size 498077696KiB
Device hd0: No known filesystem detected - Sector size 512B - Total size 500107608KiB
Partition hd0,gpt3: No known filesystem detected - Partition start at 1025024KiB - Total size 499082240KiB
Partition hd0,gpt2: Filesystem type ext* - Last modification time 2023-09-10 09:13:40 Sunday, UUID db71657b-f9fa-4fa1-b30b-126c07fce731 - Partition start at 525312KiB - Total size 499712KiB
Partition hd0,gpt1: Filesystem type fat, UUID D941-C709 - Partition start at 1024KiB - Total size 524288KiB
我使用以下命令集进行手动启动:
set root=(hd0,gpt1)
chainloader /efi/kali/grubx64.efi
boot
我无法修复从 BIOS 菜单启动的问题,因为那里的启动顺序列表为空(请参阅下面的附件)。正如许多地方所推荐的那样,sudo update-grub
也没有帮助。我也尝试过启动修复,但这也无法解决它。您可以看到启动修复的输出这里。
作为额外的上下文,在安装 Kali 之前,我双启动了 Ubuntu 和 Gecko 发行版。我从 kali.org 的官方 ISO 文件安装了 Kali。
还有其他想法来修复我的启动配置吗?
编辑1
efibootmgr -v
输出:
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000,0003,2001,2002,2003
Boot0000* ubuntu HD(1,GPT,bea0db7c-0576-4635-868f-b6975f97ca4e,0x800,0x100000)/File(\EFI\ubuntu\shimx64.efi)RC
Boot0003* kali HD(1,GPT,bea0db7c-0576-4635-868f-b6975f97ca4e,0x800,0x100000)/File(\EFI\kali\grubx64.efi)
Boot2001* EFI USB Device RC
Boot2002* EFI DVD/CDROM RC
Boot2003* EFI Network RC
编辑2
dmidecode --type bios
输出:
# dmidecode 3.5
Getting SMBIOS data from sysfs.
SMBIOS 3.2.0 present.
Handle 0x0000, DMI type 0, 26 bytes
BIOS Information
Vendor: Insyde Corp.
Version: V1.04
Release Date: 06/08/2020
Address: 0xE0000
Runtime Size: 128 kB
ROM Size: 16 MB
Characteristics:
PCI is supported
BIOS is upgradeable
BIOS shadowing is allowed
Boot from CD is supported
Selectable boot is supported
EDD is supported
Japanese floppy for NEC 9800 1.2 MB is supported (int 13h)
Japanese floppy for Toshiba 1.2 MB is supported (int 13h)
5.25"/360 kB floppy services are supported (int 13h)
5.25"/1.2 MB floppy services are supported (int 13h)
3.5"/720 kB floppy services are supported (int 13h)
3.5"/2.88 MB floppy services are supported (int 13h)
8042 keyboard services are supported (int 9h)
CGA/mono video services are supported (int 10h)
ACPI is supported
USB legacy is supported
BIOS boot specification is supported
Targeted content distribution is supported
UEFI is supported
BIOS Revision: 1.4
Firmware Revision: 1.4
答案1
BIOS 菜单中的空引导优先级列表表明 UEFI NVRAM 引导变量存在问题。在 Linux 中,您可以使用efibootmgr -v
root 身份查看引导变量,以及efibootmgr
修改它们的其他选项。
然而,一些较旧的 UEFI 实现在 UEFI NVRAM 变量的管理方面存在严重错误:如果您的系统存在此类错误(例如,如果所做的更改efibootmgr
不会“粘住”),则只有 BIOS 更新才能提供真正的修复。
您的efibootmgr
输出表明系统正在尝试将 Ubuntu 的安全引导 shim 作为主要引导目标进行引导,并且这将启动 Ubuntu 的 GRUB。
如果您的系统上不再安装 Ubuntu,请使用以下命令删除其引导变量:
efibootmgr -b 0000 -B
否则,请切换引导顺序以使 Kali 成为主要引导目标:
efibootmgr -o 0003,0000,2001,2002,2003
看起来 UEFI 启动设置的 BIOS 菜单界面在您当前的固件中存在无法使用的错误:我建议您学习使用来efibootmgr
查看和修改启动设置。