在 Fedora 25 上更改 systemd 的主机名

在 Fedora 25 上更改 systemd 的主机名

我换了新的主板、CPU,并重新命名了一台机器。旧机器名称为bulldozer,新机器名称为skylake。我用了hostnamectrl --static根据如何在 Fedora 21 中永久更改主机名因为机器是 Fedora 25。

当机器启动时,systemd仍然使用旧名称:

skylake:~$ sudo dmesg | grep bulldozer
[    1.085387] systemd[1]: Set hostname to <bulldozer>.
skylake:~$ hostname
skylake

根据honamectrl手册页,听起来--static应该这样做:“...用于在启动时初始化内核主机名的静态主机名...”

Grepping/etc没有显示任何旧名称的匹配结果:

skylake:~$ sudo grep -R bulldozer /etc/ 2>/dev/null
skylake:~$

我也尝试过/sbin/sysctl -q -w kernel.hostname=skylake根据正确设置主机名 - Amazon EC2 上的 Fedora 20。但它也没有奏效。

如何更改 的主机名systemd

答案1

根据本文,您应该运行hostnamectl set-hostname namewhere nameis 您想要的主机名。我认为你应该以 root 身份运行它。

答案2

这是一个糟糕的答案,但它是为了完整性而提供的。今天更新了内核。旧的 Fedora 内核是4.9.13-200.fc25.x86_64.新内核是4.9.13-201.fc25.x86_64.

内核更新后,我手动删除旧内核的/boot使用rm。这是我在 Linux 上的标准过程(我总是执行它来删除不需要的东西)。在这种情况下,我跑了:

su -
cd /boot
rm -rf *4.9.13-200*
rm -rf .*4.9.13-200*

手动删除后,我重新生成 Grub 菜单,然后重新启动。这也是我在 Linux 上的标准流程。

grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

重新启动后,旧名称不再存在:

$ dmesg | egrep -i '(bulldozer|skylake)'
[  0.065941] Performance Events: PEBS fmt3+, Skylake events, 32-deep LBR, full-width counters, Intel PMU driver.
[  1.096957] systemd[1]: Set hostname to <skylake>.

所以,有些东西影响了 systemd 使用的主机名,但我不确定它是什么。

我之前尝试过再生grub.cfg,所以我不相信这是答案。我猜测某个包触发了修正,重新启动后我观察到事情正如预期的那样。

答案3

当前版本的 systemd 中已弃用此方法,但我将其保留在这里作为一些评论的参考。

最快的方法是sudo echo -e "bulldozer" > /etc/hostname 重新启动。

Systemd 的网络堆栈应该会选择它并在启动时应用它。

您还可以使用文本编辑器并/etc/hostname 手动创建/编辑。 (我推荐nano,但是你需要先在fedora上手动安装)

看来今天Systemdhostnamectl应该是实现这一目标的方法。

相关内容