Raspberry Pi 5にProxmox VEをインストール:Debian Portで構築する超低コストARM64ホームラボ

Virtualization tutorial - IT technology blog
Virtualization tutorial - IT technology blog

よくある問題:電力を食うホームラボ

Proxmox VEで12台のVMとコンテナを管理するホームラボを運用しています。本番環境に上げる前に何でもテストできるプレイグラウンドです。問題は、そのx86サーバーが24時間365日で180〜220Wを消費し続けること。毎月の電気代もバカにならないし、冷却ファンの騒音も気になります。

Raspberry Pi 5はBCM2712チップ(ARM Cortex-A76、4コア64ビット)を搭載し、最大8GBのRAMを選択できます。最重要ポイントは、従来のPiシリーズに完全に欠けていたハードウェア仮想化拡張(VHE)を備えていること。消費電力はわずか5〜12W、価格は約80ドル。220Wを食うx86サーバーと比べると15〜20倍も省電力です。

一般的なProxmoxインストール記事との違いは、ARM64向けの公式ISOインストーラーがProxmoxにまだ存在しない点です。代わりに、まずDebian Bookworm ARM64をインストールし、その上にProxmox VEを追加する方法を取ります。これはProxmox自身が製品をビルドする方法と同じアプローチです。

始める前に:ARM64について知っておくべきこと

なぜARM64でx86ではないのか?

Raspberry Pi 5はARM64(aarch64)アーキテクチャを使用しており、一般的なノートPC/PCのx86_64とは全く異なります。シンプルに聞こえますが、いくつかの直接的な影響があります:

  • VMゲストもARM64である必要があります — Windows x86や通常のx86 ISOは実行できません
  • LinuxのLXCコンテナはホストとカーネルを共有するため問題なく動作します
  • 主要なLinuxディストリビューション(Debian、Ubuntu、Alpine)はすべてARM64版があります

ARM64上でのProxmox VEの動作

Proxmox VEはDebianをベースにした管理レイヤーです。x86ではパッチ済みカスタムカーネルを提供していますが、ARM64ではDebian/Raspberry Piのカーネルを使用しつつ、Proxmox VEのフルスタック(Web UI、KVM、LXC、ストレージ管理、クラスターサポート)をインストールします。ホームラボの用途 — VM作成、コンテナ管理、ストレージ設定 — においては、x86版とほぼ同じインターフェースと操作感を得られます。

ハードウェアとソフトウェアの準備

始める前に必要なもの:

  • Raspberry Pi 5 8GBモデル(4GBモデルでも使えますが、複数コンテナ実行時に手狭になります)
  • PCIe HAT経由のNVMe SSD 64GB以上(強く推奨 — microSDは遅くて壊れやすい)
  • Raspberry Pi公式27W USB-C電源(ワット数が足りないとスロットリングが発生します)
  • ルーターへの直接接続用イーサネットケーブル(サーバーにWi-Fiは使わないこと)
  • SSH操作用の別のPC

実践:ステップバイステップのインストール

ステップ1:Debian Bookworm ARM64をフラッシュ

Raspberry Pi ImagerをPCにダウンロードし、Raspberry Pi OS Lite(64-bit)イメージを選択します — これがDebian Bookworm ARM64です。フラッシュ前のAdvanced Settingsで以下を設定:

  • SSHを有効化
  • ホスト名を設定:proxmox-pi
  • ユーザーとパスワードを作成

SSD/SDにフラッシュし、Piに挿入してブートを待ちます。PCからSSHで接続:

ssh [email protected]
# mDNSが動作しない場合は特定のIPを使用
ssh [email protected]

ステップ2:ホスト名と静的IPの設定

Proxmoxは/etc/hostsでホスト名が解決できる必要があります。このステップを省略するとインストール時にエラーが発生します:

sudo hostnamectl set-hostname proxmox-pi
sudo nano /etc/hosts

このファイルに以下の行を追加します(IPは実際のIPアドレスに置き換えてください):

192.168.1.100   proxmox-pi.local proxmox-pi

再起動後に接続が切れないよう静的IPを設定:

sudo nano /etc/network/interfaces.d/eth0
auto eth0
iface eth0 inet static
    address 192.168.1.100/24
    gateway 192.168.1.1
    dns-nameservers 1.1.1.1 8.8.8.8

続行前にシステムを更新:

sudo apt update && sudo apt full-upgrade -y
sudo apt install -y curl wget gnupg2

ステップ3:ARM64用Proxmoxリポジトリの追加

