🐓

Proxmox VEの構築とVMをたてるまで

2024/09/01に公開

はじめに

Proxmox VE(以下、PVE)を触りたくなったので、ミニPCを買ってみた。
備忘録として、設定した項目を一通り書いておく。
後々、LXCコンテナに録画サーバーを構築予定。

概要

PVEインストール・設定 → VM作成 → VMへWindows 11インストール・設定

環境

PC:Minisforum MS-01
CPU:Intel Core i9-12900H
OS:Proxmox VE 8.2-1

PVEインストール・設定

PVEのインストーラ作成

Proxmoxの公式ページから、最新のISOイメージをダウンロード。
作成日(2024/08/16)時点:2024/04/24更新のVer.8.2-1を使用した。

Rufusで適当なUSBメモリへISOイメージを書き込み、対象PCで起動。

PVEのインストール

  • [Target Harddisk]を選択。
    ファイルシステムはデフォルトのext4にした。

  • [Country], [Time zone], [Keyboard Layout]を使用環境に合わせて選択。

  • [Password], [Email]を入力。

  • [Management Interface]を選択し、FQDNやIPアドレスを指定する。
    IFとIPアドレスはMEBx vProと同様、ホスト名は内部ドメインにした。

PVEの設定

インストール完了後は、WEB GUIで設定を行う。
https://<PVEのIPアドレス>:8006 にて、root/<上記で設定したパスワード> でログイン。

ログイン後にWEBブラウザ上から、PVEのシェルを操作できる。


「データセンター - ノード - <対象ノード> - シェル」 から実行できる

参照リポジトリの変更

デフォルトは、有料サブスクリプションのEnterpriseリポジトリなので、無料のリポジトリに変更する。

<対象ノード> - アップデート - リポジトリ からAPTリポジトリを追加する。

選択肢から、No-Subscriptionを選択し、追加。

無償リポジトリを追加後は、Enterpriseリポジトリは無効にしておく。

SSHの設定

PVEインストール直後は、rootでのログインが許可されているかつ、パスワード認証が許可されている。
今回はroot以外のユーザは作成しないが、sshでログインする予定はない。
下記ファイル作成し設定を有効にしておく。

# vi /etc/ssh/sshd_config.d/00-my-sshd-policy.conf
/etc/ssh/sshd_config.d/00-my-sshd-policy.conf
+ PermitRootLogin no
+ PasswordAuthentication no

ログイン画面のデフォルトを日本語にする

以下を追加しておくことで、ログイン画面で毎回言語を選択する必要がなくなる。

/etc/pve/datacenter.cfg
+ language: ja

パッケージを更新する

シェルからではなく、GUIでもアップデートできる。(見た感じは、aptコマンドが走ってるだけっぽい)

<対象ノード> - アップデート - 再表示 でアップデート可能なパッケージを確認する。
パッケージがいくつか表示されるので、アップグレードボタンをクリックして実行。

MFA(TOTP)の設定

データセンター - アクセス権限 - 2要素 - 追加でTOTPを選択。
QRコードが表示されるため、対応アプリで読み込む。
今回は、Google Authenticatorを使用した。

生成されたコードを入力し、追加ボタンをクリックで登録完了。
ログアウト後は、MFAが有効になる。

VM作成

メインPCの環境を汚したくないときのsandboxみたいな環境を作る。

VM用のブリッジの作成

<対象ノード> - システム - ネットワーク - 作成 - Linux Bridgeを選択。
ブリッジポートに物理NIC名を記述する。
ブリッジを作成後、設定を適用をクリックし、反映させる。

ISOイメージの準備とアップロード

Windows 11 は公式からISOをダウンロード。

KVMで提供されるストレージを認識させるため、WindowsはVirtIOドライバが必要。
ISOでダウンロードしておく。

ダウンロードしたISOイメージをPVEへアップロードする。
ストレージ - local - ISOイメージ - アップロードを選択。


ハッシュ値を比較することもできる。

Windows用のVM作成

右上のVM作成をクリック。

  • [ノード], [名前]はお好みで。
    [VM ID]は、デフォルトのままにしておく。(変更する場合はCLIから?)

  • 上記でアップロードしたOSのイメージファイルを選択。
    OSの種別とバージョンは正しいものを選択。
    Windowsの場合は、VirtIOドライバのイメージファイルも選択する。

  • GPU:規定
    マシン:q35(調べた感じ、i440fxは古いみたい)
    SCSIコントローラ:VirtIO SCSI single
    Qemuエージェント:有効化(Windowsは後でゲスト上にインストール必要)
    TPM:v2.0

  • バス:SCSI
    キャッシュ:キャッシュなし(今回はデフォルトにする)
    SSDエミュレーション:有効化
    その他:デフォルトのまま

  • コア数は適宜調整。
    CPU種別はホストの12900Hを認識させたいのでhostを選択。
    (WindowsでソケットとかCPU種別をいじるとどうなるかは検証してみたい)

  • メモリも適宜調整。
    Ballooningデバイスは有効にした。(そこまでリソースを求めてないので。)

  • ブリッジ:上記で作成したブリッジを指定
    モデル:VirtIO

Windows 11インストール

  • VirtIOドライバをインストールすることで、VirtIOのディスクやネットワークデバイスが認識するようになる。
    インストール先のOSのバージョンに合わせて、ドライバを選択する。
    (例:Windows 11 -> w11)
    最低限Windowsのインストールに必要なドライバはこれ。

    • D:\amd64\w11\vioscsi.inf
    • D:\NetKVM\w11\amd64\netkvm.inf

    後の工程は物理マシンにWindowsをインストールするのと同じ。


ドライバをインストール後、VirtIO SCSIのディスクが表示される。

  • Windowsインストール後は、残りのドライバをインストール
    VirtIOのドライバのISOがマウントされているので、直下にあるvirtio-win-gt-x64.msiを実行し、不足分のドライバをすべてインストール。
    インストール後は再起動。デバイスマネージャーに不明なデバイスがないか確認。

  • QEMUエージェントのインストールもしておく。
    virtio-win-guest-tools.exeを実行・インストール後、再起動する。
    これで、PVEのWEB GUIから、VMのIPアドレスを確認したり、シャットダウンが行えたりするようになる。

感想

Hyper-VでのVM作成の知識しかなかったが、PVEでの環境構築とVM作成なんとかできた。
今回触らなかった個所に関しても、便利な機能がありそうなのでいろいろ試してみたい。

参考

https://qiita.com/yankee/items/1d576f7a25d6f33c6cb5
https://qiita.com/minoden_works/items/e93d4916bb18484a1d45
https://zenn.dev/northeggman/articles/d7b29c4e2cd7c7
https://qiita.com/yankee/items/495e80193070f6e70b65

Discussion