Ubuntu-core 电源故障保护

Ubuntu-core 电源故障保护

我想问一下 ubuntu-core 在设计上是否更像基于 ramdisk 的操作系统?根据这一页

操作系统和应用程序文件完全分开保存,作为一组不同的只读映像。

我理解这是因为对物理存储进行的写入操作要少得多——在我的特定情况下,我考虑的是 SD 卡。这会导致更耐断电的存储(当然不是说损坏 SD 卡本身)吗?

作为参考 - 我对 rPi 及其基于 SD 卡的 FS 的体验不太好(别误会,我喜欢它们,但它们并不适合我的所有用例),最终损坏了... 无论我使用哪种类型的 SD 卡,一段时间后我的系统总是会损坏。据我所知,这是正常的,因为默认情况下 Raspbian 会进行大量写入,如果在写入过程中发生电源故障,则整个系统将无法启动。

在某些情况下,我并不总是能够使用适当的方法关闭系统,shutdown因此我正在寻找一种对此更具抵抗力的操作系统,而 ubuntu-core 似乎可以实现这一点。我理解得对吗?

答案1

这是一个很好的问题。

Snap(以及 Ubuntu Core)的设计确实使每个(操作系统只是另一个 snap)都与其他的相互隔离。Snap 是只读的 squashfs 映像,这正是您所引用的引文所讨论的内容。

但是,据我了解,这样做不是为了像 ramdisk OS 那样运行。这样做是为了该页面上的其他要点:

  • 图像(以及其中的应用程序)更能抵抗篡改。
  • 快照始终与开发人员发布的完全一致,这使得更新(和回滚)变得容易。

等等。事实上,虽然 snap 确实是只读的,但 Ubuntu Core 的行为并不像 ramdisk OS:

  • 快照本身在更新时仍会被写入磁盘。
  • 操作系统日志仍然转到/var/log/
  • 每个快照都有自己的可写空间,可以根据需要利用这些空间。

所有这些写入都是持久的,但系统设计为使写入尽可能少(除非您在开发模式下运行快照,这会使日志变得嘈杂,或者使用写入大量数据的快照)。就电源故障而言,没有什么可以阻止在一次写入期间断电。但是,Ubuntu Core 和 Raspbian(我相信)都使用 ext4,通常能够从此类事件中恢复。我甚至会建议你遇到的以前的 SD 卡损坏只是由于写入过多。也许你选择的 SD 卡没有良好的磨损均衡实现?

相关内容