No RHEL 7.2, systemd
é inicializado e determina o nome do host do host. Se /etc/hostname
estiver indisponível (ou seja, removida), e /etc/machine-info
não puder ser usado e o kernel não estiver configurado com essa informação (ou seja, sysctl
kernel.hostname
), systemd
atribuirá um nome de host "transitório" para o host. A questão é: de onde isso determina isso?
O host foi originalmente nomeado assim. Eu então clonei o host (é uma VM) e limpei todas as referências a esse nome. Mas então, durante o processo de inicialização, muito cedo, fica definido dessa maneira.
Se eu inicializar em rescuemode
, posso ver que ele define o nome do host muito cedo:
[ 0.456076] systemd[1]: systemd 208 running in system mode. (+PAM +LIBWRAP +AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +AC
L +XZ)
[ 0.456664] systemd[1]: Detected virtualization 'kvm'.
[ 0.456955] systemd[1]: Running in initial RAM disk.
[ 0.458496] systemd[1]: Set hostname to <badhostname.example.com>.
[ 0.475394] systemd[1]: Expecting device dev-mapper-vgroot\x2dlvroot.device...
No prompt de comando, ele é definido como um nome de host "transitório":
# hostnamectl status
Transient hostname: badhostname.mydomain.com
...
Pode ser que não seja systemd
: eu até recebo esse problema quando uso init=/bin/bash
, mas o systemd está em execução na imagem initrd.
- Não está definido em grub ou qualquer coisa.
- Não é definido pelo DHCP, pois a rede está desativada durante a inicialização.
-
Não está em nenhum lugar no sistema de arquivos:
# find / \( -path /sys -prune -o -path /proc -prune -o -path /run -prune \) -o -type f -exec grep -ilrF "${HOSTNAME}" {} +
<some .git files>
<history files of non-root user>
De alguma forma, o kernel ou o systemd está determinando o nome do host antigo e o usando como um transiente, e eu estou com uma perda completa de como! . Eu fiz um find ... -exec grep
sem resultados, exceto /var/log/dmesg
. Eu estou dizendo a você, systemd assombrou meu anfitrião!
EDIT 2: A única vez que eu não entendi é se eu inicializo no initramfs de resgate fornecido. Aparentemente, o initramfs gerado contém segredos sujos!