我有许多 Hardy 主机,在安装过程中,它们的 /etc/hosts 中似乎放置了无效的主机名。
在新建的、未修改的主机上,/etc/hosts 中有一行内容如下
127.0.1.1 hostname.subdomain.domain.subdomain.domain hostname.subdomain.domain
该列表中的第一个主机名无效。
hostname -f
当程序运行或等效运行时,这会导致问题并获取“hostname.subdomain.domain.subdomain.domain”,这是一个无效的、无法解析的主机名。
uname -n
返回“主机名.子域.域”
在 Lucid 主机上,条目如下所示:
127.0.1.1 hostname.subdomain.domain hostname
这正是我所期待的,也是我希望发生的事情。
我们的 Hardy 和 Lucid 机器都是通过 pxeboot 和 pressed 文件构建的。我扫描了我们的预置配置,以查找:
- 任何看起来可能会改变主机名的东西
- 任何可能改变 /etc/hosts 的内容
我什么也没找到。
我可以通过 puppet 大规模操作 /etc/hosts,但我更希望了解问题的原因并从源头上解决问题。
答案1
我想到两个可以看看的地方:
如果这些是使用 casper live cd 环境的客户端安装,听起来这像是在该环境中设置的。获取 cd 或 iso 映像,获取 casper/initrd.lz 文件并解压缩:
lzma -dc -S .lz initrd.lz | cpio -imvd --no-absolute-filenames
大多数配置都在 scripts/casper-bottom 中设置。您可能会在那里找到线索。
有关如何操作 CD 的更多详细信息请参见此处:
https://help.ubuntu.com/community/LiveCDCustomization
如果没有,我接下来会研究 Ubiquity 安装程序,我认为如果您启动 Live CD,您可以查看文件和代码。如果在安装时完成此操作,则 Ubiquity 就是完成此操作的地方。