用于工控的设备在现场应用时难免会有操作人员会对设备进行插拨电源或开关动作,因此需要保证断电后还能正常启动。对于应用程序来说,通常读写频繁,这需要对Linux系统进行优化,以防止在突然断电时产生问题。
一般说来,SOM厂家提供的定制的嵌入式linux固件本身就足够安全,但如果你采用的是工控机安装标准Linux,或是自行基于芯片设计嵌入式平台,那就要多一些考虑。
1.使用ssd硬盘等非易失性存储介质,禁用系统日志,避免无谓的写入,减少对闪存颗粒的损伤。可以考虑使用overlayfs伪装根目录,另外/home目录可以随意读写,以便让应用程序可以实现断电储存功能
2. 磁盘参数,如果采用固态硬盘,磁盘参数noatime 不保存访问时间/修改时间?
对于sqlite3数据库是否断电安全,应充分测试
3.boot分区与根分区分离,boot分区只读挂载,initrd自动fsck
在kernel启动参数里添加 fsck.repair=yes 可以在initrd阶段自动修复分区,避免需要按F的尴尬