VirtualBoxからProxmox VEに仮想マシンを移行した話

# Proxmox VEとの出会い

今の会社では社内環境には[ESXi](https://customerconnect.vmware.com/jp/web/vmware/evalcenter?p=free-esxi7)を使っています。
古いバージョンのためWindows用のvSphere Clientを使わなければいけない。
CPUはワークステーションらしくXeonを積んでいたりするのだけど、ストレージもメモリも筐体の割に容量が小さく、だんだん使いにくくなってきています。
単純に容量を増やせればいいんですけど、過去にマニュアル通りにやってもハードウェアが認識しなかったので、強烈な相性問題があるのかとか思って以来手が出しにくい状態です。

そんな話は置いておいて、なにか仮想化環境はないかなと思っていたときに[Proxmox VE](https://www.proxmox.com/en/)に出会いました。
仮想化技術はいくつかありますが、[OpenStack](https://www.openstack.org/)はセットアップが超絶めんどくさいので挫折。ESXiかなとも思っていましたが、Proxmox VEを調べていくうちに、インストールも簡単そうだしちょっと興味が出てきたので使ってみることにしました。

# VirtualBoxのVMを移行する

自宅のPCの中に乱雑に作られたLinuxのVMの移行と、Proxmoxをインストールするマシンに入っているWindows 10のプロダクトキーを使って新規にWindows 10をセットアップします。

移行方法は検索すれば出てくるので、ここでは躓いた箇所などを共有しようと思います。

Proxmox VEはDebianベースのアプライアンスです。
[QEMU（キューエミュ）](https://ja.wikipedia.org/wiki/QEMU)というエミュレーション技術が使われています。
なので、QEMUを使えば移行はできますが、今回は手っ取り早くVMDKを使って移行します。

最初に断っておくと、CentOS 8とRockyLinux 8の移行がうまくできませんでした。

## CentOS 6、CentOS 7の移行

基本的に以下の方法でOKなのですが、補足が必要な箇所があるのかなと思いました。

https://zarat.hatenablog.com/entry/2020/06/26/195540

### OVAの解凍方法

普通に圧縮解凍ソフトでZIP解凍すると、中身が見れます。
私は[LhaForge](https://forest.watch.impress.co.jp/library/software/lhaforge/)を使っています。
![qiita_proxmox01_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131218/768284f4-7d30-88f8-30c7-b0a58b186d84.png)

その中からVMDKだけを取り出します。
![qiita_proxmox01_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131218/a151fe68-c3de-ced2-8729-3e616cff7d75.png)

### 初期のVMのディスクサイズは適当でいい

どうせ削除するので、ディスクサイズは適当でいいです。

### 手順通りにやったけどVMが再起動を繰り返す

VMを起動するとBIOS画面を通り過ぎてブートしようとするんだけど、`Press Ctrl-B for the iPXE command line...`とか出て、再起動を繰り返してしまう。
![qiita_proxmox01_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131218/2571c193-fd81-7071-f329-f381f6d82824.png)

調べてみると[iPXE](https://ipxe.org/)はネットワークブートの仕組みらしく、そこから導き出せるのはブートプライオリティの設定が間違っているのではないかということです。

実際BIOS画面でBoot Menuに入ると起動ディスクを選択でき、OSが起動できました。
![qiita_proxmox01_04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131218/65554751-b12a-84fb-6974-29474204cd20.png)
![qiita_proxmox01_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131218/a2617722-affc-e180-c534-a4aff89ad711.png)

ですが、ここでブートプライオリティを設定できません。

Proxmoxの画面で、まずディスクをアタッチして、ブートを有効にして、ブートプライオリティを上げることで、解決できます。
![qiita_proxmox01_06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131218/f0a38ffe-1ae0-3af8-2aed-73b8d8abf330.png)
![qiita_proxmox01_07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131218/1eeac504-7699-1c9e-0374-f061380ed824.png)

### ネットワークが認識されない

まずCentOS 6は`/etc/udev/rules.d/70-persistent-net.rules`にかかれている設定をコメントアウトして、OSを再起動すればOK。

次にCentOS 7についてです。
`ifconfig`コマンドで確認すると設定していた固定のIPアドレスが見えないし、新しく`ens18`というNICが作られている。
もともとあったNICの設定ファイルは`/etc/sysconfig/network-scripts/ifcfg-*`にあります。
でも`nmtui`コマンドで見ても`ens18`がない。

__なければ作ればいい。__

ということで、もともとあった`/etc/sysconfig/network-scripts/ifcfg-*`設定ファイルを`/etc/sysconfig/network-scripts/ifcfg-ens18`にコピー、デバイス名の書き換え、MACアドレスやUUIDなどの固有の設定を消して、OSを再起動すればOKです。


## RHEL8系が移行できない

これがよくわからない。
`dracut-initqueue timeout - starting timeout scripts`を繰り返してdracutシェルなるものに入ります。
色々調べて試してみたけど解決には至りませんでした。
大したものは入っていなかったので、RockyLinuxだけ最初からインストールし直しました。
![qiita_proxmox01_08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131218/fbd5c621-7936-4dca-71f8-3da725c3c12e.png)

# Windows 10のインストール

以下の記事で紹介されているので割愛。

https://zenn.dev/northeggman/articles/d7b29c4e2cd7c7#windowsos%E3%81%AE%E4%BD%9C%E6%88%90

基本的にはリモートデスクトップで使うことをおすすめします。
ProxmoxのコンソールはCanvasでレンダリングされているので、動きがもたつきます。
そして、インストールした直後のWindowsはこれだけ、スッキリしています。この驚きを紹介したかっただけです。
![qiita_proxmox01_09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131218/4517f33c-86e0-ec96-fa67-53e589be99bc.png)