如何使Ubuntu成为“断电证明”?


18

我喜欢每天无人值守地运行一个系统。

但是,该系统可以随时关闭电源,而无需事先进行适当的关机。默认情况下,Ubuntu不会因掉电而关闭。断电后重新引导后,可以运行fsck以检查文件系统,并且fsck可以告诉系统完成后重新引导。因此,即使没有配置数据损坏,断电后计算机也可能无法正常启动。所以我测试了一些解决方法:

  1. 将root mount fsck优先级更改为0fstabroot条目中的最后一个字段),以防止fsck每次断电后运行。但是,系统可能会以root身份挂载为只读进行引导,这是许多服务所不希望的,并且会导致控制台登录提示而不是图形登录。

  2. 替换errrors=remount-roerrors=continue。这给人一种不好的感觉,即文件系统不完整可能会导致进一步的数据丢失。但是,fsck再次启用后,它将在断电后增加系统的引导可启动性。所以我放弃了1)。

  3. 重新配置grub2,以在引导失败后使用正常的默认选项超时。为此,我将添加GRUB_RECORDFAIL_TIMEOUT=0/etc/default/grub

但是,很难知道这些黑客是否使系统断电。有任何想法吗?还有更多可以做的吗?


1
我真的没有得到您想要达到的目标。“防功耗”是什么意思?你能清理一下吗?
安德烈Stannek

添加了一个清晰的介绍。我喜欢一个系统,该系统通常恢复正常,而断电后无需维护即可交互。
dronus 2012年

Answers:


16

对于信息亭应用程序,可通过使用只读根分区解决此问题。此外,在下次重启时,用户所做或保存的所有更改都将被撤消。

为了为大多数应用程序需求提供可写根目录,overlayfs可用于用可写ram tempfs覆盖只读分区。

https://help.ubuntu.com/community/aufsRootFileSystemOnUsbFlash的底部,有一个脚本可以帮助创建这样的设置。该脚本包含有关设置的说明:

  • 将文件放在/ etc / initramfs-tools / scripts / init-bottom / root-ro
  • sudo chmod 0755 root-ro
  • sudo update-initramfs -u

我建议加入GRUB_RECORDFAIL_TIMEOUT=0/etc/default/grub和运行sudo update-grub过,否则可能会出现启动菜单时不会发生超时。

之后,重新启动。然后机器以只读模式启动,可以通过进行检查 mount。应用的任何更改将在下次重新启动时消失。要进行任何更改,请安装软件和更新等。您只需进入GRUB菜单,按e更改引导命令行,然后追加disable-root-ro=true到以内核开头的行。按F10键继续引导。然后,您可以mount用来确认根目录是否像往常一样可写。进行更改并重新引导,系统将再次变为只读状态。


+1是因为只读的根文件系统也是我想到的第一件事。
内森·奥斯曼

这实际上效果很好。但是,在进行任何读/写安装后,应再次干净地重新引导系统,以检查所有内容是否干净。诸如GRUB的故障保护之类的东西,一个浏览器显示它没有被完全关闭或fsck,否则将永远被保存。如果发生这种情况,则必须重新启动读/写操作,然后再次干净地关机。
dronus

9

在不干净的重新引导后(例如,按下断电或复位按钮,甚至发生内核恐慌),有时系统将无法引导,要求您按“ y”键进行fsck修复分区。

如果要避免这种情况,请编辑/ etc / default / rcS并更改:

FSCKFIX=no

至:

FSCKFIX=yes

这样可以确保在不提示您的情况下自动运行此修复程序。

不利的一面是您可能会丢失数据,并且如果其中有关键的内容没有备份,则可能需要取出硬盘驱动器并先对其进行克隆。

例如,如果您的硬盘驱动器控制器出现故障,并且fsck错误地将分区标识为损坏并尝试修复该分区,则可能导致数据丢失,而这种情况本可以避免。我本人从未经历过这种情况,并且在过去7年左右的时间里处理了将近1000台服务器-但这仍然是要记住的事情。


7

到目前为止,对于信息亭只读解决方案,还可以通过以下方式安装软件包overlayroot

sudo apt-get install overlayroot

这将很容易提供一个完整的解决方案,例如已批准的答案之一。它还允许有益的命令

sudo overlay-chroot

它将登录到一个外壳,该外壳上装有以前的只读基本磁盘/。这样就可以对受保护系统进行任何更改,例如将apt-get其安装到以前的只读磁盘上。但是,强烈建议退出外壳后重新启动,因为RAM上临时覆盖的文件可能会使新安装的文件模糊。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.