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; for example,/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...