We have a number of embedded systems that require access to the file system, which are located on flash memory with block device emulation. Our oldest platform runs on a compact flash, and these systems have been used for more than 3 years without starting one fsck at boot time, and so far we have no crashes related to the file system or CF.
On our latest platform, we used USB-flash for initial production and now we are moving to Disk-on-Module for storing r / w. Some time ago, we had problems with the file system on many devices running on a USB drive, so I turned on e2fsck to find out if that would help. As it turned out, we got a load of bad flash memory, so as soon as they were replaced, the problem disappeared. Since then I have disabled e2fsck, since we had no indication that it made the system more reliable and historically we were fine without it.
Now that we started introducing Disk-on-Module modules, I again began to see file system errors. Suddenly, the system cannot read / write certain files, and if I try to access the file from the emergency console, I just get an “I / O Error”. I turned on e2fsck again and all the files were fixed.
O'Reilly's “Building Embedded Linux Systems” recommends running e2fsck on ext2 file systems, but does not mention it with ext3, so I'm a little confused if I should enable it or not.
What are your needs for running fsck on an embedded system? We are considering the possibility of entering binary files to the ar / o section and only files that need to be changed in the ar / w section on the same flash device so that fsck never accidentally deletes important system binaries, does anyone have experience this kind of settings (good / bad)?
source
share