voltar ao initramfs no desligamento

3

Eu tenho meu próprio initramfs executando seu próprio script de inicialização. Depois de fazer algumas coisas, ele finalmente chama switch_root e executa o script de inicialização do sistema, que é montado em / mnt.
Agora eu quero voltar para o script de inicialização do initramfs quando o Linux é desligado (então o script de inicialização do linux sai)

Mas porque estou chamando exec switch_root /mnt /blah/init , o script termina quando o Linux é desligado. Mas eu quero fazer algumas coisas depois disso no meu initramfs, o que não é possível assim.

O que eu posso fazer é chroot /mnt em vez de switch_root ... , então quando o Linux é desligado, estou de volta dentro do script de inicialização. Mas isso tem o efeito colateral desagradável que alguns aplicativos como o netctl se recusam a trabalhar, porque são chamados de dentro de um sistema chrooted.

Então o que eu preciso é uma maneira de switch_root entrar no sistema e finalmente voltar ao initramfs.

    
por bricklore 10.07.2015 / 20:40

1 resposta

2

Você poderia pivot_root em vez de switch_root (o que exclui tudo!).

Se o seu sistema init não reclamar por não ser pid 1 , você pode estar pronto.

A solução alternativa é fazer com que seu sistema init seja legal o suficiente para pivot_root em um ... como você o chama? shutdownramfs? Isso não tem nada a ver com o initramfs, mas é o mesmo princípio que permitiria executar uma ação de desligamento ou outra.

Eu não acho que exista uma solução padrão, já que raramente seria necessário fazer algo no desligamento.

    
por 10.07.2015 / 20:52