Quando o carregador de boot chama o kernel, ele passa um parâmetro chamado root
. Portanto, assim que o kernel terminar de inicializar, ele continuará montando a partição raiz em /
e chamando /sbin/init
(a menos que isso tenha sido substituído por outros parâmetros).
Em seguida, o processo init
inicia o restante do sistema carregando todos os serviços definidos para serem iniciados no nível de execução padrão.
Dependendo da sua configuração e do sistema init que você usa, pode haver vários outros passos entre os que eu mencionei. Atualmente, os sistemas init mais populares no Linux são o SysVInit (o tradicional), o Upstart e o Systemd. Você pode encontrar mais detalhes sobre o processo de inicialização neste artigo da wikipedia .
Aqui está um exemplo simplificado da minha configuração do Grub. A parte importante para responder à sua pergunta é da segunda à última linha, há um 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
}
Em muitas configurações, o kernel monta /
no modo somente leitura e todas as outras opções são definidas como padrões. Em /etc/fstab
, você pode especificar os parâmetros do sistema de arquivos que seriam aplicados depois que o init os remontasse.