Parece não haver maneira de registrar esses dados em um arquivo. Para o processo de inicialização, existe o bootlogdpacote que cria o arquivo /var/log/boot, mas nada para o processo de desligamento / reinicialização. Tanto quanto posso ver, também não há como fazer logon rsyslog, e mesmo que houvesse, há mensagens impressas após a rsysloginterrupção. Parte do meu processo de desligamento / reinicialização é remontar os rootfs somente leitura e montar todo o resto, depois que esse registro em um arquivo que ainda estará lá na próxima inicialização é praticamente impossível.
A maneira mais fácil de ver as mensagens é editar os scripts /etc/init.d/halte / ou /etc/init.d/rebootpausar antes do halt/ real reboot. Para o haltscript, execute o comando sudoedit /etc/init.d/halt(ou use um editor de GUI) e procure a linha que faz a parada real. Para mim, esta é a linha:
halt -d -f $netdown $poweroff $hddown
Caso contrário, deve estar no final da do_stopfunção e a única linha que chama o haltcomando. Depois de encontrar a linha, basta inserir uma nova linha acima com o seguinte:
read -p "Press enter to halt" reply
Salve o arquivo e saia. Agora, quando você desligar, o sistema fará uma pausa até você pressionar enter (ou CTRL-C, CTRL-D, etc). Você pode ler as mensagens impressas na tela. Se houver mais de uma única tela de texto, você poderá ver a rolagem do terminal pressionando Shift+PgUp. Se isso ainda não for suficiente, existem maneiras de aumentar o tamanho do buffer de rolagem (talvez uma pergunta diferente).
Para fazer o mesmo quando o sistema reiniciar, você precisará editar o /etc/init.d/rebootarquivo. O comando usado aqui é obviamente rebootoposto halte deve estar novamente no final da do_stopfunção. Para mim, a linha é:
reboot -d -f -i
Novamente, basta inserir o seguinte em uma nova linha acima:
read -p "Press enter to reboot" reply
Observe também que esses arquivos estão listados como arquivos de configuração do initscriptspacote. Essas edições não serão derrotadas por padrão quando os pacotes forem atualizados, embora causem um conflito.
Uma solução mais completa seria usar o seguinte script:
#! /bin/sh
### BEGIN INIT INFO
# Provides: pause_hook
# Required-Start:
# Required-Stop: halt reboot
# Default-Start:
# Default-Stop: 0 6
# X-Stop-After: umountroot
# X-Interactive: true
# Short-Description: Pause before halt or reboot
# Description:
### END INIT INFO
do_stop () {
[ -r /etc/pause_hook.conf ] && . /etc/pause_hook.conf
[ "$PAUSE_HOOK_ENABLED" = true ] && read -p "Press enter to continue" reply
}
case "$1" in
start)
# No-op
;;
restart|reload|force-reload)
echo "Error: argument '$1' not supported" >&2
exit 3
;;
stop)
do_stop
;;
*)
echo "Usage: $0 start|stop" >&2
exit 3
;;
esac
Isso deve ser colocado /etc/init.d/pause_hooke pode ser ativado para ser executado no encerramento / reinicialização com o seguinte comando:
sudo update-rc.d pause_hook defaults
Para ativar o gancho real, crie os arquivos que /etc/pause_hook.confcontêm a linha:
PAUSE_HOOK_ENABLED=true
O processo de desligamento / reinicialização agora deve pausar antes da chamada do script haltou reboot, dando tempo para exibir as mensagens. Também pode ser facilmente desativado / reativado comentando / descomentando a linha de ativação /etc/pause_hook.conf. Também não haverá dpkgconflitos de conffile durante as atualizações dessa maneira.