在我的embedded式系统上,使用44针超越工业闪存,过了一段时间,我会注意到我无法读取任何文件或写入磁盘。 我正在使用3.2.0。* BPO i686 SMP PAE内核。 这有时伴随着一个冻结在backport的内核,但是它总是导致一个完整的系统冻结在默认的Debian 6内核上。 当我尝试在这一点上重新启动时,如果我重新启动(通常是正常的,因为这是一个只读的根系统),它总是会冻结的。我通常在fsck上发生卡住的启动,抱怨其中一个可写分区不是干净地卸下。 fsck / dev / … -y总是修复它。
当我注意到这一点时,我改变了我们的主要应用程序,只在启动时从ide读取,并且只在客户端调用WriteConfigurationToDisk函数时写入configuration文件。 然而,这种情况急剧改善,过了一段时间,同样的事情开始发生。 这似乎并没有普遍发生,只有约10%的产品。
这是一个只读的根系统。 每个分区都是一个日志文件系统。 此外,只有操作系统正在写入任何东西到磁盘 – 而且大部分是在启动。 任何想法,我应该检查什么?
更新我一直在做一些更多的研究,似乎ext3也许谋杀了我的闪存驱动器,因此冻结的读取/写入是一个糟糕的闪光的结果。 我应该也许切换到JFSS2?
在固态硬盘上,您可以尝试使用ext4文件系统,然后使用丢弃选项安装它。 在fstab中:
UUID=XXXXXXXXXXXX / ext4 discard 0 1
添加任何你想要的选项,如noatime或errors = remount-ro。
丢弃选项可能会在SSD中启用TRIM,从而延长其寿命, https://ext4.wiki.kernel.org/index.php/Ext4_Howto#Ext4_code_implements_discard.2FTRIM
但是,只有其他(基础的)系统也支持这个function。
我不确定你的闪存盘是否支持TRIM,因为它不是芯片本身的一部分,而是包含芯片的驱动逻辑的一部分。 我需要知道它是什么样的设备。
但只是改变文件系统本身可能会缓解一些事情,我更喜欢xfs。 ext3文件系统已经足够用于很多目的,但是有更多的恢复问题(需要fsck -y)而不是其他的,比如我从来没有发现过的xfs。
在/ etc / default / rcS中进行设置可以在启动时自动修复(ext3)文件系统,无需点击“y”:
FSCKFIX=yes
更新:我检查了该设备的规格,它似乎不支持TRIM,但它是一个相当不错的小设备。 你对日志是正确的,如果不支持TRIM,那么使用ext2文件系统或其他非日志文件系统可能会有更好的可靠性。