这可能与将 18.04 LTS 作为虚拟机(主机是 Win 2016 DC)运行有关,但我不知道如何。我已经尝试了我知道的所有更改主机名的方法,但它总是恢复为我在重新启动时构建机器时输入的主机名。我尝试了以下方法:
我目前没有此服务器的 DNS。
例子:
XXXX@iwrxmail:~# hostnamectl
Static hostname: iwrxmail
Pretty hostname: Interwrx Ubuntu Mail Server
Transient hostname: ctl
Icon name: computer-vm
Chassis: vm
Machine ID: 01ef0d836d2c4945b51a4fab8e506381
Boot ID: e6608fe238d843f883cde52af7631a79
Virtualization: microsoft
Operating System: Ubuntu 18.04 LTS
Kernel: Linux 4.15.0-20-generic
Architecture: x86-64
XXXX@iwrxmail:~# hostnamectl set-hostname test
XXXX@iwrxmail:~# hostnamectl
Static hostname: test
Icon name: computer-vm
Chassis: vm
Machine ID: 01ef0d836d2c4945b51a4fab8e506381
Boot ID: e6608fe238d843f883cde52af7631a79
Virtualization: microsoft
Operating System: Ubuntu 18.04 LTS
Kernel: Linux 4.15.0-20-generic
Architecture: x86-64
root@iwrxmail:~# cat /etc/hostname
test
root@iwrxmail:~# cat /etc/hosts
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
However on reboot I get this again ....
XXXX@iwrxmail:~# hostnamectl
Static hostname: iwrxmail
Icon name: computer-vm
Chassis: vm
Machine ID: 01ef0d836d2c4945b51a4fab8e506381
Boot ID: 25a00676b22048eb8d43492c9de4f147
Virtualization: microsoft
Operating System: Ubuntu 18.04 LTS
Kernel: Linux 4.15.0-20-generic
Architecture: x86-64
Run Code Online (Sandbox Code Playgroud)
我在 18.04 的测试版中遇到了这个问题,但我想我会等待发布副本。我还认为这可能是因为我克隆了 VM 的事实,但这是一个全新的版本,使用刚刚发布的发行版从头开始构建。
我错过了什么?
提前致谢。
小智 66
首先编辑/etc/cloud/cloud.cfg并将参数“preserve_hostname”从“false”设置为“true”,然后编辑/etc/hostname。
Pie*_*erz 25
主机名正在被重置cloud-init
,可以按如下方式禁用(之后您可以以正常方式设置主机名,例如使用hostnamectl
):
sudo touch /etc/cloud/cloud-init.disabled
Run Code Online (Sandbox Code Playgroud)
或者您可以使用 cloud-init 并创建/修改user-data
文件(通常位于:),/var/lib/cloud/seed/nocloud-net/user-data
以便将hostname:
条目设置为所需的主机名(前提preserve_hostname:
是未设置)。首先,您需要清理现有配置:
sudo cloud-init clean
Run Code Online (Sandbox Code Playgroud)
然后从新的/修改过的用户数据文件中重新初始化 cloud-init 的配置:
sudo cloud-init init
Run Code Online (Sandbox Code Playgroud)
然后重启。有关更多详细信息,请参阅cloud-init 文档。
对于像我这样的“懒人”,复制粘贴解决方案:)
sudo sed -i '/preserve_hostname: false/c\preserve_hostname: true' /etc/cloud/cloud.cfg && sudo hostnamectl set-hostname ReplaceThisWithTheHostnamePreferred
Run Code Online (Sandbox Code Playgroud)
第一个命令允许操作系统记住新的主机名。
第二部分(在 && 之后)只有在第一部分成功完成时才会运行,并将主机名设置为所需的值。
问候!升
小智 6
1- 编辑vi /etc/cloud/cloud.cfg
和更改
preserve_hostname: false
Run Code Online (Sandbox Code Playgroud)
到
preserve_hostname: true
Run Code Online (Sandbox Code Playgroud)
保存并退出。
2- 编辑vi /etc/hostname
并替换此文件中的新名称,或者您可以使用以下命令执行此步骤。
hostnamectl set-hostname NEWNAME
Run Code Online (Sandbox Code Playgroud)
好好享受 :)
小智 1
我遇到了同样的问题,发现删除云包后,您可以更改主机名。
apt remove cloud-init cloud-initramfs-copymods cloud-initramfs-dyn-netconf
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
41375 次 |
最近记录: |