run-init
é um executável binário, ele reside em / usr / lib / klibc / bin / run-init e no seu initramfs e é fornecido pelo pacote klibc-utils
no Ubuntu. Não é um script, então você não pode dar uma olhada diretamente nele, você pode verificar seu código fonte rodando apt source klibc-utils
ou navegando pelo repositório upstream em link .
Portanto, a função principal está em run-init.c , mas é apenas um wrapper para run_init
function, que mora aqui em runinitlib.c
run_init
faz muito trabalho:
- Salta para o novo sistema de arquivos raiz
- Verifica se este é o novo sistema de arquivos raiz
- Verifica se está no initramfs
- Limpa todo o diretório (por que desperdiçar a RAM?)
- Monta o novo sistema de arquivos raiz
- e executa o init no novo sistema de arquivos raiz
Eu acredito que seria muito complicado fazer todo esse trabalho por um script, por causa das dependências, mas o arquivo executável binário pode facilitar bastante.