はじめに
仮想基盤のOSS化でHyper-VからProxmoxへ移行することになり、
Hyper-Vの第二世代で動かしているWindows10を移行として詰まったので、
ノウハウとして記録しておく。
KVMではインポートってだけにいかないのでちょっと大変
バージョン,OSなど
- Proxmox バージョン: v8.2.2
- Hyper-V OS: WindowsServer2022
- Windows10 仮想マシン世代: Hyper-V第二世代
移行手順
1. VMをエクスポートし、Proxmoxへ転送する
- Hyper-Vの機能を使ってVMをエクスポートする(.vhdxファイル)
- Proxmoxサーバへvhdxファイルを転送する
2. Windows用の仮想デバイスドライバのISOを入手してProxmoxのライブラリにアップロードしておく
3. Proxmoxに移行先のVMを作成する
Hyper-Vの仮想マシンはImportだけで動かすことはできない。
4. vhdxファイルをインポート
ProxmoxのストレージにVMディスクとして登録する
vhdxをインポートした場合raw型に変換されて登録される
# qm importdisk <VMID> <vhdx> <storage>
qm importdisk 101 foo.vhdx local-lvm
5. 仮想マシンにディスクを接続
6. VMの初回起動及びVirt-IOの設定
7. ディスクの接続方式をSCSI(VirtIO SCSI single)に変更
8. 再度起動すれば完了
正常に起動すればOK!
初回はブルースクリーンがでるかも。
VirtIOドライバを入れたことでネットワークデバイスも利用できるようになっているはず
もう少しさくっといけたらな~。
おつかれさまでした。
SSD環境のProxmoxだと上記でうまくいかない?
別のSSD環境のProxmoxに取り込もうとしたら上記手順ではうまくいかなかった。
SSDが原因じゃないかもしれないがブルースクリーンが初回以降も発生してWindowsが起動せず・・・。
なんとか解消した際の流れも残しておく。
公式にあったSCSI(VirtIO SCSI single)のダミーディスクと一緒に起動すると動いて、
そのあとだとダミーディスクなしでも動くようになった。
公式だとダミーディスクはドライバインストール用で、ディスク外してから単独起動しているぽかったから、ダミーは関係なさそうに思えるのだけど正しい動きなのだろうか?
https://pve.proxmox.com/wiki/Paravirtualized_Block_Drivers_for_Windows
1. VMディスクをSATA接続する
2. SCSI(VirtIO SCSI single)の1GBのダミーディスクを作成する
3. ブート順を調整してVMディスクで仮想マシンを起動する
4. デバイスマネージャで追加ディスクが認識されていることを確認する
5. 仮想マシンを停止し、VMディスクをSCSI(VirtIO SCSI single)で接続しなおす
6. ブート順を調整してVMディスクで仮想マシンを再度起動し、ブルースクリーンにならないか確認する。
7. 仮想マシンを停止し、ダミーディスクをデタッチする。
8. ブート順を調整してVMディスクで仮想マシンを再度起動し、ブルースクリーンにならないか確認する。