Это может быть связано с выполнением 18.04 LTS как виртуальная машина (Хост является DC Win 2016), но я не могу понять это как. Я попробовал каждый метод, я знаю об изменить имя хоста, но это всегда возвращается к имени хоста, которое я ввел, когда я создал машину на перезагрузке. Я попробовал следующее:
У меня нет 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
У меня была эта проблема с бетой 18,04, но я полагал, что буду ожидать копии выпуска. Я также полагал, что это могла бы быть проблема с фактом, я клонировал VMs, но это было совершенно новой версией, созданной с нуля со справедливым выпущенным дистрибутивом.
Что я пропускаю?
Заранее спасибо.
Если Вы не довольны отъездом более старой версии где-нибудь, то просто открывают файл в /var/lib/cloud/seed/nocloud-net/user-data
и изменяют Ваше имя хоста в строке:
hostname: cm-lc-nc
Затем выполненный:
cloud-init clean
cloud-init init
Это затем установит /etc/hostname
на новое значение и останется последовательным через перезагрузки. Это удалит все трассировки предыдущего имени хоста и если preserve_hostname
или сбрасывается или игнорируется по некоторым причинам, Вы все еще не потеряете свое новое имя хоста.
Сначала отредактируйте/etc/cloud/cloud.cfg и установите параметр "preserve_hostname" от "лжи" до "истинного" и затем отредактируйте/etc/hostname.
Для "ленивых парней" как я, решение вставки копии :)
sudo sed -i '/preserve_hostname: false/c\preserve_hostname: true' /etc/cloud/cloud.cfg && sudo hostnamectl set-hostname ReplaceThisWithTheHostnamePreferred
Первая команда позволяет новому имени хоста помниться ОС.
Вторая часть (после &&) будет только работать, если первая часть закончилась успешно и установит имя хоста на требуемое значение.
С уважением! L
Я имел ту же проблему и нашел, что после удаления облачных пакетов можно изменить имя хоста.
apt remove cloud-init cloud-initramfs-copymods cloud-initramfs-dyn-netconf
Имя хоста сбрасывается cloud-init
который может или быть отключен следующим образом (после которого можно установить имя хоста нормальным способом, например, использованием hostnamectl
):
sudo touch /etc/cloud/cloud-init.disabled
Или можно использовать облако-init и создать/изменить user-data
файл (обычно находимый в: /var/lib/cloud/seed/nocloud-net/user-data
) так, чтобы hostname:
запись установлена на желаемое имя хоста (обеспеченный preserve_hostname:
не установлен). Во-первых необходимо будет убрать существующую конфигурацию:
sudo cloud-init clean
И затем повторно инициализируйте облачную-init's конфигурацию из нового/измененного пользовательского файла данных:
sudo cloud-init init
Затем перезагрузка. Дополнительную информацию см. в облачных-init документах.
1-Редактирований vi /etc/cloud/cloud.cfg
и изменение
preserve_hostname: false
Кому:
preserve_hostname: true
Сохраните и выйдите.
2-Редактирований vi /etc/hostname
и замените свое новое имя в этом файле, или можно сделать этот шаг с командой рева.
hostnamectl set-hostname NEWNAME
Наслаждайтесь им :)