ホスト名を変更したらGUIが起動しない・・・
Proxmox VEのインストール後や運用中に、hostnamectl コマンドなどでホスト名を変更した後、突然Web GUI(8006番ポート)にアクセスできなくなるトラブルに遭遇することがあります。(しました)
SSHでは接続できるものの、Proxmoxの管理画面が表示されず、サービスが起動していない状態です。この記事では、その原因と復旧手順をまとめました。
発生する現象とエラーログ
ホスト名を変更した後に再起動を行うと、以下の症状が発生します。
- Webブラウザで
https://IPアドレス:8006にアクセスしても接続できない。 - SSH接続は可能。
/etc/pve/ディレクトリの中身を確認すると空っぽになっている。
journalctl -xe コマンドなどでログを確認すると、以下のような pmxcfs(Proxmox Cluster File System) のクリティカルエラーが出力されています。
pmxcfs[1490]: [main] crit: Unable to resolve node name 'proxmox-new-name' to a non-loopback IP address
systemd[1]: pve-cluster.service: Failed with result 'exit-code'.
原因:hostsファイルの不整合
この問題の根本原因は、Proxmox VEの厳密な名前解決要件にあります。
Linux標準の hostnamectl set-hostname コマンドは、システムのホスト名設定(/etc/hostname)は変更しますが、/etc/hosts ファイル内のIPアドレスとの紐付けまでは自動で修正しません。
Proxmoxのクラスタファイルシステム(pmxcfs)は、「自身のホスト名が、ループバック(127.0.0.1等)以外の固定IPアドレスに解決されること」 を起動の絶対条件としています。そのため、/etc/hosts に矛盾があると、データ保護のためにサービス起動を停止してしまいます。
解決手順
/etc/hosts ファイルを手動で修正し、正しいIPアドレスとホスト名を紐付けることで解決します。
1. 現在のIPアドレスを確認
まず、サーバーの正しいIPアドレスを確認します。
ip a
# 例: 192.168.1.50 などが表示される
2. /etc/hosts を編集
エディタでhostsファイルを開きます。
nano /etc/hosts
ファイル内を確認し、以下のように修正してください。特に 127.0.1.1 の行にホスト名が記述されている場合は、ProxmoxではNG となるため削除または修正が必要です。
❌ 修正前(起動しない例)
Debian等のデフォルトでは以下のようになっていることが多く、これが原因となります。
127.0.0.1 localhost
127.0.1.1 new-hostname <-- ★ここが原因!ループバックに紐付いている
✅ 修正後(正しい例)
自身の固定IPアドレスに対してホスト名を記述します。環境はご自身の環境に合わせてIPとかホスト名を正しい状態ン位変更してください。
127.0.0.1 localhost
# 127.0.1.1 の行は削除するかコメントアウト
# 自身のIPアドレス ホスト名(FQDN) ホスト名(短縮) pvelocalhost の順で記述
192.168.1.50 proxmox-02.domain.local proxmox-02 pvelocalhost
# IPv6設定(そのままでOK)
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
3. 反映と再起動
ファイルを保存(nanoの場合は Ctrl+O -> Enter -> Ctrl+X)した後、以下のコマンドでサービスを再起動します。
systemctl restart pve-cluster
systemctl restart pveproxy
これでWeb GUIにアクセスできるようになります。念のため、OSごと再起動(reboot)して正常に立ち上がるか確認することをおすすめします。
補足:VMやコンテナが消えた場合
ホスト名が変わったことで、Proxmoxがこのサーバーを「新しい別のノード」として認識してしまい、Web GUI上でVMやコンテナが1つも表示されなくなることがあります。
その場合は、古いホスト名用のディレクトリに残っている設定ファイルを、新しいホスト名のディレクトリへ移動させる必要があります。
# 設定ファイルの場所を確認
ls /etc/pve/nodes/
# 設定ファイルを移動 (old-node -> new-node)
mv /etc/pve/nodes/古いホスト名/qemu-server/*.conf /etc/pve/nodes/新しいホスト名/qemu-server/
mv /etc/pve/nodes/古いホスト名/lxc/*.conf /etc/pve/nodes/新しいホスト名/lxc/
