在无法访问物理显示器的情况下,我如何知道我的计算机是由 grub 还是 systemd-boot 引导的?
正如我在标题上所写的那样,我同时拥有/boot/grub/
和/boot/efi/EFI/systemd/
文件夹。
另一方面dd if=/dev/sda bs=512 count=1 2>/dev/null | strings
返回以下内容:
ZRr=
`|f
\|f1
GRUB
Geom
Hard Disk
Read
Error
但另一方面cat /boot/efi/EFI/BOOT/BOOTX64.EFI | strings |grep systemd
返回#### LoaderInfo: systemd-boot 247.3-7+deb11u1 ####
Sooo...这是怎么回事?是使用grub还是systemd-boot的电脑?
编辑:efibootmgr -v
输出:
BootCurrent: 0004
Timeout: 1 seconds
BootOrder: 0004,0002,0005,0006,0007,0008,0000,0003,0001
Boot0000* Windows Boot Manager VenHw(99e275e7-75a0-4b37-a2e6-c5385e6c00cb)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...a...............
Boot0001* Linux Boot Manager VenHw(99e275e7-75a0-4b37-a2e6-c5385e6c00cb)
Boot0002* Linux Boot Manager HD(2,GPT,1eded8dc-d1ab-4723-b499-b718400c1898,0x800,0x100000)/File(\EFI\SYSTEMD\SYSTEMD-BOOTX64.EFI)
Boot0003* Linux Boot Manager VenHw(99e275e7-75a0-4b37-a2e6-c5385e6c00cb)
Boot0004* Linux Boot Manager HD(2,GPT,ed10b328-3615-45c0-bf5b-b117031e4c22,0x800,0x100000)/File(\EFI\SYSTEMD\SYSTEMD-BOOTX64.EFI)
Boot0005* UEFI OS HD(2,GPT,26b839e2-9a19-4e21-ad28-dbd1c15d598d,0x800,0x100000)/File(\EFI\BOOT\BOOTX64.EFI)..BO
Boot0006* Hard Drive BBS(HD,,0x0)..GO..NO........o.S.a.m.s.u.n.g. .S.S.D. .8.7.0. .Q.V.O. .1.T.B...................A..........................>..Gd-.;.A..MQ..L.5.S.R.R.F.N.R.0.3.B.0.5.8.4. .Y. . . . .......BO..NO........o.S.T.1.2.0.0.0.N.M.0.0.1.G.-.2.M.V.1.0.3...................A..........................>..Gd-.;.A..MQ..L. . . . . . . . . . . . .T.Z.0.N.9.0.G.2.......BO..NO........o.S.T.1.2.0.0.0.N.M.0.0.1.G.-.2.M.V.1.0.3...................A..........................>..Gd-.;.A..MQ..L. . . . . . . . . . . . .T.Z.0.N.2.1.T.1.......BO..NO........o.S.T.1.2.0.0.0.N.M.0.0.1.G.-.2.M.V.1.0.3...................A..........................>..Gd-.;.A..MQ..L. . . . . . . . . . . . .T.Z.0.N.8.0.J.C.......BO..NO........o.S.a.m.s.u.n.g. .S.S.D. .8.7.0. .Q.V.O. .1.T.B...................A..........................>..Gd-.;.A..MQ..L.5.S.R.R.F.N.R.0.3.B.0.5.9.7. .P. . . . .......BO..NO........o.S.a.m.s.u.n.g. .S.S.D. .8.7.0. .E.V.O. .1.T.B...................A..........................>..Gd-.;.A..MQ..L.6.S.U.P.M.N.T.0.3.5.7.8.4.2. .L. . . . .......BO
Boot0007* UEFI OS HD(2,GPT,1eded8dc-d1ab-4723-b499-b718400c1898,0x800,0x100000)/File(\EFI\BOOT\BOOTX64.EFI)..BO
Boot0008* UEFI OS HD(2,GPT,ed10b328-3615-45c0-bf5b-b117031e4c22,0x800,0x100000)/File(\EFI\BOOT\BOOTX64.EFI)..BO
有效的事实
efibootmgr -v
证明您的系统启用了 UEFI 运行时服务,这只有在系统以 UEFI 模式启动时才会发生。(正如 Marcus Müller 在评论中所说,无法进行反向推断:即使没有启用 UEFI 运行时服务,也可以在 UEFI 模式下启动,要么是因为固件选择不提供它们,要么是因为内核缺少必要的构建时选项来使用它们。在较新的内核中,也可以通过引导选项禁用 UEFI 运行时服务,例如解决特定 UEFI 固件实现中的错误。)
当您的系统启动时,它使用了引导选项,该选项在 PARTUUID 为的分区上
Boot0004
使用。所以你目前正在使用. 您可以看到带有 的 PARTUUID 。systemd-bootx64.efi
ed10b328-3615-45c0-bf5b-b117031e4c22
systemd-boot
lsblk -o +partuuid
您的
dd if=/dev/sda bs=512 count=1 2>/dev/null
结果表明该i386-pc
磁盘上已在某个时候安装了 GRUB 的 BIOS 兼容版本,但除非系统配置为启用了 BIOS 兼容模块 (CSM),否则它对于 UEFI 固件将完全没有意义。有可能(虽然不确定)Boot0006
引导选项可能代表在 BIOS 兼容模式下从该磁盘引导。请注意,
i386-pc
GRUB 的版本并不完全包含在主引导记录块中:它还需要将 GRUB 核心映像的其余部分嵌入到磁盘上的固定位置。在 MBR 分区的磁盘上,MBR 和第一个分区开头之间未使用的空间通常用于此目的;在 GPT 分区磁盘上,此空间由 GPT 分区表结构占用,因此需要专用的“biosboot”分区才能从 GPT 分区磁盘使用 BIOS 样式的 GRUB 进行引导。但是,Microsoft 选择在其 Windows 操作系统中将引导方法和分区方案结合在一起,因此安装到 MBR 分区磁盘的 Windows 将只能以 BIOS 方式启动,而安装到 GPT 分区磁盘的 Windows 将只能曾经以 UEFI 风格启动。引导管理器通常无法在引导方式之间切换,因此如果您安装了多个操作系统,对所有操作系统使用相同的引导方式(BIOS 或 UEFI)是最方便的。
Windows Boot Manager
输出中存在的文本efibootmgr -v
表明您可能有一个以 UEFI 模式启动的 Windows 操作系统,因此如果您想使用 GRUB,您应该使用x86_64-efi
GRUB 的 UEFI 本机版本而不是i386-pc
BIOS 版本。https://itsfoss.com/check-uefi-or-bios/
给出了 windows 和 linux 的答案
在 Linux 中,在你进入 SSH 之后, 找出你运行的是 UEFI 还是 BIOS 的最简单方法是查找文件夹
/sys/firmware/efi
。如果您的系统使用 BIOS,则该文件夹将丢失。