Como usted dijo, el propósito de initramfs es lograr que se monte el sistema de archivos raíz "real" (también puede hacer otras cosas, pero esta es la tarea común).
Sin un initramfs, el núcleo normalmente montará una partición como solo lectura y luego pasará el control a /sbin/init
. Un initramfs simplemente se hace cargo de esta tarea desde el núcleo, generalmente cuando el sistema de archivos raíz no es una partición normal (mdraid, lvm, encriptada, etc.).
Ahora, aparte del fondo en initramfs, tu /etc/fstab
reside en tu sistema de archivos raíz. Como tal, cuando se inicia initramfs, ese sistema de archivos raíz no está allí, por lo que no puede llegar al fstab (problema de huevo y gallina).
En cambio, tenemos que pasar un parámetro a los argumentos de arranque del núcleo para que los use initramfs. Normalmente esto es algo así root=/dev/sdX
. Sin embargo, también podría hacer algo para descubrir automáticamente dónde está su dispositivo raíz, por lo que no hay ningún parámetro. Dado que es solo software (generalmente un script), realmente puede hacer lo que quiera para montar el dispositivo raíz.
Ahora, como se indicó anteriormente, el núcleo montará la raíz real como solo lectura. Los initramfs deberían hacer exactamente esto. Una vez que se hace initramfs, el sistema continúa arrancando exactamente como si no hubiera initramfs y se /sbin/init
inicia. Este init luego inicia todos sus scripts de arranque normales, y es el trabajo de uno de estos scripts leer /etc/fstab
, cambiar de raíz a lectura-escritura y montar todos los demás sistemas de archivos.