从 Linux 中创建 UEFI/BIOS 芯片转储

从 Linux 中创建 UEFI/BIOS 芯片转储

有些人建议使用它flashrom来创建 PC 的 UEFI/BIOS SPI 闪存内容的备份转储。但是,flashrom并不适用于所有平台。有时,人们建议从 中查找 SPI 闪存的地址范围/dev/iomem,然后结合使用它来dd从 中提取它/dev/mem。问题在于,/dev/iomem几乎总是报告驻留System ROM在范围内0x000f0000-0x000fffff,即 64 KiB,而 SPI 闪存几乎总是大于该范围。

那么,如何在目标系统上运行 Linux 且不使用 SPI 闪存剪辑的情况下提取 SPI 闪存的内容呢?我知道有一种方法可以做到这一点,因为我曾经找到过它,并用它来提取 UEFITools 能够打开的固件映像,但我忘记了该方法是什么。

答案1

与你所相信的相反,有不是总是有办法做到这一点。

由于每个硬件都不同,每个固件也不同,因此在内存实际上映射到 io 空间的机器上也没有统一的方法。

对不起。你认为存在的东西其实并不存在一般来说;它可能以特定的方式存在于您的特定主板上。这就是为什么每个主板供应商都会为 Windows 提供不同的“uefi 更新实用程序”。

我知道有一种方法可以做到这一点,因为我曾经找到过它,并用它来提取 UEFITools 能够打开的固件映像,但我忘记了该方法是什么。

听起来像是固件特定的解决方案。取决于你的主板!

相关内容