Inicializa após 14.04 instalação falhar devido a falta / tmp

2

Temos uma instalação para toda a instituição do Ubuntu (anteriormente 12.04) que é instalada a partir da rede e usa uma configuração personalizada do instalador para selecionar os pacotes necessários e configurar a autenticação LDAP. Além disso, é um Ubuntu normal.

Agora estamos tentando configurar este procedimento de instalação para o 14.04. Podemos instalar com êxito a nossa configuração a partir da rede, mas a primeira inicialização falha com a mensagem de que /tmp não está disponível. A máquina não responde a nenhum pressionamento de tecla naquele momento (portanto, não posso Ignorar ou fazer a recuperação Manual). O processo de inicialização também é extremamente lento (mais de um minuto até que a mensagem sobre / tmp seja mostrada).

Eu encontrei um trabalho que ajuda. Após a instalação, preciso inicializar no modo de recuperação uma vez. No menu de recuperação, preciso selecionar network (que monta partições e configura a rede) e, em seguida, resume . Agora o sistema inicializa bem, e qualquer inicialização subseqüente (também sem modo de recuperação) é boa também. Portanto, nenhuma correção manual foi feita, apenas uma inicialização "especial" uma vez.

Se eu pular a etapa network no menu de recuperação e ir direto para resume , isso não funcionará. Se eu reiniciar imediatamente após a etapa network (sem ir para resume ), também não funcionará.

Eu fiz isso manualmente uma vez e inseri um shell de raiz no menu de recuperação, tudo parecia bem naquele momento (antes e depois de executar as network etapas).

Eu diferei /etc e /var antes e depois de executar a etapa network , e não houve grandes diferenças (apenas concessões de DHCP e logs em /var como esperado).

Agora, minha pergunta é: o que acontece durante essa inicialização diferente de uma inicialização normal? Eu acho que, na primeira inicialização, há alguns deveres de instalação restantes, e estes de alguma forma não funcionam em uma inicialização normal, mas o que eles poderiam ser? Talvez a execução manual da etapa network do menu de recuperação altere a ordem de algumas coisas e resolva o problema?

Posso corrigir esses problemas no final da instalação antes da primeira inicialização (de qualquer forma, executaremos um script nesse estágio) para que tudo funcione?

Como posso depurar esses problemas e fornecer mais informações para você ajudar? Qual arquivo pode mudar durante a inicialização e pode ser interessante? Posso reproduzir tanto o problema quanto a solução alternativa, para que eu possa fornecer o máximo de informações necessárias.

Nossos ajustes em todo o site afetam apenas a autenticação LDAP e os diretórios iniciais do NFS, não o processo de inicialização ou o particionamento. Durante a instalação, uma partição raiz (ext4) é criada e uma partição swap, sem mais partições. Esta é uma inicialização herdada (sem UEFI).

Editar: depurei um pouco mais. Após a instalação, preciso executar as seguintes etapas uma vez para:

  1. inicialize no modo de recuperação e inicie um shell de raiz
  2. executar mountall
  3. executar ifup -a

Depois disso, tudo funciona bem. Todas as três etapas levam muito mais tempo do que o esperado (cerca de um minuto cada). Depois de terminar, a inicialização leva apenas alguns segundos (a máquina tem um SSD).

    
por Philipp Wendler 28.04.2014 / 15:55

1 resposta

0

Após um exame cuidadoso das diferenças entre os diretórios /etc em um sistema funcionando e quebrado, eu encontrei a solução.

O problema é uma linha nss_initgroups_ignoreusers ausente em /etc/ldap.conf . Esta linha lista todos os usuários locais e impede que o sistema acesse o diretório LDAP ao procurar esses usuários. Esta linha é criada automaticamente em cada inicialização por /usr/sbin/nssldap-update-ignoreusers , mas com o meu método de instalação estava faltando na primeira inicialização. Portanto, durante essa primeira inicialização, o sistema tentava pesquisar informações do usuário do LDAP antes que a conexão de rede fosse ativada. Claro que isso falhou.

Agora adicionei uma chamada para /usr/sbin/nssldap-update-ignoreusers ao nosso script que é executado entre a instalação e a primeira inicialização, e agora tudo funciona bem.

    
por Philipp Wendler 30.04.2014 / 17:40