Making the root filesystem read-only
You need to make your target device able to survive unexpected events, including file corruption, and still be able to boot and achieve at least a minimum level of functionality. Making the root filesystem read-only is a key part of achieving this ambition because it eliminates accidental overwrites. Making it read-only is easy. Replace rw with ro on the kernel command line or use an inherently read-only filesystem such as SquashFS. However, you will find that there are a few files and directories that are traditionally writable:
/etc/resolv.conf: This file is written by network configuration scripts to record the addresses of DNS name servers. The information is volatile so you simply have to make it a symlink to a temporary directory like/etc/resolv.conf -> /var/run/resolv.conf./etc/passwd: This file, along with/etc/group,/etc/shadow, and/etc/gshadow, stores user and group names and passwords. They need to be symbolically...