18.04 LTSでの再起動後にホスト名が古い名前に戻る


32

これは、18.04 LTSを仮想マシンとして実行することに関連している可能性があります(ホストはWin 2016 DCです)が、どうすればよいかわかりません。私は知っているあらゆる方法でホスト名を変更しようとしましたが、再起動時にマシンを構築したときに入力したホスト名に常に戻ります。私は次を試しました:

  1. hostnamectl set-hostname xxx。
  2. ホスト名を直接編集します。
  3. hostnamectlに--staticを追加します。
  4. hostsファイルを編集し、目的のホスト名を追加します。
  5. 再起動する前に古いホスト名への参照をドライブで検索しています。
  6. インターネット上で言及する価値のない他のいくつかの奇妙な提案。

現在、このサーバーの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のベータ版でこの問題が発生していましたが、リリースコピーを待つことになると考えました。また、VMのクローンを作成したという事実に問題があると考えましたが、これはリリースされたばかりのディストリビューションを使用してゼロから構築されたまったく新しいバージョンでした。

私は何が欠けていますか?

前もって感謝します。


回答:


49

最初に/etc/cloud/cloud.cfgを編集し、パラメーター「preserve_hostname」を「false」から「true」に設定してから、/ etc / hostnameを編集します。


4
魔法のように機能します。私はその上のコメント行からそれを得たことはなかったでしょう: "#これはset + updateホスト名モジュールが動作しないようにします(trueの場合)"。どうもありがとう、ウェブ上にはたくさんの間違った方法があります。
アンディワイルド

18

ホスト名はリセットされcloud-initており、次のように無効にすることができます(その後、たとえばを使用して通常の方法でホスト名を設定できますhostnamectl)。

sudo touch /etc/cloud/cloud-init.disabled

または、cloud-initを使用してuser-dataファイルを作成/変更し(通常は次の場所にあります/var/lib/cloud/seed/nocloud-net/user-datahostname:、目的のホスト名にエントリが設定されるようにします(設定されてpreserve_hostname:いない場合)。まず、既存の構成を消去する必要があります。

sudo cloud-init clean

そして、新規/変更されたユーザーデータファイルからcloud-initの構成を再初期化します。

sudo cloud-init init

次に再起動します。詳細については、cloud-initのドキュメントを参照してください。


3
実行には細心の注意を払うcloud-init cleancloud-init init、/ etc / netplan / yamlファイルを書き換えることができます。
マイケルD.

3
また、有害な可能性があるSSHホストキーも更新します(クライアントは、再接続する前に新しいホストキーを受け入れる必要があります)
Per Lundberg

5

私のような「怠け者」の場合、コピー&ペーストのソリューション:)

sudo sed -i '/preserve_hostname: false/c\preserve_hostname: true' /etc/cloud/cloud.cfg && sudo hostnamectl set-hostname ReplaceThisWithTheHostnamePreferred

最初のコマンドにより、新しいホスト名がOSによって記憶されます。

2番目の部分(&&の後)は、最初の部分が正常に終了した場合にのみ実行され、ホスト名を目的の値に設定します。

よろしく!L


4

1-編集vi /etc/cloud/cloud.cfgおよび変更

preserve_hostname: false

preserve_hostname: true

保存して終了。

2- vi /etc/hostnameこのファイルの新しい名前を編集して置換するか、次のコマンドでこの手順を実行できます。

hostnamectl set-hostname NEWNAME

楽しめ :)


0

同じ問題があり、クラウドパッケージを削除した後、ホスト名を変更できることがわかりました。

apt remove cloud-init cloud-initramfs-copymods cloud-initramfs-dyn-netconf

1
これはうまくいくと確信していますが、上記の答えを好むと思います。応答していただきありがとうございます
アンディワイルド

ubuntu-serverパッケージを使用している場合は、このソリューションを控えることをお勧めします。どうして?上記のパッケージはその前提条件であるためです。ubuntu-serverパッケージの説明 'Description-en:Ubuntu Serverシステムこのパッケージは、Ubuntu Serverシステムのすべてのパッケージに依存しています。また、適切なアップグレードを保証するために使用されるため、削除しないことをお勧めします。
linux64kb

0

古いバージョンをどこかに残したくない場合は、でファイルを開き、次/var/lib/cloud/seed/nocloud-net/user-dataの行でホスト名を変更します。

hostname: cm-lc-nc

次に実行します:

cloud-init clean
cloud-init init

その後/etc/hostname、新しい値に設定され、再起動後も一貫性が維持されます。これにより、以前のホスト名のすべてのトレースが削除preserve_hostnameされ、何らかの理由でリセットまたは無視された場合でも、新しいホスト名は失われません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.