Proxmox VEの構築とVMをたてるまで
はじめに
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
+ PermitRootLogin no
+ PasswordAuthentication no
ログイン画面のデフォルトを日本語にする
以下を追加しておくことで、ログイン画面で毎回言語を選択する必要がなくなる。
+ 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作成なんとかできた。
今回触らなかった個所に関しても、便利な機能がありそうなのでいろいろ試してみたい。
参考
Discussion