Linux 会损坏计算机硬件吗?

Linux 会损坏计算机硬件吗?

我要在我的台式电脑(i3 550,4GB RAM)上安装 Elementary OS,安装前有什么需要注意的吗?我听说 Linux 发行版与计算机硬件的兼容性不如 Windows 操作系统,这会有问题吗?

答案1

理论上:任何软件(包括 Windows)都会损坏硬件吗?是的。
实际上:不会。

Linux 与任何其他操作系统并无不同。与 Windows、OSX、MacOS(经典)、FreeBSD、netBSD、OpenBSD、QNX 等具有相同(无)风险...


不太兼容

呃,我会说完全兼容。不多不少。
但我怀疑你的意思是“驱动程序更少或稍后获取”。在这种情况下,它只是无法完全识别部分硬件。它会很顺利地工作。你可以启动、编辑文件、运行 Firefox 等等。但请检查是否有任何特殊硬件的驱动程序。

这与 Windows 没什么不同。尤其是在升级较旧的设备时,制造商不会为其编写更新的驱动程序。

答案2

理想情况下不,Linux(或任何其他软件)不应该对硬件造成物理损害。没有驱动程序可能意味着您无法使用某些硬件,但您当然也不应该损坏它们。

不幸的是,有些情况下廉价或劣质的硬件会因软件而变砖。例如,许多早期的 UEFI 固件没有正确地对某些内容进行写保护,导致重要数据被覆盖并损坏主板 [1][2]。

Linux 不会损害你的硬件比任何其他操作系统都多,但有些东西它却无法保护你。

答案3

仅硬件有故障。

  • 丑闻时有发生。UEFI 损坏(muskox 提到)是一个很好的例子,但很罕见。

  • 硬件错误地报告其功能其实并不罕见。例如,声称支持队列修剪但实际上不支持的 SSD,以及声称支持不是支持SATA 链路电源管理但确实如此。后果分别是数据丢失和电池寿命缩短,但据我所知,并未造成物理损坏。这些设备最终被列入驱动程序的可耻黑名单和白名单中,世界继续前进,但这意味着对于您的硬件来说太旧的内核是有风险的。

  • 对于某些不幸的硬件,缺少驱动程序意味着缺少电源管理。对于较新的 GPU,这意味着您将被困在低性能设置中,这是安全的。但是,如果您被困在高性能中,并且没有足够的冷却来承受这种功率,并且组件在过热时不会自动关闭,它就会过热。这将是一个设计缺陷,因为如果操作系统挂起,也会发生同样的情况,这也可能发生在 Windows 上。我听说过笔记本电脑因为两个 GPU 都保持活动状态而变热,但我认为它们会在情况变得危险之前自动关闭。

答案4

这里这是一篇来自 SlashDot 的文章,讨论了rm -rf --no-preserve-root /由于删除 EFI 变量而导致 UEFI 主板变砖的情况:

对于使用 UEFI 的较新系统,运行 rm -rf / 足以永久破坏您的系统。虽然在 Linux 系统上运行这个命令很简单,但 Windows 和其他操作系统在使用 UEFI 时也容易出现此问题。问题归结为 UEFI 变量以读/写权限挂载,当递归删除所有内容时,UEFI 变量也会被清除。Systemd 开发人员拒绝将 EFI 变量挂载为只读,因为存在写入它们的有效用例。将它们挂载为只读也会破坏其他应用程序,因此目前没有好的解决方案可以避免可能破坏您的系统,但内核开发人员正在调查此问题。

这里这是 AskUbuntu 上一位用户的帖子,详细描述了rm -rf --no-preserve-root /其主板变砖的经历:

但是,重启后,显示器根本没有收到任何输入。此外,硬盘指示灯(或红灯)没有任何反应。(事实上,它是关闭的。)但是风扇和 DVD 驱动器都在工作。(我不认为里面有 PC 扬声器,所以如果您需要一些蜂鸣错误代码,抱歉。)

随着回答

要点 1:删除 /sys/firmware/efi/efivars/ 会破坏您的 EFI 配置,但在正确实施的 EFI 中,这应该是可以恢复的。

要点 2:有些硬件的 EFI 损坏或实现不佳,如果对它们进行符合标准的处理,可能会永久损坏。例如,Ubuntu 通过在 EFI 内存中存储额外数据而导致三星笔记本电脑损坏。这种行为在标准上没有问题,但破坏了这种特定的实现。

要点 3:以 root 身份运行任何写入 /dev/sda 的内容都会破坏您的分区表和/或文件系统。这很糟糕,尤其是在您没有备份的情况下,但在分区、创建新文件系统并重新安装操作系统后,您的机器将再次工作。因此,您可以通过启动其他媒体并重新进行安装来恢复。

要点 4:EFI 崩溃是完全不同的问题。最糟糕的情况是,由于无法进行 POST,您将无法对机器进行任何操作。无法从其他媒体启动,无法输入 EFI 实用程序来修复缺失的内容。此时,您的计算机就成了非常昂贵的镇纸。

问题出现在运行 systemd 并将 efivarfs 挂载为可写(位于 /sys/firmware/efi/efivars)的发行版中。Systemd 需要在此处写入,因此使用 systemd 的发行版会受到影响。但是,似乎没有迹象表明 Upstart 系统受到影响。

相关内容