ここが重要なポイントです — x86へのインストールとは全く異なります:

# ProxmoxのGPGキーを追加
wget -qO /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg \
  https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg

# no-subscriptionリポジトリを追加(無料、amd64とarm64の両方をサポート)
echo "deb [arch=amd64,arm64] http://download.proxmox.com/debian/pve bookworm pve-no-subscription" \
  | sudo tee /etc/apt/sources.list.d/pve-no-sub.list

sudo apt update

ステップ4:Proxmox VEのインストール

ARM64ではproxmox-default-kernelはインストールしません(x86用カーネルのため)。Raspberry Piのカーネルはそのままにして、Proxmox VEスタックを直接インストールします:

sudo apt install -y proxmox-ve postfix open-iscsi chrony

インターネット速度によって10〜20分かかります。postfixの設定を聞かれたら“Local only”を選択してください。

インストール完了後、再起動:

sudo reboot

ステップ5:Proxmox Web UIへのアクセス

ブラウザを開き、以下にアクセス:

https://192.168.1.100:8006

ブラウザが自己署名証明書の警告を表示しますが、無視して続行します。ログイン:

  • Username: root
  • Password: DebianのROOTパスワード
  • Realm: Linux PAM standard authentication

Proxmoxのダッシュボードが表示されれば完成です。手のひらサイズのボードでProxmoxが動いているのを初めて見たとき、思わず感動してしまいました。

ステップ6:ライセンス購入ポップアップの非表示

コミュニティ無料版ではログインのたびにポップアップが表示されます。これを無効化します:

# このコマンドはProxmoxのバージョンによって変わる場合があります — 事前にバージョンを確認
pve6to7 --version || pveversion

# JSファイルにパッチを適用(必要に応じてパスを調整)
sudo sed -i.bak "s/if (res === null || res === undefined || \!res || res/if (false || res/g" \
  /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js

sudo systemctl restart pveproxy

sedコマンドが効かない場合(Proxmoxがコードを更新した場合)、そのファイル内の新しい文字列を検索してパッチを当ててください — Proxmoxが新バージョンをリリースするとコミュニティが手順を更新することがほとんどです。

ステップ7:初めてのLXCコンテナ作成

LXCコンテナはVMよりもはるかに軽量で、RPi 5の8GB RAMに適しています。Debian ARM64テンプレートをダウンロード:

# ProxmoxのシェルでLXCテンプレートをダウンロード
pveam update
pveam available | grep debian
pveam download local debian-12-standard_12.7-1_arm64.tar.zst

またはUIから:Datacenter → Node → local → CT Templates → Templates → Downloadarm64版を選択してください。

UIまたはコマンドラインで新しいコンテナを作成:

# コンテナID 100、512MB RAM、8GBディスク、ブリッジネットワークで作成
pct create 100 local:vztmpl/debian-12-standard_12.7-1_arm64.tar.zst \
  --hostname mycontainer \
  --memory 512 \
  --rootfs local-lvm:8 \
  --net0 name=eth0,bridge=vmbr0,ip=dhcp

# コンテナを起動
pct start 100

# コンテナのシェルに入る
pct enter 100

知っておくべき実際の制限

期待外れにならないよう、率直に話します:

  • PCIパススルーなし:VMにGPUやNICカードをパススルーできません
  • ゲストはARM64必須:Windowsやx86 ISOは実行不可
  • フルVMには8GB RAMはかなり手狭:最小構成のDebian VMでも256〜512MBを使用、3〜4台のVMが快適に動作する上限
  • メインストレージにmicroSDは避けてください:I/Oが遅く壊れやすい — NVMe HATへの投資は十分価値あり

このセットアップでは、Pi-hole、Uptime Kuma、Nginx Proxy Manager、GiteaがそれぞれのLXCコンテナで並行稼働しており、合計RAM使用量は約1.5GB。CPUを大量消費せず24時間365日稼働が必要なサービスには、理想的な環境です。

まとめ

80ドルのハードウェアと数時間のセットアップで、12W未満で動くProxmoxノードが手に入ります。重いワークロードではx86サーバーの代替にはなりませんが、仮想化を学ぶ、自宅で小さなサービスを動かす、クラスターのサブノードとして使うといった目的なら — Raspberry Pi 5は期待以上の働きをしてくれます。

このセットアップで一番気に入っているのは、VMのインストール・削除・破壊を本番サーバーを気にせず自由にできること。それこそがホームラボの本当の価値です。

Share: