December 20, 2023

Proxmox VEをBookworm(Debian 12)へインストール

この文書について

VMware vSphere ESXiの代わりに、無償で便利に使える仮想化ソフトウェアのProxmox VE。
ただ、bare-metal ISO installerを使うと、インストール先のストレージを全消しされてしまう。
消されたくない、パーティションをカスタマイズしたい、といった場合の参考にどうぞ。

公式手順はこちら

自宅とか少人数のネットワークで使うことを想定して書いています。

用意するもの

最小セットアップしたDebian 12 Bookworm (amd64)。
(Proxmox VEはarm64には対応していない)
つまり「標準システムユーティリティ」と「SSHサーバー」の2つだけチェックを入れてセットアップしたヤツ。
デスクトップ環境は要らない。
最小セットアップではsudoすら入っていないので su - でrootになってインストールし、自分のユーザーをsudoグループに追加しておく。

$ su -
# apt install sudo
# usermod -aG sudo 自分のユーザー名

IPアドレスは静的IPアドレスを設定して固定する。
Proxmox VEはブリッジインターフェースを使うのでパッケージ追加。

sudo apt install bridge-utils

セットアップ完了後にWeb GUIから設定してもいいけど、どうせ必要なので最初に設定しておく。

Proxmox VEはsystemd-networkdではなく旧来の/etc/network/interfacesを使う必要がある。
OSセットアップ直後はDHCPになっていると思うので、man interfacesを見ながら修正する。
こんな感じ。

#iface enp3s0 inet dhcp # DHCPをコメントアウトするか削除
iface ens3s0 inet manual
auto vmbr0
iface vmbr0 inet static
    address 192.168.100.10/24
    gateway 192.168.100.1
    bridge-ports ens3s0
    bridge-stp off
    bridge-fd 0

ブリッジインターフェース名は、Proxmox VEが認識できるように「vmbr0」にしておく。

修正したらnetworkingサービスを再起動して、ブリッジインターフェースに静的IPアドレスが設定されたことを確認する。

sudo systemctl restart networking
ip a

手順

ホスト名を解決できるようにする

/etc/hosts にホスト名とIPアドレスを書く。
元々書かれている 127.0.1.1 ホスト名 は削除しておく。
以下を実行して、127.0.1.1ではないIPアドレスが返ってくれば良し。

hostname --ip-address

hostsを修正せず127.0.1.1のまま進めると、proxmox-veパッケージインストール時に以下のエラーが出る。

pve-manager (8.1.3) を設定しています ...  
Could not execute systemctl: at /usr/bin/deb-systemd-invoke line 145.  
dpkg: パッケージ pve-manager の処理中にエラーが発生しました (--configure):  
installed pve-manager package post-installation script subprocess returned error exit status 1  
dpkg: 依存関係の問題により proxmox-ve の設定ができません:  
proxmox-ve は以下に依存 (depends) します: pve-manager (>= 8.0.4) ...しかし:  
パッケージ pve-manager はまだ設定されていません。  
  
dpkg: パッケージ proxmox-ve の処理中にエラーが発生しました (--configure):  
依存関係の問題 - 設定を見送ります  
処理中にエラーが発生しました:  
pve-manager  
proxmox-ve

Proxmox VEをインストール

リポジトリ修正

Proxmox VEリポジトリを追加

sudo sh -c 'echo "deb [arch=amd64] http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list'

GPG鍵追加

sudo wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg

更新

sudo apt update && sudo apt full-upgrade

Proxmox VEカーネルインストール

sudo apt install proxmox-default-kernel

OS再起動

sudo systemctl reboot

再起動前のカーネルバージョン

$ uname -r
6.1.0-13-amd64

再起動後のカーネルバージョン、pveが付いていれば成功している。

$ uname -r
6.5.11-7-pve

Proxmox VEパッケージインストール

sudo apt install proxmox-ve postfix open-iscsi chrony

途中、Postfixの設定について尋ねられた時、何を選ぶべきか分からない場合は「ローカルのみ」を選んでおけば手堅い。
もちろん、メール送信についてどう設定すべきか分かっているなら、適切に設定すれば良い。

デフォルトのDebianカーネル削除

sudo apt remove linux-image-amd64 'linux-image-6.1*'

デュアルブートの設定をしておらず、Proxmox VEしか起動するOSがないなら os-prober パッケージを削除しておく。

sudo apt remove os-prober

手順では、先にupdate-grubを実行しているけど、os-proberを削除する前に実行するとWarning↓ が出た。

$ sudo update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.5.11-7-pve
Found initrd image: /boot/initrd.img-6.5.11-7-pve
Warning: os-prober will not be executed to detect other bootable partitions.
Systems on them will not be added to the GRUB boot configuration.
Check GRUB_DISABLE_OS_PROBER documentation entry.
done

ちょっと気持ち悪いから先に削除しておく。

GRUB設定更新

sudo update-grub

先にos-broberを削除しておけばWarningは出ない↓

$ sudo update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.5.11-7-pve
Found initrd image: /boot/initrd.img-6.5.11-7-pve
done

Proxmox VE Web GUI設定

ここまで完了すれば、TCP:8006でリッスンしているはず。

$ ss -lnt | grep :8006
LISTEN 0      4096               *:8006            *:*

Webブラウザで https://Proxmox VEのIPアドレス:8006 にアクセスする。
特権ユーザーはrootで、Debian 12セットアップ時に設定したrootパスワードでログインできる。

『有効なサブスクリプションがありません』と表示されるが、とりあえず『OK』を押しておく。

Linux Bridge作成確認

Proxmox VEで仮想マシンを作る際のNICとして使うLinux Bridgeは、OSセットアップ時に作成したはず。
Web GUIでサーバーを選択し、システム→ネットワークを選択、vmbr0の種別がLinux Bridgeで、稼働中であることを確認する。

Proxmoxリポジトリ設定

Web GUIのアップデート→リポジトリを選択。
「追加」ボタンを押し、「No-Subscription」を追加。
リポジトリ一覧の「pve-enterprise」を選択して「disable」ボタンを押して無効化。

© 2020 nissy-lab.com