Raspberry Pi 5: Proxmox VE 8系のインストール手順

Raspberry Pi 5: Proxmox VE 8系のインストール手順
Page content

小さな仮想化プラットフォームとして

先日の上記記事でお試しを開始した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ページを参考にしています。

また、今回構築するProxmox VEの環境は次の表のとおりです。手順にはこの情報を含めつつ記述します。

項目内容
OSRaspberry Pi OS Lite (64-bit), Debian version: 12 (bookworm)
ホスト名raspi5
使用するネットワーク接続内蔵NICでの有線接続
IPアドレス192.168.100.5/24
Gateway192.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

【Amazon.co.jp限定】バッファロー SSD 外付け 250GB 極小 コンパクト ポータブル PS5 / PS4 対応 (メーカー動作確認済) USB3.2 Gen2 読込速度 600MB/s ブラック エコパッケージ SSD-PST250U3BA/N

バッファロー

Section-1. PVEインストール前の下準備

  1. 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/"
    
  2. 有線接続の名前「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
      
  3. 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
      (以下省略)
      
  4. /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
      
  5. LXC Containerのmemory/swap情報を正しく反映させるためのパラメータを追記します
  6. 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のインストール

  1. Proxmox-Portのrepositoryを登録し、apt情報を更新し、導入済みのパッケージを最新化します
  2. PVEのパッケージをインストールします
  3. インストール完了後、OSを再起動します
  4. rootユーザのパスワードを新規設定します
    $ ssh 192.168.100.5
    $ sudo -s
    # passwd
    
  5. 手元のPCから https://192.168.100.5:8006/ を開き、PVEのGUI管理画面へ「User name: root, Password: 先程設定したパスワード」でログインします
  6. (必須なのかどうかよく分かりませんが手元のPVE公式版 (amd64) と同じ状態にしたいため) 存在していないNetwork BridgeをGUI管理画面で1つ新規作成します
    • 作業内容: 「Datacenter > raspi5 > System > Network」に移動し、「Create」で「Linux Brigde」を選択して下記のvmbr0の内容を入力し、「Apply Configuration」を押します
    • vmbr0の設定:
      NameTypeActiveAutostartVLAN awarePorts/SlavesBond ModeCIDRGateway
      vmbr0Linux BridgeYesYesNoeth0192.168.100.5/24192.168.100.1

Section-3. PVEの動作確認 〜LXC Container編〜

インストールできたProxmox VE arm64版の上でCT (LXC Container; コンテナ) を一つ動作させてみます。LXC Containerで用いるイメージ (rootfs.tar.xz) の取得は次のリンク先から可能です。以下の例ではRockyLinux 9 arm64版のイメージを取得しています。

  1. PVEのCT Templatesにイメージを保存します
  2. PVEにコンテナを作成します
    • 作業内容: 管理画面の右上「Create CT」を押し、下記のように入力し、「Next」を何度か押したあと「Finish」を押します
    • Generalタブ:
      • Hostname: (任意) rockylinux-test
      • Password, Confirm password: (任意)
    • Templateタブ:
      • Template: rockylinux-9-arm64_rootfs.tar.xz
    • Networkタブ:
      • IPv4: DHCP
  3. 作成したコンテナを起動します
    • 作業内容: 管理画面の左メニューで「rockylinux-test」を選択し、右上の「Start」を押す
  4. 起動したコンテナにコンソールログインします
    • 作業内容: 「Console」を選択し、右側黒画面のプロンプトに「Username: root, Password: CT作成時に設定したパスワード」を入力します

方法-B. Proxmox VEをISOでインストール (今回は不採用)

Proxmox VE 8.1をRaspberry Pi 5へISOでインストールしている動画が、YouTubeにありました。ラズパイ5でUEFIを実現するrpi5-uefiを用いるようです。

私も実際に、動画を見ながら必要なものを揃えてやってみたところ、たしかに簡単に、Proxmox VE ISOのGUIインストーラーを用いたProxmox VEのインストールが可能でした。

  • 必要なもの:
    • メディア: 例えば次の3つです (ラズパイに挿せるメディアであればおそらく組み合わせは自由)
      1. FAT32フォーマットしたmicroSDカード: 最新版リリース https://github.com/worproject/rpi5-uefi/releases のZIPファイルを展開して現れる3ファイルを保存したもの
      2. USB-Memory: https://mirrors.apqa.cn/proxmox/isos/ で得られるProxmox VE ARM64版のISOを焼いたもの
      3. USB-SSD: Proxmox Port (Proxmox VE) のインストール先&後に起動デバイスとなるもの
    • USB接続NIC (Linuxが標準対応するチップを搭載したもの。手元にあったPLANEX USB-LAN1000RはOK)

ただし、下記のように気づいた点が2つあり、これは私にとってメリットがないので、方法-Bは採用しないことにしました。

  • 気づいた点:
    1. Proxmox VEのインストールのみではラズパイ5の内蔵NICが使用できない (NICドライバを別途インストールすれば良いのだろうけど)
    2. rpi5-uefiを保存しているmicroSDカードをラズパイ5の起動時に挿しておく必要があるっぽい
Planex 有線LANアダプター USB-TypeA マルチギガビット(2.5Gbps)対応 USB-LAN2500R2

Planex 有線LANアダプター USB-TypeA マルチギガビット(2.5Gbps)対応 USB-LAN2500R2

プラネックス(Planex)

参考サイト

記事中からリンクしたもの以外で、参考にしたサイトです。

また、Raspberry Pi 4 + Proxmox VE 7 に関しては過去に同様の記事を書いていました。

サンワサプライ ワットモニター 消費電力(W)・積算電力量(kWh)・積算時間(Hour)・積算電力料金(円)・CO2排出量(kg)測定可能 TAP-TST8N 電源コード式 ホワイト

サンワサプライ ワットモニター 消費電力(W)・積算電力量(kWh)・積算時間(Hour)・積算電力料金(円)・CO2排出量(kg)測定可能 TAP-TST8N 電源コード式 ホワイト

サンワサプライ(Sanwa Supply)