我想弄清楚如何系统引导确定其引导文件的版本。在我当前的设置(所有虚拟机)中,我正在运行Debian 10,软呢帽 34, 和曼扎罗 21.0.7,全部使用相同的引导加载程序。作为测试,我sudo bootctl update
在 Fedora 上使用,安装其版本的引导文件。当我稍后启动 Manjaro 时,一切正常。
我很好奇的是我的其他操作系统如何检测到引导文件来自 Fedora 34。以下是摘录bootctl status
:
$ bootctl status
System:
Firmware: UEFI 2.31 (VMware, Inc. 1.00)
Secure Boot: disabled
Setup Mode: user
TPM2 Support: no
Boot into FW: supported
Current Boot Loader:
Product: systemd-boot v248.3-1.fc34
无论我运行的操作系统如何,我都会得到相同的输出。如何bootctl
知道 systemd-boot 文件的版本是什么?
答案1
无论您运行的是哪个 Linux 发行版,Systemd-boot 都是 systemd-boot。 Systemd-boot 是一个相对简单的选择器应用程序,不是由发行版制造商定制的。当前安装在您的计算机上的 Fedora 附带的系统引导版本也能够引导 Manjaro、Debian,甚至如果您愿意的话还可以引导 Windows。
当 systemd-boot 更新时,文件将从当前正在运行的发行版中获取。 bootctl 程序检查已安装的 systemd-boot 版本,并且仅在可用版本比已安装版本更新时才进行更新。版本是通过检查实际文件而不是文件名来确定的。更准确地说,版本是通过#### LoaderInfo: systemd-boot NNN ####
在 systemd-boot 二进制文件中搜索字符串来确定的,其中NNN
是三位数版本号。