FYI, it seems that the “/etc/init/nv.conf” script will show as “failed” when mounting read-only (but it isn’t an issue). Regarding the reason for this script thinking believing it has failed is an attempt to work around a known package bug; one of the files which can sometimes be overwritten by a regular package update is:
/usr/lib/xorg/modules/extensions/libglx.so
…and the last act of nv.conf is to attempt to fix this through a forced sym link write (this is the reason for a fail note about this script when mounting read-only):
ln -sf ${LIB_DIR}/libglx.so /usr/lib/xorg/modules/extensions/libglx.so
I commented this line out as a test and it makes no difference (normally this wouldn’t matter anyway unless you’ve just had a rare package update issue…and even then it only matters for the GUI). However, while testing, it is suggested to comment this line out anyway.
When I change the kernel command line argument “rw” to instead be “ro” the system notes this prior to halting in failure:
The disk drive for / is not ready yet or not present.
Unfortunately it seems the serial console is not able to enter keys required to continue via this message:
The disk drive for / is not ready yet or not present.
keys:Continue to wait, or Press S to skip mounting or M for manual recovery
I directly attached a keyboard and could hit “M” for manual recovery. The list of mounts shows rootfs is rw instead of ro, but this is probably due to being in recovery mode (which also is a reason why only one console works).
If instead of “M” for manual recovery I enter “S” to skip mount, then things work. Although the file system acts as if it is read-only “/etc/mtab” and the “mount” commands disagree and think it is read-write.
I can’t say if this is actually a bug, or if instead setup requiring read-write makes this configuration invalid. My guess is that you’d need to come up with an init configuration which has no requirement for write, e.g., puts any locks or other writes on a different partition (think SD card or SATA drive or even a new partition in eMMC). If this were a live DVD distribution, then it would have some sort of overlay filesystem so the eMMC (or base media) is read-only, but would have the appearance of writeability for lock files and temp files.
My question is this: How are you attempting to make this read-only? Is it via the “rw” edit to become “ro” in extlinux.conf? Have you tested to see if this is possible with a standard desktop Ubuntu 14.04 distribution?