A razão para esse comportamento é que o identificador da máquina em /etc/machine-id
muda a cada reinicialização. Isso inicia um novo diretório de log sob /var/log/journal
. Registros antigos podem ser visualizados com o seguinte comando:
journalctl --merge
Ainda estou investigando a causa da mudança do ID da máquina. O suporte do Linode está ciente do problema. Eu atualizarei esta resposta quando souber mais.
ATUALIZAÇÃO - A causa raiz do problema é simplesmente que o Linode zerou o conteúdo de /etc/machine-id
de suas imagens do sistema de arquivos. O resultado é a seguinte cadeia de eventos:
- O kernel carrega e monta o sistema de arquivos raiz somente leitura
- systemd, executado a partir do ramdisk inicial, tenta ler
/etc/machine-id
do sistema de arquivos raiz (o arquivo existe, mas possui zero de conteúdo) - O systemd não pode ler o identificador da máquina, mas também não pode escrever um novo, pois o sistema de arquivos raiz é montado como somente leitura
- montagens systemd
tmpfs
on/etc/machine-id
(Sim, aparentemente você pode montar um sistema de arquivos em um arquivo )
O - systemd invoca o systemd-machine-id-setup que gera um ID de máquina aleatório e armazena-o no agora volátil
/etc/machine-id
- O sistema inicializa com um identificador de máquina volátil
Você pode verificar se o seu sistema tem um ID de máquina volátil, em vez de permanente, observando a saída de mount
:
$ mount | grep machine-id
tmpfs on /etc/machine-id type tmpfs (ro,mode=755)
O problema é fácil de corrigir: basta escrever um ID de máquina persistente no real /etc/machine-id
. No entanto, é mais fácil falar do que fazer, pois não é possível desmontar tmpfs
de /etc/machine-id
em um sistema em execução. Estes são os passos que eu dei para consertá-lo no Linode:
-
cp /etc/machine-id /etc/machine-id.copy
, em seguida, desligue o sistema - No Linode Manager, vá até a guia Rescue e inicialize no modo de recuperação
- Acesse o sistema por meio do console Lish
- Monte o sistema de arquivos raiz:
mount /dev/xvda /mnt
- Mova a cópia criada no passo 1 para o ID da máquina real:
mv /etc/machine-id.copy /etc/machine-id
- Reinicializar
Tais são as conseqüências de um ID de máquina ausente na inicialização. Espero que isso ajude um transeunte aleatório no futuro.