LXD-VMでWindows11やUbuntu26.04を使用

VMを扱う場合はCockpitやvirt-managerを利用したほうが扱いやすいですが、LXD-UIで一括管理したい場合のために、Windows11を動かす例の記録を残しておきます。
Windows11のISOをダウンロードしたフォルダを/home/user/iso以下に保存している例です。

1. 依存パッケージのインストール

sudo apt update
sudo apt install -y libhivex-bin libwin-hivex-perl wimtools genisoimage \
    golang-go git make

2. distrobuilderのビルド

# ソースをクローン&ビルド
git clone https://github.com/lxc/distrobuilder
cd distrobuilder
make

# バイナリをコピー
sudo cp ~/go/bin/distrobuilder /usr/local/bin/distrobuilder

# 確認
distrobuilder --version

もしsnap版インストール済みで動作しない場合は下記コマンドで削除したあとに、上記コマンドでソースからビルドします。
sudo snap remove distrobuilder

3. Windows 11 ISOの再パッケージ化

virtioドライバ統合のためISOを再パッケージします。

cd ~/iso

# virtio-win ISOをダウンロード
wget https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso

# virtioドライバ統合済みISOを再パッケージ
sudo distrobuilder repack-windows Win11_25H2_Japanese_x64_v2.iso Win11-v.iso \
    --drivers=/home/user/iso/virtio-win.iso

4. VM作成と設定

# VM作成(既存のwin11がある場合は先にlxc delete win11)
lxc init win11 --empty --vm

# CPU・メモリ設定
lxc config set win11 limits.cpu 4
lxc config set win11 limits.memory 8GiB

# ディスクサイズ
lxc config device override win11 root size=50GiB

# ISOをマウント
lxc config device add win11 iso disk source=/home/user/iso/Win11-v.iso boot.priority=10

# vTPMデバイスを追加
lxc config device add win11 vtpm tpm path=/dev/tpm0

5. 起動・インストール

lxc start win11

ブラウザでLXD UIを開き(https://ホストIP:8443)、win11のコンソールからWindowsインストールを進めます。

Screenshot

6. インストール完了後はISOをアンマウント

これはLXD-UIから行っても良いですが、コマンドで操作するなら下記です。

# ISOをアンマウント
lxc config device remove win11 iso

# 再起動
lxc restart win11

virtioドライバ統合ISOを作っていない場合

手順3のvirtio-win ISOをダウンロードしてマウントして利用します。

# virtio-win ISOをVMにマウント
lxc config device add win11 virtio-iso disk source=/home/user/iso/virtio-win.iso

# VM内でDドライブとして認識されるので
# デバイスマネージャーからドライバを手動インストール

Ubuntu デスクトップをVMで使用

UbuntuデスクトップをLXDのVMで行う方法も。
~/iso/ubuntu-26.04-beta-desktop-amd64.isoにある前提です。
下記でスクリプトを作成して実行。その後、LXD-UIで作業します。

cat << 'EOF' > ~/setup-ubuntu-vm.sh
#!/bin/bash
set -e

VM_NAME="ubuntu26"
ISO_PATH="$HOME/iso/ubuntu-26.04-beta-desktop-amd64.iso"
CPU=4
MEMORY="8GiB"
DISK="50GiB"

echo "==> VMを作成: $VM_NAME"
lxc init "$VM_NAME" --empty --vm

echo "==> CPU・メモリを設定"
lxc config set "$VM_NAME" limits.cpu $CPU
lxc config set "$VM_NAME" limits.memory $MEMORY

echo "==> ディスクサイズを設定"
lxc config device override "$VM_NAME" root size=$DISK

echo "==> ISOをマウント"
lxc config device add "$VM_NAME" iso disk \
    source="$ISO_PATH" \
    boot.priority=10

echo "==> VMを起動"
lxc start "$VM_NAME"

echo ""
echo "==> 完了!LXD UIのコンソールからインストールを進めてください。"
echo "    インストール完了後は以下を実行してISOを取り外す:"
echo "    lxc config device remove $VM_NAME iso"
echo "    lxc restart $VM_NAME"
EOF

chmod +x ~/setup-ubuntu-vm.sh
~/setup-ubuntu-vm.sh

Windowsと違う点:

  • Ubuntu VMはvTPM・SecureBootは不要なので設定なし
  • virtioドライバ統合も不要(LXDがKVMに最適化されたドライバを自動で使用)
  • インストール後はLXD UIのコンソールかSSHで接続可能
タイトルとURLをコピーしました