在linux中读取bios内容的最佳方法

gt0wga4j  于 2023-08-03  发布在  Linux
关注(0)|答案(3)|浏览(140)

一个奇怪的问题。有没有可能读取bios芯片的全部内容。我们有一个问题,我们需要验证bios芯片的内容?
干杯詹姆斯

kzmpq1sx

kzmpq1sx1#

你可以尝试dmidecode或biosdecode如果你有他们。

4dc9hkyq

4dc9hkyq2#

如何读取BIOS区域

有没有可能读取bios芯片的全部内容。我们有一个问题,我们需要验证bios芯片的内容?
我假设你的意思是专门读“BIOS区域”,因为同一芯片可能包含多个不同的区域:
要读取BIOS区域:

  • 最简单的方法是从/dev/mem 0xffffffff向下读取。您可以在/proc/iomem中找到该范围(try命令:sudo grep -- '-ffffffff ' /proc/iomem)。然后可以使用dd转储该区域。
  • 另一种方法是使用flashrom,如果您的主板支持此工具(类似sudo flashrom -p internal --ifd -i bios -r /tmp/bios_region.img)。
  • 另一种方法是使用特定于供应商的工具,如AFULNX。这种方式高度依赖于特定的主板和BIOS供应商。
  • 另一种方法是使用Linux的MTD驱动程序。有时,带BIOS区域的SPI存储芯片可以作为/dev/mtd*使用。
  • 此外,对于服务器主板,BIOS通常可通过BMC访问。

如何验证内容(出于安全考虑)

实际上,您可以使用TPM中的PCR0值,该值用于测量BIOS的内容。它有很多警告,但他们是马马虎虎的调查和解决(随时提出问题,我会尽力帮助)。
但如果你需要直接比较内容,请记住:

  • 原始图像中有占位符,可以用真实的数据替换,因此可能会得到不匹配的图像,这就是它应该是的样子。
  • 存在BIOS可以写入一些数据的NVRAM(以及可能的其他地方)。例如,在某些BIOS上,您可能会在每次重新启动时看到BIOS区域转储不匹配。这个也行。

避免这两个问题的最简单方法是使用PCR0值。

如何验证内容(操作性)

另请参阅上面的“安全目的”部分,但在BIOS卷和文件的顶部有校验和。您可能只需要在某些情况下检查它们。

附言

其他答案建议使用dmidecode之类的东西。他们不会转储BIOS映像,但会打印SMBIOS信息和类似的东西。

uz75evzq

uz75evzq3#

你读过this吗?
有什么简单的方法可以从用户界面读取系统BIOS的内容吗?
不能。大多数现代BIOS代码都是分页、压缩的,在某些情况下还加密了。

相关问题