Proxmox VE(Proxmox Virtual Environment)とは、Debianをベースにした無料のオープンソース仮想化基盤で、KVMの仮想マシン(VM)とLXCコンテナを1台のサーバーで同時に動かし、ポート8006のWeb UIから管理できます。ミニPC1台にNAS・DNS・ローカルLLM・Kubernetes検証環境を、独立したVMやコンテナとして同居させられます。
前提はメモリ32GBのミニPC1台。USBメディア作成から自動バックアップ設定までで、作業時間はダウンロードを除いて30分ほどです。
この記事でわかること
- 無料で使える範囲と、有償サブスクリプションが何の対価なのか
- メモリ・SSD・NICの判断基準と、ZFSを選ぶ条件
- インストール直後のリポジトリ切り替え(pve-enterprise → pve-no-subscription)
- local / local-lvm / local-zfs の役割と、VM・LXCの作り方と使い分け
- スナップショットと vzdump バックアップ、よくあるエラーの対処
Proxmox VEとは:無料で使える範囲とESXiとの違い
本体はAGPLv3で公開され、VM・コンテナ・クラスタ・ライブマイグレーション・バックアップ・ZFS・Cephまで、機能を制限した「無料版」は存在しません。有償サブスクリプションが買っているのは、検証済みパッケージが流れる「エンタープライズリポジトリ」と技術サポートです。無償で使うなら同じパッケージが少し早く流れる「no-subscription」リポジトリに切り替えます。忘れると apt update が401で止まります。
読み方は「プロクスモックス」が一般的で、公式の日本語表記はありません。執筆時点の最新は9系でDebian 13(trixie)ベース。8系(Debian 12)とはリポジトリ設定の形式が違い(8系は .list、9系はdeb822形式の .sources)、ネット上の手順を写すときはバージョンを確認してください。VMware ESXiとの違いは、無償提供の条件(変更が多いので公式で確認)よりもアーキテクチャにあります。
| 項目 | Proxmox VE | VMware ESXi |
|---|---|---|
| ベース | Debian。aptとSSHでフルアクセス | 専用カーネル。操作はesxcli中心 |
| コンテナ | LXCを標準サポート | なし(VM内で動かす) |
| 複数台管理 | 各ノードのWeb UIでクラスタ全体を操作、追加費用なし | 一元管理はvCenterが必要 |
no-subscriptionリポジトリは公式に「本番環境には推奨しない」と明記されています。自宅や検証では実害はほぼありませんが、会社の本番基盤に載せるならサブスクリプションを予算に入れてください。
ハードウェアの選び方:ミニPC・メモリ・SSD
先に効いてくるのはCPUではなくメモリです。VMは割り当て分をほぼそのまま消費し、ホスト自身が2GB前後、ZFSならキャッシュ(ARC)がさらに使います。執筆時点のインストーラーはARC上限を物理メモリの10%(最大16GB)に設定しますが、それでも32GBあればVM4〜5台が気兼ねなく動き、16GBだとVM2台とLXC数個で頭打ちです。
| 部品 | 推奨 | 判断のポイント |
|---|---|---|
| CPU | 4コア以上、VT-x/AMD-V必須 | N100/N150クラスでDNS・監視・NASは十分。LLMやWindows VMならCore i5/Ryzen 5以上 |
| メモリ | 32GB以上(最低16GB) | N100系は公式上限16GBの製品が多く、32GBは「動くことが多い」止まり |
| SSD | NVMe 1TB前後、できれば2本 | 監視DBやログは書き込みが多く、安価なQLCはTBWを早く使い切る |
SSDが2本ならZFSミラー、1本ならext4 + LVM-thin、で決めて構いません。ZFSはチェックサムで破損を検知し、ミラーなら自動修復もしますが、1本では検知止まりでメモリだけ余計に使います。中古PCやRaspberry Piとの比較は自宅サーバーの用途と最初の1台の選び方にまとめました。
インストールメディアの作成とインストール
公式サイトのISOをSHA256で照合してUSBメモリに書き込みます。WindowsはRufusの「DDイメージモード」、macOS/Linuxは dd が確実です。NICは有線が前提で、ホストをWi-Fiでつなぐとブリッジが組めません。
sha256sum proxmox-ve_9.0-1.iso
lsblk # USBメモリのデバイス名を確認
sudo dd if=proxmox-ve_9.0-1.iso of=/dev/sdX bs=4M status=progress conv=fsyncof= を間違えると内蔵ディスクを丸ごと上書きします。lsblk でUSBを抜き差しして増減するデバイスを確かめてから実行してください。
- USBから起動し「Install Proxmox VE (Graphical)」を選びます。
- Target Harddiskで対象ディスクを選びます。既定はext4(LVM)、SSD2本なら「Options」で
zfs (RAID1)。選んだディスクは完全に初期化されます。 - Country: Japan、Time zone: Asia/Tokyo、Keyboard: Japanese。rootパスワードと通知用メール(障害通知の宛先なので実在するもの)を入れます。
- Management Interfaceに有線NIC、Hostnameは
pve.home.lanのようなFQDN、IPは192.168.10.5/24のようにDHCP範囲外の固定アドレス、Gateway、DNSを入れてInstall。再起動時にUSBを抜きます。
Web UI(ポート8006)へのログインとリポジトリ設定
https://192.168.10.5:8006 を開き、自己署名証明書の警告を進めて、ユーザー root、Realm「Linux PAM standard authentication」でログインします。直後の「No valid subscription」ダイアログは通知だけなのでOKで閉じます。左ペインは Datacenter(ストレージ・バックアップ・権限の全体設定)→ ノード名(ネットワーク・更新・ディスク・Shell)→ VM/CT の3階層です。
初期状態では /etc/apt/sources.list.d/pve-enterprise.sources(Ceph用の ceph.sources も)が有効で、サブスクリプションがないと更新に失敗します。Web UIならノード → Updates → Repositories で enterprise の行を「Disable」し、「Add」から「No-Subscription」を追加します。シェルなら次のとおりです。
Types: deb
URIs: http://download.proxmox.com/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpgecho "Enabled: false" >> /etc/apt/sources.list.d/pve-enterprise.sources
echo "Enabled: false" >> /etc/apt/sources.list.d/ceph.sources
apt update
apt dist-upgrade -y # upgrade ではなく dist-upgradeapt upgrade を使わないのは、Proxmoxのパッケージが依存関係の入れ替えを前提にしているためで、公式ドキュメントでも禁じられています。カーネルが更新されたら再起動し、Datacenter → Permissions → Two Factor で root にTOTPを設定しておきます。
ストレージの基本:local・local-lvm・ZFS
| ストレージID | 実体 | 置けるもの |
|---|---|---|
| local | ディレクトリ /var/lib/vz | ISO、CTテンプレート、バックアップ、スニペット |
| local-lvm | LVM-thinプール pve/data | VMディスク、CTボリューム(thinスナップショット可) |
| local-zfs | rpool/data。ZFSでインストールした場合にlocal-lvmの代わりに現れる | VMディスク、CTボリューム(ZFSスナップショット可) |
「ISOがアップロードできない」「VMのディスクが作れない」の大半はこの置き場所の取り違えです。LVM-thinもZFSもシンプロビジョニングで、割り当ての合計が実容量を超えられるため pvesm status で使用率を時々見ます。2本目のディスクはノード → Disks → ZFS → Create: ZFS で作り、「Add Storage」にチェックすると Datacenter に自動登録されます。
VMの作成(Ubuntu Server 24.04)
ISOは local → ISO Images → 「Download from URL」に公式のURLを貼るのが速く、手元のPCを経由しません。「Create VM」のウィザードは既定でも動きますが、後から変えにくい Machine・BIOS・CPU type はここで決めます。
- General: VM ID
100、Name は任意の名前(例:ubuntu-01)。OS: ISOを選択、Type は Linux。 - System: Machine
q35、BIOSOVMF (UEFI)、EFI Storage は local-lvm、SCSI ControllerVirtIO SCSI single、「Qemu Agent」にチェック。q35 + UEFIなら将来のPCIパススルーで作り直さずに済みます。 - Disks: Bus
SCSI、local-lvm、32GB、SSDなら「Discard」にチェック(VM内で削除した領域をthinプールに返す)。 - CPU: Cores 2、Type
host。1台運用なら最速です。将来クラスタでライブマイグレーションするなら機種差を吸収するx86-64-v2-AES。 - Memory 4096MB、Network は Bridge
vmbr0、ModelVirtIO (paravirtualized)。
Console からUbuntuをインストールし、ゲストエージェントを入れると Summary にIPが表示され、Shutdown がACPIではなくエージェント経由の安全な停止になります。
sudo apt install -y qemu-guest-agent
sudo systemctl enable --now qemu-guest-agentqm list
qm shutdown 100 # エージェント経由の安全な停止
qm config 100 # /etc/pve/qemu-server/100.conf の内容
qm agent 100 ping # 応答すれば何も表示せず終了コード0LXCコンテナの作成と使い分け
LXCはホストのカーネルを共有するため、カーネルもBIOSも持たず、起動は数秒、常駐メモリは数十MBから始まります。DNS・リバースプロキシ・監視のような小さな常駐サービスは、32GBのミニPCに10個並べても余裕です。テンプレートは local → CT Templates → Templates か、pveam で取得します。
pveam update
pveam available --section system | grep ubuntu
pveam download local ubuntu-24.04-standard_24.04-2_amd64.tar.zst # 一覧に出た名前を指定「Create CT」で Hostname、rootパスワード(またはSSH公開鍵)、テンプレート、Disk 8GB、Cores 1、Memory 1024MB、Network は vmbr0 でDHCPか固定IPを指定します。既定でチェックされている「Unprivileged container」は外しません。非特権ではコンテナ内のUID 0がホストのUID 100000にマップされ、抜け出されてもホストのrootにはなれないからです。
pct list
pct enter 101 # コンテナ内のシェル
pct exec 101 -- apt update # 入らずに実行| 観点 | VM(KVM) | LXC |
|---|---|---|
| 分離 | 独自カーネルで完全分離 | ホストカーネル共有(非特権でUIDマップ) |
| 起動・常駐コスト | 数十秒、割り当てメモリをほぼ専有 | 数秒、使った分だけ |
| 向く用途 | Docker、Kubernetesノード、Windows、GPU | DNS、リバースプロキシ、監視、小さなWebアプリ |
DockerはLXCではなくVMで動かしてください。公式ドキュメントもアプリケーションコンテナはQEMU VM内を推奨しています。Nestingを有効にしたLXCでも動きはしますが、ホストのカーネル更新やAppArmorの変更で突然止まり、切り分けに時間を溶かします。
スナップショットとバックアップの基本
スナップショットは VM → Snapshots → Take Snapshot で取る「その時点の状態」で、LVM-thinやZFSの差分機構を使うので一瞬で終わります。「Include RAM」にチェックすると稼働中のメモリごと戻せます。差分は親ボリュームに依存するため、同じSSDが壊れれば一緒に消えます。バックアップの代わりにはなりません。
バックアップは Datacenter → Backup → Add で、Schedule 02:00、Selection mode All、Mode は稼働中のまま取れる Snapshot、Compression は速度と圧縮率のバランスがよい ZSTD、Retention は Keep Last 3 から始めます。
vzdump 100 --storage local --mode snapshot --compress zstd
ls -lh /var/lib/vz/dump/ # vzdump-qemu-100-2026_09_20-02_00_01.vma.zstlocal へのバックアップはホストと同じSSDに置かれ、SSD故障でVMごと失われます。NASか別マシンに逃がしてください。重複排除と増分転送のある構成はProxmox Backup Serverで3-2-1ルールを実現するで組んでいます。
動作確認
pveversion
# pve-manager/9.x.x/... (running kernel: 6.x) と9系が出る
apt update 2>&1 | tail -n 2
# "All packages are up to date." で終わり、401やenterpriseの行が出ない
pvesm status
# local と local-lvm(またはlocal-zfs)が active
qm list; pct list
# 100 と 101 が running
qm agent 100 network-get-interfaces | grep ip-address
# VM内のIPが返ればゲストエージェントは正常つまずきポイント
apt updateで401 Unauthorized(enterprise.proxmox.com): エンタープライズリポジトリが有効なままです。pve-enterprise.sourcesとceph.sourcesにEnabled: falseを追記します。TASK ERROR: KVM virtualisation configured, but not available: BIOS/UEFIでVT-x(AMD-V)が無効です。ミニPCは出荷時に無効のことがあります。qm agent 100 pingがQEMU guest agent is not running: VM内でエージェントが動いていないか、Options → QEMU Guest Agent が無効です。後者を変えたら再起動ボタンではなく Shutdown → Start で反映します。- 非特権LXCにマウントしたホストのディレクトリが
nobody:nogroupになる: UIDマップの仕業で、コンテナ内のUID 1000はホストでは101000です。ホスト側でchown -R 101000:101000するか、/etc/pve/lxc/101.confのlxc.idmapで特定UIDだけ素通しします。
よくある質問
Proxmoxは無料ですか?
はい。AGPLv3のオープンソースで全機能を無償で使えます。有償サブスクリプションは検証済みパッケージのリポジトリとサポートの対価で、自宅では no-subscription に切り替えれば更新も受け取れます。
Proxmoxの読み方は?
「プロクスモックス」です。公式の日本語表記はありません。VEは Virtual Environment の略で、同社にはバックアップ用のProxmox Backup Server(PBS)もあります。
VMとLXCはどう使い分けますか?
Linuxの小さな常駐サービス(DNS、リバースプロキシ、監視)はLXC、Docker・Kubernetes・Windows・GPUを使うものはVMです。LXCは軽い反面カーネル依存の機能で詰まりやすく、切り分けの時間まで含めるとVMの方が安く済む場面が多いです。
Proxmoxで何ができますか?
1台の上にNAS(TrueNAS VM)、DNS(LXC)、Dockerホスト(VM)、Kubernetesノード(VM×3)、GPUをパススルーしたLLM用VMを並べ、スナップショットと定期バックアップで守れます。複数台ならライブマイグレーションも使えます。
まとめ
リポジトリを no-subscription に切り替えて apt dist-upgrade する一手間を済ませれば、あとはWeb UIとqm/pctで一通り運用できます。メモリ32GB、SSD2本ならZFSミラー、DockerはVM、小さな常駐サービスはLXC、という軸で決めれば作り直しはほぼ起きません。ポート8006と22はルーターで開放せず、外出先からはTailscale経由で操作し、VMを3台作ったらk3sクラスタの練習台にしてください。