客户有一个运行我们软件的系统,该系统随时都会断电。由于设备会从一个地方移动到另一个地方,因此无法使用 UPS。
可以将其视为伪嵌入式系统。它没有头,也没有互联网/局域网连接,这意味着在客户按照我们的指示进行远程调试之前,没有人在问题出现之前登录过几个启动周期。
该系统使用运行 FTDI 驱动程序的 USB 到串行转换器等。最近,该系统运行良好,并且如预期的那样,关闭了电源,然后使用 uhci_hcd 驱动程序作为 USB 到串行转换器。
显然,关机时出现了问题,导致文件系统处于某种不良状态。
有什么办法可以解决这个问题吗?我并不关心软件的保证,我只想保证操作系统的稳定性和一致性。
我们是否需要重新考虑 Ubuntu 10.04?我知道如果我们 99% 的时间都不登录的话,这有点过分,但是驱动程序支持似乎更好一些,安装可能比其他发行版更好一些。
有人有以这种方式强化系统的经验吗?我列出的内容包括无需用户交互即可自动解决文件系统检查、卸载可能导致配置/时间问题的不需要的软件包等。
需要明确的是,数据丢失不是问题——始终启动到相同的配置才是首要任务。
有没有什么好的资源可以阅读这方面的资料?我甚至不知道我到底要搜索什么——我过去没有做过大量硬核系统管理员工作。
答案1
大多数嵌入式设备会将其存储分成几个部分。您可以使用读写 ramdisk 覆盖以只读方式安装 OS 分区 - 任何更改都不会写入磁盘,因此不会损坏任何东西,也不会在启动时更改状态。为需要持久写入的任何数据添加一个额外的分区,然后使用(如果您使用的是 ext3/4,data=journal 将有助于确保超出正常日志记录的数据一致性。)
注意:您需要 ramdisk 覆盖,因为许多应用程序将各种状态文件写入 /tmp 或 /var。