可以从 Linux 更改 BIOS 设置吗?

可以从 Linux 更改 BIOS 设置吗?

我正在尝试编写一个脚本,以便在大量机器上启用 IPMI,而无需逐个将 KVM 连接到它们。是否可以从 Linux 更改 BIOS 设置?操作系统是 SL6。

我知道每台机器可能都需要进行电源循环,但我当然可以通过编程来完成。

答案1

在 HPE 服务器上,您可以使用名为 的实用程序更改设置conrep。它是 RPM 的一部分hp-scripting-tools。用法如下所述:

h20566.www2.hpe.com/hpsc/doc/public/display?sp4ts.oid=5249594&docLocale=en_US&docId=emr_na-c05182235

这很简单。使用-s(save) 参数,您可以保存配置,例如:

conrep -s -f BL460Gen8.dat

并使用-l(load) 参数来加载配置:

conrep -l -f BL460Gen8.dat

dat 文件实际上是 XML 代码。因此,如果您想要启用/禁用超线程设置,请找到相应的行并修改值。请参阅 G6 及更新版本的示例:

<Section name="Intel_Hyperthreading" helptext="Toggles hyperthreading on Intel based G6 and greater systems">Enabled</Section>

答案2

一般情况下,没有。没有关于如何存储设置的标准,甚至没有关于设置的标准。这些信息是每个 BIOS 的专有信息。

答案3

使用:

... 读书

  • dmidecode(用于转储计算机 DMI(有人说是 SMBIOS)的工具)

... 来写

  • http://flashrom.org(用于识别、读取、写入、验证和擦除闪存芯片的工具......)

  • http://www.coreboot.org(是一个自由软件项目,旨在取代大多数计算机中的专有 BIOS(固件)。)

答案4

这是一个老问题,所以让我写一个更新答案:

是否可以从 Linux 更改 BIOS 设置?操作系统是 SL6。

可以使用工具https://github.com/linuxboot/uefisettings或特殊的供应商特定工具(如SCELNX)。

一些背景信息:

UEFI HII 规范定义了访问 BIOS 设置的标准方法。但并非所有供应商都支持该方法。供应商通常会发布自己的工具来使用其自定义细节来修改 BIOS 设置。例如,HPE 服务器通过 iLO(并且它们有一个用于内部通信的协议:BlobStore)来修改设置;因此他们发布了工具“ilorest”。

另一种标准方法是使用 Redfish(IPMI 的后继者)。一些供应商可能会(或可能不会)将一些 BIOS 设置导出到那里。

相关内容