Logging% pre durante o kickstart - logfile não existe após o boot

2

Estou executando o kickstart em vários sistemas EL6 e desejo registrar as ações tomadas na minha seção %pre .

Eu sei que posso registrar a seção %post pelas dicas fornecidas por centos.org: Dicas e truques para anaconda e kickstart usando um destes dois métodos:

%post --log=/root/my-post-log
echo 'Hello, World!'

Ou:

%post
exec < /dev/tty3 > /dev/tty3
chvt 3
echo
echo "################################"
echo "# Running Post Configuration   #"
echo "################################"
(
echo 'Hello, World!'
) 2>&1 | /usr/bin/tee /var/log/post_install.log
chvt 1

No entanto, não consigo fazer isso funcionar com a seção %pre . Aqui está o que estou usando:

%pre --log=/var/log/my-pre-log
echo 'Hello, World!'

Quando finalmente tiver permissão para usar os Consoles Virtuais , o arquivo de log não será encontrado em nenhum lugar no sistema.

Isso funciona bem para a seção %post , porque no momento em que %post é executado, o Anaconda muda para os novos discos usando chroot - /var/log/ realmente existe no novo sistema e, portanto, o arquivo de log existirá depois de uma reinicialização.

O problema de fazer isso com a seção %pre é que os únicos sistemas de arquivos disponíveis no momento são o sistema de arquivos somente de memória. Se eu gravar o arquivo em /tmp/ , /root/pre_install.log ou /var/log , o sistema de arquivos desaparecerá assim que eu desligar a máquina.

O shell de depuração está indisponível até a metade da instalação , o que dificulta a depuração.

    
por Stefan Lasiewski 06.06.2013 / 01:17

1 resposta

2

Eu tive exatamente a mesma necessidade que você para capturar o log %pre para análise posterior. Você está certo, quando você estiver em %post , o Anaconda já fez chroot para o sistema de arquivos recém-construído, por isso não é possível acessar o %pre log. Você pode executar %post com --nochroot , mas a IMO torna os caminhos em %post uma dor.

Eu consegui o que queria usando %include dentro da seção %post . Primeiro, registre sua %pre output:

%pre --log /tmp/pre-install.log
echo "Starting Kickstart Pre-Installation..."

Em seguida, %include the %pre log durante %post , enviando para um arquivo com um documento bash aqui:

%post --log /root/post-install.log
cat >> /root/pre-install.log << "EOF"
%include /tmp/pre-install.log
EOF

Eu acredito que isso funciona porque a seção %pre é avaliada pelo Anaconda primeiro, o que permite que você crie arquivos a serem usados por %include ... então o Anaconda avalia o resto do arquivo, substituindo cada %include por o arquivo nomeado. Eu também estou capturando o log do Anaconda da mesma forma, apenas substitui pre-install por anaconda nas duas linhas de seção %post .

    
por 01.05.2014 / 08:36