Meu sistema não inicializa

0

Eu tenho um sistema gentoo, que usa o systemd, um kernel personalizado, um initramfs personalizado e um script de init personalizado. Este sistema estava funcionando. Agora isso não acontece. Claramente, algo deve ter mudado, mas não tenho ideia do que.

Quando o script init inicia o sistema init ( exec switch_root /mnt/root /var/lib/systemd/systemd ), recebo o seguinte erro:

Welcome to Gentoo/Linux!

[!!!!!!] Failed to isolate default target, freezing.

O que esse erro significa? O que posso fazer para resolvê-lo?

    
por Ethan Reesor 14.08.2018 / 04:19

2 respostas

1

Para entender por que meu sistema não inicializaria, segui a sugestão do @CodyCreager, principalmente. Eu adicionei --log-level=debug e --log-target=console a exec switch_root ... , o que teve o efeito pretendido. Eu não sei como conseguir o mesmo efeito que adicionar systemd.journald.forward_to_console=1 aos argumentos do kernel. Mas eu tenho informações suficientes sem fazer isso.

Até onde meu sistema não está inicializando ... isso não ajudaria ninguém. Eu estou fazendo coisas personalizadas no meu initramfs, e coisas personalizadas com a minha configuração do sistema, e systemd não está feliz com isso. Especificamente, estou usando um sistema de arquivos criptografado e estou tendo problemas para obter o systemd para descobrir isso.

    
por 15.08.2018 / 04:10
1

No jargão systemd, isolar uma unidade é uma forma um pouco especial de iniciar ou ativá-la , que pode ser maioritariamente (embora eu voltar a isso) ser considerado idêntico à ativação. O systemd no bootstrap isola um dos três alvos, dependendo de o sistema estar sendo iniciado em emergência, salvamento ou modo normal. Os dois primeiros são especificados por -b e -s na linha de comando do kernel que são passados para o primeiro processo e isolam emergency.target e rescue.target , respectivamente. O modo normal isola a default.target unit, que é um alias (definida com systemctl set-default ) para algum outro destino concreto, como graphical.target ou multi-user.target . Uma falha em isolar a primeira unidade (a partir da qual todo o resto flui) é um erro bastante drástico e, quando isso acontece, o systemd emite uma mensagem e congela.

É incomum que default.target não seja isolável, e sugere algum erro de configuração grave (como a pessoa que mascara sysinit.target ) ou uma configuração altamente incomum (como uma violação de uma das premissas do sistema, como /usr e /etc sendo o mesmo sistema de arquivos ou, pelo menos, montado junto com / ). Diagnosticar isso envolve ainda os modos de emergência e salvamento mencionados anteriormente. Basta inicializar em esses modos em vez do modo normal e, em seguida, manualmente iniciar a default.target unidade, observando o que acontece, quais erros ocorrem e o que está nos registros . É aqui que a diferença entre isolamento e ativação é importante. É preciso não isolar default.target , pois isso desliga a sessão de login do modo de emergência / salvamento como parte do isolamento da unidade. É preciso iniciar .

Eu pareço ter um parágrafo de reposição.

Leitura adicional

por 15.08.2018 / 19:17