首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >系统在哪里确定暂存主机名?

系统在哪里确定暂存主机名?
EN

Unix & Linux用户
提问于 2016-05-20 21:03:49
回答 1查看 5.6K关注 0票数 9

在RHEL7.2中,systemd启动并确定主机的主机名。如果/etc/hostname不可用(即删除),并且/etc/machine-info不可用,并且内核没有配置该信息(即sysctl's kernel.hostname),那么systemd会为主机指定一个“临时”主机名。问题是:它从哪里决定这一点?

主机最初是这样命名的。然后我克隆了主机(它是一个VM)并删除了对该名称的所有引用。但是在启动过程中,很早,它就会这样设置。

如果我引导到rescuemode,我可以看到它很早就设置了主机名:

代码语言:javascript
复制
[    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...

在命令提示符下,它被设置为“临时”主机名:

代码语言:javascript
复制
# hostnamectl status
Transient hostname: badhostname.mydomain.com
...

可能不是systemd:我甚至在使用init=/bin/bash时遇到了这个问题,但是systemd正在initrd映像中运行。

  • 不是在食物里什么的。
  • 它不是由DHCP设置的,因为网络在引导时是禁用的。
  • 它不在文件系统中的任何位置:# find /( -path /sys -prune -o -path /proc -prune -o -path /run -prune ) -o -type f -exec grep -ilrF "${HOSTNAME}“{} +<若干.git files> <非根-ilrF的历史文件。

不知何故,内核或系统d正在确定旧主机名,并将其用作临时主机名,而我完全不知道如何!我做了一个find ... -exec grep,除了/var/log/dmesg,没有任何结果。我告诉你,系统一直困扰着我的主人!

编辑2:唯一一次我没有得到它是如果我启动到提供的救援initramfs。显然,生成的initramfs包含着肮脏的秘密!

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2016-05-20 22:38:02

得益于唐·克里斯蒂的洞察力,并通过消除的过程,我们得出结论,罪魁祸首是最初的形象。在构建映像时,dracut决定包含主机名的缓存版本(!?!)。

重新构建initrd/initram fs包含这里,但简而言之(因为亲爱的读者可能无法访问),请执行

代码语言:javascript
复制
dracut -f -v
票数 10
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/284544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档