Respuestas:
Cuando el gestor de arranque llama al núcleo, le pasa un parámetro llamado root
. Entonces, una vez que el kernel termine de inicializarse, continuará montando la partición raíz dada /
y luego llamando /sbin/init
(a menos que otros parámetros lo hayan anulado).
Luego, el init
proceso inicia el resto del sistema cargando todos los servicios que están definidos para iniciarse en su nivel de ejecución predeterminado.
Dependiendo de su configuración y del sistema de inicio que utilice, puede haber varios otros pasos entre los que mencioné. Actualmente, los sistemas init más populares en Linux son SysVInit (el tradicional), Upstart y Systemd. Puede encontrar más detalles sobre el proceso de arranque en este artículo de Wikipedia .
Aquí hay un ejemplo simplificado de mi configuración de Grub. La parte importante para responder a su pregunta está en la penúltima línea, hay un root=/dev/sda3
:
menuentry 'Gentoo GNU/Linux' --class gentoo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-40864544-2d0f-471a-ab67-edd7e4754dae' {
set root='hd0,msdos1'
echo 'Loading Linux 3.12.6-gentoo-c2 ...'
linux /kernel-3.12.6-gentoo-c2 root=/dev/sda3 ro
}
En muchas configuraciones, el kernel se monta /
en modo de solo lectura y el resto de las opciones están configuradas por defecto. En /etc/fstab
puede especificar los parámetros del sistema de archivos que luego se aplicarán una vez que init lo vuelva a montar.
Se fstab
necesita una entrada , si desea especificar algunas opciones de montaje no predeterminadas. Sin embargo, hoy en día systemd
, un dispositivo kernel y un fstype correctos no fstab
son necesarios. Puede reemplazar la entrada raíz con algo como:
#UUID=8f74237d-b689-4beb-9d1f-f60b426c9969 / ext4 rw,relatime,data=ordered 0 1
dummy / auto rw,relatime,data=ordered,debug 0 1
y las opciones de montaje aún son respetadas por systemd.
Puede usar cualquier nombre de dispositivo incorrecto, por ejemplo /dev/sdz1
, excepto el UUID incorrecto. Con un UUID incorrecto, el mensaje se imprimirá en el arranque: Failed to start Remount Root and Kernel File Systems
pero el sistema se inicia de todos modos.
init
Luego, un proceso monta las cosas/etc/fstab
según los parámetros allí, lo que generalmente significa volver a montar la lectura-escritura de la partición raíz.