我有一台 Thinkpad T430。每次我在上面安装 Linux(最新的 CentOS)后,一段时间后,计算机就会拒绝启动、进入 BIOS 或启动/诊断菜单。我曾在其上运行 Windows,直到我决定切换到 CentOS 或双启动 CentOS 时,这种情况才会发生。
到目前为止,我已经有三块主板出现过这种情况,不得不更换。现在我换了第四块主板,我在想我是不是一个不幸的人,总是遇到有缺陷的硬件,还是 Linux 以某种方式破坏了主板的固件。
你们有什么感想?
从技术角度来看,这是否合理?也许 T430 与 Linux 不兼容?请随意猜测。
答案1
由于这是一个相对较新的设备,它没有传统 BIOS,而是 UEFI 固件。不幸的是,UEFI 极其复杂,容易出现最奇怪的错误。
例如,几年前,三星推出了一些笔记本电脑,这些笔记本电脑可能会因向 NVRAM 变量中写入过多数据而变砖,看这里和这里:
[...] 内核中有代码可以让 UEFI 系统更容易地完成此操作。每当遇到严重错误时,内核就会将最新消息复制到 UEFI 变量存储空间。然后,重启后用户空间就可以使用这些消息,从而更准确地诊断出崩溃的原因。
该崩溃转储占用了大约 10K 的 UEFI 存储空间。Microsoft 要求 Windows 8 系统至少有 64K 的可用存储空间。我们只保留一个崩溃转储 - 如果系统再次崩溃,它将覆盖现有的转储,而不是创建另一个。这一切都完全符合 UEFI 规范,Apple 实际上在他们的硬件上做了一些非常类似的事情。不幸的是,事实证明,如果使用了太多的变量存储空间,一些三星笔记本电脑将无法启动。我们还不知道“太多”是什么,但从 Windows 写入一堆变量就足以触发它。我在这里放了一些示例代码 - 它写出 36 个变量,每个变量包含一千字节的随机数据。我在 Windows 下以管理员身份运行它,然后重新启动系统。它再也没有回来。
联想犯下类似错误并非不可能。
当然,您应该确保安装了最新的固件更新。
答案2
如果您使用特定软件来刷新 BIOS,则可以实现此目的,但如果不使用它们,则不会发生此情况。
经过一番搜索,似乎其他人没有遇到这个问题。检查一下你是否弄坏了钥匙。如果你使用的是 EFI,你应该使用 Windows 中的高级选项进入固件选项。