有些人建议使用它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 能够打开的固件映像,但我忘记了该方法是什么。
听起来像是固件特定的解决方案。取决于你的主板!