So far we have looked at the technology behind solid state memory and at the many types of filesystems. Now it is time to summarize the options.
In most cases, you will be able to divide your storage requirements into these three categories:
Permanent, readable, and writable data: Runtime configuration, network parameters, passwords, data logs, and user data
Permanent, read-only data: Programs, libraries, and configurations files that are constant, for example, the root filesystem
Volatile data: Temporary storage for example /tmp
The choices for read-write storage are as follows:
NOR: UBIFS or JFFS2
NAND: UBIFS, JFFS2, or YAFFS2
eMMC: ext4 or F2FS
Note
For read-only storage, you can use all of the above mounted with the ro attribute. Additionally, if you want to save space, you could use squashfs, in the case of NAND flash using UBI mtdblock device emulation to handle the bad blocks for you.
Finally, for volatile storage, there is only one choice, tmpfs.