Raspberry Pi 5: Proxmox VE 8系のインストール手順
小さな仮想化プラットフォームとして
先日の上記記事でお試しを開始したRaspberry Pi 5 Model B (8GB) を、これから我が家の仮想化プラットフォームとして活用できるか探るべく、Proxmox Virtual Environment (Proxmox VE; PVE) をインストールする手順の紹介です。ラズパイ5にPVE 8系をインストールする手順の情報が (日本語の世界では) どうも見つからなかったので、書いてみます。
PVEのインストールには、おそらく2種類の方法があります。
- 方法-A. 何らかのOSの上にProxmox VEをパッケージとしてインストール
- 方法-B. Proxmox VEとOSがセットになっているISOからインストール (公式のISO Installerと同様の方法)
本記事ではこの2つのうち、方法-Aを主に取り上げます。方法-Bも可能であると実際にやってみて確認できましたが (後述)、方法-Aのほうが私の求める最終型に近かったため、方法-Bは我が家の本番では不採用です。
方法-A. Raspberry Pi OSの上にProxmox Portをインストール
arm64のラズパイ5へインストール可能なPVEのパッケージは公式には無いため、次の「jiangcuo/Proxmox-Port」をありがたく利用します。
本記事のインストール手順は基本的に、上記GitHubリポジトリのWikiにある次の2ページを参考にしています。
- Wiki > Debian bookwormへのインストール方法: Install Proxmox VE on Debian bookworm · jiangcuo/Proxmox-Port Wiki
- Wiki > ラズパイに関する特記事項: RaspberryPi · jiangcuo/Proxmox-Port Wiki
また、今回構築するProxmox VEの環境は次の表のとおりです。手順にはこの情報を含めつつ記述します。
項目 | 内容 |
---|---|
OS | Raspberry Pi OS Lite (64-bit), Debian version: 12 (bookworm) |
ホスト名 | raspi5 |
使用するネットワーク接続 | 内蔵NICでの有線接続 |
IPアドレス | 192.168.100.5/24 |
Gateway | 192.168.100.1 |
DNSサーバ | 192.168.100.1 |
OS/PVE導入先メディア | USB-SSD (Buffalo SSD-PST250U3-BA) |
【Amazon.co.jp限定】バッファロー SSD 外付け 250GB 極小 コンパクト ポータブル PS5 / PS4 対応 (メーカー動作確認済) USB3.2 Gen2 読込速度 600MB/s ブラック エコパッケージ SSD-PST250U3BA/N
バッファロー
Section-1. PVEインストール前の下準備
- Raspberry Pi OS Lite (64-bit) をラズパイ5へインストールします (ここはDHCPでOK)
$ cat /etc/os-release PRETTY_NAME="Debian GNU/Linux 12 (bookworm)" NAME="Debian GNU/Linux" VERSION_ID="12" VERSION="12 (bookworm)" VERSION_CODENAME=bookworm ID=debian HOME_URL="https://www.debian.org/" SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/"
- 有線接続の名前「Wired connection 1」がスペース含みでかつ長いので、
nmcli
コマンドを使って短い「eth0」へ変更します- 変更前のデフォルト状態を確認:
$ nmcli connection NAME UUID TYPE DEVICE Wired connection 1 XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX ethernet eth0 lo XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX loopback lo
- 変更コマンド&変更後の状態を確認:
$ sudo nmcli connection modify 'Wired connection 1' connection.id eth0 $ nmcli connection NAME UUID TYPE DEVICE eth0 XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX ethernet eth0 lo XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX loopback lo
- 変更前のデフォルト状態を確認:
- eth0のIPアドレスを
nmcli
コマンドを使って固定します- 変更前の状態を確認:
$ nmcli -f ipv4 connection show eth0 ipv4.method: auto ipv4.dns: -- ipv4.dns-search: -- ipv4.dns-options: -- ipv4.dns-priority: 0 ipv4.addresses: -- ipv4.gateway: -- (以下省略)
- 変更コマンド:
$ sudo nmcli connection modify eth0 ipv4.addresses 192.168.100.5/24 $ sudo nmcli connection modify eth0 ipv4.gateway 192.168.100.1 $ sudo nmcli connection modify eth0 ipv4.dns 192.168.100.1 $ sudo nmcli connection modify eth0 ipv4.method manual $ sudo nmcli connection up eth0 # この時点で既存のネットワーク接続が切れます
- 変更後の状態を確認:
$ nmcli -f ipv4 connection show eth0 ipv4.method: manual ipv4.dns: 192.168.100.1 ipv4.dns-search: -- ipv4.dns-options: -- ipv4.dns-priority: 0 ipv4.addresses: 192.168.100.5/24 ipv4.gateway: 192.168.100.1 (以下省略)
- 変更前の状態を確認:
/etc/hosts
ファイルを編集します- Ref: https://github.com/jiangcuo/Proxmox-Port/wiki/Install-Proxmox-VE-on-Debian-bookworm#add-an-etchosts-entry-for-your-ip-address
- 編集内容: PVEホスト名と実際のIPアドレスを対応付ける, 「127.0.1.1」の定義を削除する
- 編集前の状態を確認:
$ cat /etc/hosts 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters 127.0.1.1 raspi5
- 編集後の状態を確認:
$ cat /etc/hosts 127.0.0.1 localhost 192.168.100.5 raspi5 ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters #127.0.1.1 raspi5 $ hostname --ip-address 192.168.100.5
- LXC Containerのmemory/swap情報を正しく反映させるためのパラメータを追記します
- Ref: https://github.com/jiangcuo/Proxmox-Port/wiki/RaspberryPi#2-ct-notes
/boot/firmware/cmdline.txt
を編集して既存の1行の末尾に次の文字列を追加します (2行目ではなく1行目の最後です)cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1
- kernelを指定のタイプへ変更し、OSを再起動します
- Ref: https://github.com/jiangcuo/Proxmox-Port/wiki/RaspberryPi#1-kernel-pagesize
/boot/firmware/config.txt
を編集して末尾に次の1行を追加しますkernel=kernel8.img
- 現在のkernelリリース番号を確認した後、OSを再起動します
$ uname -r 6.6.28+rpt-rpi-2712 $ sudo shutdown -r now
- 再起動後のkernelリリース番号の末尾が「-v8」に変わっていることを確認します
$ uname -r 6.6.28+rpt-rpi-v8
Section-2. PVEのインストール
- Proxmox-Portのrepositoryを登録し、apt情報を更新し、導入済みのパッケージを最新化します
- Ref: https://github.com/jiangcuo/Proxmox-Port/wiki/Install-Proxmox-VE-on-Debian-bookworm#add-the-proxmox-ve-repository
# echo 'deb [arch=arm64] https://mirrors.apqa.cn/proxmox/debian/pve bookworm port' >/etc/apt/sources.list.d/pveport.list # curl -L https://mirrors.apqa.cn/proxmox/debian/pveport.gpg -o /etc/apt/trusted.gpg.d/pveport.gpg $ sudo apt update $ sudo apt full-upgrade
- Ref: https://github.com/jiangcuo/Proxmox-Port/wiki/Install-Proxmox-VE-on-Debian-bookworm#add-the-proxmox-ve-repository
- PVEのパッケージをインストールします
- Ref: https://github.com/jiangcuo/Proxmox-Port/wiki/Install-Proxmox-VE-on-Debian-bookworm#install-proxmox-ve-packages
$ sudo apt install ifupdown2 $ sudo apt install proxmox-ve postfix open-iscsi # 500MBほどのダウンロードが行われる
- 「Postfix Configuration」画面では:
- General email configuration type: 「Local only」を選択
- System mail name: 表示されている「raspi5」のまま
- 「Configuration file ‘/etc/apt/sources.list.d/pveport.list’」では:
- 「Y or I : install the package maintainer’s version」を選択
- Ref: https://github.com/jiangcuo/Proxmox-Port/wiki/Install-Proxmox-VE-on-Debian-bookworm#install-proxmox-ve-packages
- インストール完了後、OSを再起動します
- rootユーザのパスワードを新規設定します
$ ssh 192.168.100.5 $ sudo -s # passwd
- 手元のPCから https://192.168.100.5:8006/ を開き、PVEのGUI管理画面へ「User name: root, Password: 先程設定したパスワード」でログインします
- (必須なのかどうかよく分かりませんが手元のPVE公式版 (amd64) と同じ状態にしたいため) 存在していないNetwork BridgeをGUI管理画面で1つ新規作成します
- 作業内容: 「Datacenter > raspi5 > System > Network」に移動し、「Create」で「Linux Brigde」を選択して下記のvmbr0の内容を入力し、「Apply Configuration」を押します
- vmbr0の設定:
Name Type Active Autostart VLAN aware Ports/Slaves Bond Mode CIDR Gateway vmbr0 Linux Bridge Yes Yes No eth0 192.168.100.5/24 192.168.100.1
Section-3. PVEの動作確認 〜LXC Container編〜
インストールできたProxmox VE arm64版の上でCT (LXC Container; コンテナ) を一つ動作させてみます。LXC Containerで用いるイメージ (rootfs.tar.xz) の取得は次のリンク先から可能です。以下の例ではRockyLinux 9 arm64版のイメージを取得しています。
- LinuxContainers.org: https://images.linuxcontainers.org/images/
- PVEのCT Templatesにイメージを保存します
- 作業内容: 管理画面の左メニュー「Datacenter > raspi5 > local (raspi5) > CT Templates」に移動し、「Download from URL」を押し、下記のように入力して「Download」を押します
- URL: (任意のimageのURLを貼り付ける) https://images.linuxcontainers.org/images/rockylinux/9/arm64/default/YYYYMMDD_HH%3AMM/rootfs.tar.xz
- File name: (任意) rockylinux-9-arm64_rootfs.tar.xz
- 作業内容: 管理画面の左メニュー「Datacenter > raspi5 > local (raspi5) > CT Templates」に移動し、「Download from URL」を押し、下記のように入力して「Download」を押します
- PVEにコンテナを作成します
- 作業内容: 管理画面の右上「Create CT」を押し、下記のように入力し、「Next」を何度か押したあと「Finish」を押します
- Generalタブ:
- Hostname: (任意) rockylinux-test
- Password, Confirm password: (任意)
- Templateタブ:
- Template: rockylinux-9-arm64_rootfs.tar.xz
- Networkタブ:
- IPv4: DHCP
- 作成したコンテナを起動します
- 作業内容: 管理画面の左メニューで「rockylinux-test」を選択し、右上の「Start」を押す
- 起動したコンテナにコンソールログインします
- 作業内容: 「Console」を選択し、右側黒画面のプロンプトに「Username: root, Password: CT作成時に設定したパスワード」を入力します
方法-B. Proxmox VEをISOでインストール (今回は不採用)
Proxmox VE 8.1をRaspberry Pi 5へISOでインストールしている動画が、YouTubeにありました。ラズパイ5でUEFIを実現するrpi5-uefiを用いるようです。
- 紹介動画 [2024-01-11]: Installing Proxmox 8.1 on Raspberry Pi 5 - YouTube
- rpi5-uefi: GitHub - worproject/rpi5-uefi: EDK2 firmware images for Raspberry Pi 5
私も実際に、動画を見ながら必要なものを揃えてやってみたところ、たしかに簡単に、Proxmox VE ISOのGUIインストーラーを用いたProxmox VEのインストールが可能でした。
- 必要なもの:
- メディア: 例えば次の3つです (ラズパイに挿せるメディアであればおそらく組み合わせは自由)
- FAT32フォーマットしたmicroSDカード: 最新版リリース https://github.com/worproject/rpi5-uefi/releases のZIPファイルを展開して現れる3ファイルを保存したもの
- USB-Memory: https://mirrors.apqa.cn/proxmox/isos/ で得られるProxmox VE ARM64版のISOを焼いたもの
- USB-SSD: Proxmox Port (Proxmox VE) のインストール先&後に起動デバイスとなるもの
- USB接続NIC (Linuxが標準対応するチップを搭載したもの。手元にあったPLANEX USB-LAN1000RはOK)
- メディア: 例えば次の3つです (ラズパイに挿せるメディアであればおそらく組み合わせは自由)
ただし、下記のように気づいた点が2つあり、これは私にとってメリットがないので、方法-Bは採用しないことにしました。
- 気づいた点:
- Proxmox VEのインストールのみではラズパイ5の内蔵NICが使用できない (NICドライバを別途インストールすれば良いのだろうけど)
- rpi5-uefiを保存しているmicroSDカードをラズパイ5の起動時に挿しておく必要があるっぽい
Planex 有線LANアダプター USB-TypeA マルチギガビット(2.5Gbps)対応 USB-LAN2500R2
プラネックス(Planex)
参考サイト
記事中からリンクしたもの以外で、参考にしたサイトです。
- Debian BookwormでのIPアドレスの固定・NetworkManager関係:
/etc/hosts
の編集を忘れていて、pve-manager
がインストールできないエラーに遭遇した時:
また、Raspberry Pi 4 + Proxmox VE 7 に関しては過去に同様の記事を書いていました。
サンワサプライ ワットモニター 消費電力(W)・積算電力量(kWh)・積算時間(Hour)・積算電力料金(円)・CO2排出量(kg)測定可能 TAP-TST8N 電源コード式 ホワイト
サンワサプライ(Sanwa Supply)