Ubuntu 对重复“断电”关机的弹性如何?

mat*_*975 16 hardware shutdown restart

我的公司正在考虑将 Ubuntu 作为操作系统用于硬件设备。

它将安装在紧凑型闪存驱动器上 - 显然这不是标准闪存驱动器,而是一种特定类型的内存,应该“应对”立即断电(我不确定这是如何实现的,但它们被认为是“高端” “ 卡片)。

将使用 Ubuntu 运行的单元是不会正常关闭的单元类型 - 电源线将被移除,就是这样。

任何人都可以就可能发生的潜在问题给我一些建议吗?Ubuntu 是一个可以处理这种断电并在下次启动时成功重启的好系统吗?

我意识到没有什么是牢不可破的,但它是嵌入式设置的常用操作系统吗?在这种环境下使用Ubuntu是不是自找麻烦?

ish*_*ish 12

注意:这个答案是从生产环境的角度来看的,其中数据丢失或停机会导致金钱损失、客户损失、工业设备故障等。如果你只是在家里摆弄 Raspberry Pi,我会说没有问题... :)

不会推荐 Ubuntu 的默认配置,以及(默认)ext4 文件系统的设计,用于嵌入式环境,其中会像您建议的那样重复“不正常”的关闭。

如果我是对的,那么您使用的是 Ubuntu 8.04,它最多支持 ext3。虽然 ext3/ext4 都使用日志作为维护文件(写入)完整性和帮助恢复的一种方式,但当“拔掉电源线”是规则而不是例外时,不应依赖这些。

  • 假设您的系统在设置后不需要动态重新配置,理想的选择是将其根文件系统挂载为只读,并在运行时完全使用临时内存分区(就像 LiveCD 那样)。在这种情况下,系统将在每次启动时返回其“初始”配置。
  • 要以非易失性方式存储(有限数量的)用户数据,您可以创建一个二级分区,根据 CF 卡的内部结构,可能使用针对闪存介质优化的文件系统,例如 JFFS2。为了通过拔掉插头来减少数据损坏的机会,您可以禁用设备的硬件写缓存,并以同步(sync)模式安装它,禁用内核的写缓存。这些选项可能会严重影响吞吐量和性能,即使在“高端”CF 卡上也是如此,因此您也必须考虑预期用途。

  • 我得打电话给FUD。在拔掉插头时,ext3/4 日志肯定可以用来保持文件系统的工作状态。然而,它对用户数据没有任何作用,因此在崩溃时写入文件的应用程序可能会损坏其数据,除非他们小心。在闪存媒体上启用同步不仅会大大减慢速度,还会导致闪存更快磨损。JFFS 和 YAFFS 也用于嵌入式系统中内置的直接 NOR 闪存;ext4 在执行内部磨损均衡的消费类设备上效果更好。 (4认同)
  • @mathematician1975:如果您想将 Linux 用于这些目的,您需要一个实时/嵌入式发行版,可能类似于 [ucLinux](http://www.google.com/url?sa=t&rct=j&q=&esrc= s&source=web&cd=1&ved=0CGAQFjAA&url=http%3A%2F%2Fwww.uclinux.org%2F&ei=DMMHUPCTIOKe2AXx6eS8BA&usg=AFQjCNGy6oKcCID682fLKahUxyb1Z26MTg&s9Z26MTg&s9ZoV 桌面),如 Ubuntu-ASIGZ26MTg&sigtroV 不完整的桌面) (2认同)
  • @mathematician1975 - 如果这是“关键业务数据”,那么您确定要放入 UPS 吗?当您随时拔掉插头时,地球上没有任何操作系统可以保证数据无损坏。如前所述,将数据之外的所有内容都设为只读会有所帮助,并且轻量级 Linux 发行版可以根据来自 UPS 的信号安全快速地关闭。 (2认同)

Sep*_*ero 5

只要将操作系统设置为只读使用,就可以了。LiveCD 有类似的设置,因此您可以随时关闭它们,而操作系统不会受到损害。

在读写驱动器上,ext4 文件系统非常有弹性。但无论文件系统如何,任何可写的驱动器都会受到损坏文件的影响。