Читал про солнечно-парусный фэйл. Решил показать, что Линукс (ядро + юзерспэйс) вполне работают вообще без доступа на запись в единственную корневую ФС.
Запустил qemu-system-x86_64 -initrd /boot/initrd-319-x64.gz -kernel /boot/bzImage-3.19-x64 -m 32 -append «init=/bin/ash»
и.... оно не сработало. Т.е. сам-то рамдиск выплюнул меня в ash, но там уже всё в rw перемонтировано, и другое ненужное мне сделано.
Собственноручно созданный рамдиск нормально съел параметр, дал шелл. Полез разбираться. Кажется, что если идёт загрузка из initrd/initramfs то первым выполняется дефолтный /init, а уж затем - проверяется пользовательский вариант (и если тот не сработал - несколько запасных).
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/init/main.c
Даже не знаю, баг это или фича.