Ubuntu 从哪里获取默认主机名?

Ubuntu 从哪里获取默认主机名?

我新安装的 Ubuntu 显示lele-ThinkPad-X230为其主机名。我下载了 debian-installer 和 ubuntu-installer (ubiquity) 来查看代码,但没有找到任何有用的信息。这是 DHCP 还是某种硬件数据库?

lele-ThinkPad-X230,用破折号分隔:第一个lele是我的用户名,其余的是机器名称(联想)。那么当我没有输入主机名时,安装程​​序如何获取这些信息?

答案1

Debian 和 Ubuntu 安装程序都通过 DHCP 获取其主机名,因为大多数 DHCP 服务器都会随租约提供该主机名。

例如,在我的 Windows 笔记本电脑上运行 Ubuntu GUI 安装程序会建议使用主机名“Ed-PC”,因为这是我在 Windows 下分配的名称,也是我在请求 DHCP 租约时分配的名称。

根据 Debian 安装文档https://www.debian.org/releases/stable/amd64/ch03s03.html.en#idp52296784

如果您所连接的网络使用 DHCP(动态主机配置协议)来配置网络设置,则您不需要此信息,因为 DHCP 服务器将在安装过程中将其直接提供给您的计算机。

答案2

当我使用 Ubuntu 时我相信它使用lele-laptop

有一个名为 的 Debian 软件包laptop-detect。它是“是/否”测试,然后用于笔记本电脑的额外设置。Ubuntu 会将其用作“-laptop”后缀。

laptop-detect 的手册页引用了dmidecode. dmidecode报告了机器的命名信息,如“Thinkpad X230”(大概有足够的信息来判断它是否是笔记本电脑)。它不需要庞大的硬件数据库,它只是依赖于供应商在固件中提供的有用信息(呵呵)。

将硬件名称放入主机名可能是一个合乎逻辑的扩展。

我认为我已经看到一些 Windows 版本进行了类似的设置,但只是使用供应商(例如联想)......尽管据我所知,它可能是供应商对操作系统的修改。

DHCP 机制是可行的 - 如果您看到的内容与笔记本电脑的先前主机名完全匹配。但这似乎不太可能,Ubuntu 必须明确实现它 - 我看不出为什么他们会这么做。

答案3

您可以通过编辑文件 /etc/hostname 来设置系统主机名。您还应该编辑 /etc/hosts 并更新它(如果它出现在那里)。

答案4

hostname该包负责创建/etc/init/hostname.conf文件,进而设置系统主机名。该包已预先安装在您的 Ubuntu 操作系统上(默认)。

$ dpkg -S /etc/init/hostname.conf
hostname: /etc/init/hostname.conf

$ cat /etc/init/hostname.conf
# This task is run on startup to set the system hostname from /etc/hostname,
# falling back to "localhost" if that file is not readable or is empty and
# no hostname has yet been set.

description     "set system hostname"

start on startup

task
exec hostname -b -F /etc/hostname

man hostname

 When  called  without  any  arguments, the program displays the current
   names.

 hostname will print the name of the system as returned by the  gethost‐
   name(2) function.

相关内容