スズハドットコム

IT関連や3Dプリンタの記事、たまに生活のメモを書いていきます。

Intel N100ミニPCにProxmox VE導入 ②KVM仮想マシンをProxmoxに移行する

こちらの記事の続きです。
suzu-ha.com

前回はProxmox VEをインストールして触ってみました。
今回は、KVMで作成したWindows11仮想マシンをProxmox VEに移行してみようと思います。

移行元はこちらです。
qcow2形式のVMディスクですね。

root@proxmox:/nas# ls -l default/
total 104874692
-rwxr-xr-x 1 root root 107390828544 Jan  7 07:47 win11-devel.qcow2

移行元の仮想マシン定義xmlファイルで主要な設定も確認しておきます。
メモリ8GB、CPU4コア、ファームウェアはefi、ディスク接続はSATA、NICはe1000eです。

root@proxmox:/nas/qemu# cat win11-devel.xml
(略)
<domain type='kvm'>
  <name>win11-devel</name>
(略)
  <memory unit='KiB'>8388608</memory>
  <currentMemory unit='KiB'>8388608</currentMemory>
  <vcpu placement='static'>4</vcpu>
  <os firmware='efi'>
    <type arch='x86_64' machine='pc-q35-rhel9.2.0'>hvm</type>
(略)
  <cpu mode='host-passthrough' check='none' migratable='on'>
    <topology sockets='1' dies='1' cores='4' threads='1'/>
  </cpu>
(略)
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2' discard='unmap'/>
      <source file='/kvm_storpool/default/win11-devel.qcow2'/>
      <target dev='sda' bus='sata'/>
(略)
    <interface type='bridge'>
      <mac address='52:54:00:d3:4b:b4'/>
      <source bridge='br0'/>
      <model type='e1000e'/>
(略)

これらの設定を取り込みつつ、qcow2ファイルからインポートするコマンドは以下のとおりです。
長いので「\」を使って複数行にしていますが、「\」を取って1行にしてもOKです。

root@proxmox:/nas/qemu# qm create 101 --name win11-devel --ostype win11 \
--sockets 1 --cores 4 --memory 8192 \
--bios ovmf \
--net0 e1000e,bridge=vmbr0 \
--sata0 ssd1tb-zfs:0,import-from=/nas/default/win11-devel.qcow2,format=raw,discard=on \
--efidisk0 ssd1tb-zfs:999,format=raw \
--tpmstate0 ssd1tb-zfs:999,version=v2.0 \
--boot order=sata0

「101」はVMのIDです。既存の仮想マシンと重複しない値にします。
「--ostype win11」はOSの種類です。主要なOSをあげると、Windows11/2022の場合は「win11」、Windows10/2016/2019の場合は「win10」、Linux 2.6 - 6.X Kernelの場合は「l26」を指定します。
「--bios ovmf 」はファームウェアの指定です。UEFIは「ovmf」、BIOSは「seabios」です。
「--sata0 ssd1tb-zfs:0,…」はストレージです。「ssd1tb-zfs」はストレージのID、その後ろの数字はサイズです。
「import-from=…」を付けて既存の仮想ディスクからインポートする場合は、サイズは「0」を指定する決まりです。
「format=raw」はストレージの形式です。「qcow2」「vmdk」も選択できます。
「--efidisk0」はUEFIの設定保管用ストレージです。サイズは無視されますが何か書かないといけないので「999」にしています。
「--tpmstate0」はTPMの状態保管用ストレージです。サイズは無視されますが何か書かないといけないので「999」にしています。

詳細はqmのマニュアルを参照してください。

20分ほどでインポートが完了しました。
この環境ではインポート元のqcow2ファイルがNASに置いてありますので、ローカルのSSDからのインポートだともっと速いかもしれません。
100GBのディスクですが、実使用量は17.1GBになってますのでシンプロビジョニングですね。

root@proxmox:/nas/qemu# zfs list
NAME                       USED  AVAIL  REFER  MOUNTPOINT
ssd1tb-zfs                17.1G   882G   112K  /ssd1tb-zfs
ssd1tb-zfs/vm-101-disk-0   192K   882G   192K  -
ssd1tb-zfs/vm-101-disk-1  17.1G   882G  17.1G  -
ssd1tb-zfs/vm-101-disk-2    72K   882G    72K  -

仮想マシンを起動したところ無事成功しました。

ただし、ハードウェアが入れ替わっているので、さすがにWindowsのライセンス認証は外れてしまいました。これは仕方ない。