Linux 在断电时容易损坏?

Tyl*_*den 12 linux power

我公司的系统管理员说 Linux 很容易因停电而崩溃。他们说 Windows 机器总是能在断电时幸免于难,但 Linux 机器通常无法恢复(即您无法再启动机器)。之所以出现这种情况,是因为他们告诉我,电力公司将长时间关闭我们办公室的电源,因此管理员希望我在停电前关闭我一个人可以访问的所有 Linux 机器。

我认为 Linux 应该是健壮的?
我的问题是 - 是否应该运行一些进程来避免我的 Linux 机器被停电损坏?

Sco*_*ain 15

linux 比 windows 更脆弱吗?
答案是:视情况而定

当有人在这种情况下说“无法启动”时,我将其翻译为“文件系统损坏”,原始问题的答案是或否都取决于您使用的文件系统。

Windows 不允许您拥有 Linux 机器允许的所有文件系统选择。您几乎从未见过非 NTFS Windows 系统。NTFS 内置了一些功能,可以在断电时提供帮助,例如在发生故障时可以回滚的日志文件事务

Linux 机器可以有这个,也不能。这完全取决于服务器的设置方式。如果服务器使用ext2 1,您可能很容易在发生电源故障时损坏文件。将其与使用Btrfs 之类的系统相比,该系统具有比 NTFS 更多的数据完整性功能。

因此,如果与您交谈的系统管理员只使用 ext2 系统,他可能是对的,但如果您使用其他文件系统,他可能是错的。


1:在很长一段时间内,Ext2 都是 Debian 和 Red Hat Linux 的默认设置。它现在已大部分被 Ext3 取代,后者在数据完整性功能方面与 NTFS 更接近。

  • 我在底部的注释中提到,Ext3 与 NTFS 处于同一级别。我相信系统管理员可能只体验过 Ext2 文件系统,从他的角度来看,他是对的。就像如果你只接触过 Fat32 文件系统而从未见过 NTFS,你会对 Windows 有类似的感觉(Fat32 上的 Windows 版本在断电时有可怕的文件损坏历史) (3认同)

Tyl*_*den -6

我对这个问题做了一些研究,发现我的 IT 部门所说的基本上是正确的,Linux 比 Windows 更容易发生断电。原因在于 inode 表在 Linux/unix 中的工作方式。由于它是一个无序列表并且不断被修改,因此重要的静态文件(如内核二进制文件)和无价值的文件(如临时文件)之间没有区别。这意味着关键系统文件的索引节点条目不断被重写,这显然是一个非常糟糕的设计。事实上,关键系统文件实际上比非必要文件更有可能在任何给定时间写入其索引节点条目。当断电时,它往往会破坏正在写入的索引节点表的任何部分,其中可能不包含指向系统文件的指针。系统文件本身完好无损,但查找它们的目录已损坏。磁盘缓存会使情况变得更糟,磁盘缓存会增加索引节点表损坏区域的大小。

在 Windows 中,即使是旧的 FAT 文件系统也比这更强大。FAT也有一个表,但它是一个有序表,因此它不会将系统文件与临时文件混合在一起。通常,系统文件都集中在目录的一个区域中,并且该区域不太可能被频繁写入。另外,FAT有一个备份目录,因此即使该目录损坏,它也只是恢复到备份。这意味着使用 FAT,用户在发生电源故障时不太可能丢失任何文件链接,甚至是临时文件。然而,在 Linux 中,由于 inode 表不断被写入,因此用户实际上肯定会在电源故障时失去对文件的访问权限。

缓解这种情况的唯一方法是关闭磁盘缓存。

作为 Linux 系统经常因断电而死机的证据,您只需进行网络搜索即可找到数百个如下所示的点击:

https://forums.linuxmint.com/viewtopic.php?t=232793 (2016) https://askubuntu.com/questions/813864/ubuntu-16-04-wont-boot-after-power-outage-efi ( 2016) https://forums.linuxmint.com/viewtopic.php?t=295491(2019) https://askubuntu.com/questions/1107318/ubuntu-is-unable-to-boot-up-after-sudden-停电(2019)

这些都是最近的帖子,所以我确信它们都没有使用像 ext2 这样的旧技术。

  • -1。请通过链接、文章、来源等支持您的主张,我将撤销我的反对票。您指的是哪些 Linux 文件系统? (3认同)
  • 我认为这个答案(以及整个问题)是个笑话的主要原因是 Linux/Unix 为互联网提供了动力,而不是 Windows。如果中断可以如此轻易地摧毁 Linux/Unix 系统,那么互联网将无法运行。此外,如果使用 Linux 的路由器经常快速开关机,那么它们将毫无用处。 (2认同)