VirtualBoxから泣く泣くHyper-Vへ移行した話

# 背景 #
この記事を投稿しようとした理由は、自分への戒めと誰かの助けになればなと思った次第です。

事の発端はWSL2を利用しようと思ったことでした。
普段はテレワークのため、会社のデスクトップにリモートデスクトップを利用して仕事をしています。(以降、デスクトップと記載します)
デスクトップではVirtualBoxにてUbuntu18.04 Desktopを動かしてテストやらなんちゃってコーディングをしているのですが、ふとWSL2に興味を持ち(これが災難の始まり)使ってみたところVirtualBoxが起動しなくなっていることに気づきました。
調べたところ、VirtualBoxはVT-xという仮想化技術を使用しているのに対しWSL2はHyper-Vという仮想化技術を使用しているとのことでした。
そしてこの二つの仮想化技術はあろうことか共存できないらしく、WSL2を導入した時点でVirtualBoxはお亡くなりになりました。
とはいうもののHyper-Vを無効化すればVirtualBoxを使えるようになるという記事を至る所で見つけたので、何も疑うことなくWSL2をアンインストール&Hyper-Vの無効化手順を実行しました。
これにてVirtualBox復活かと嬉々としてVMを起動したのもつかの間、起動なんてしないではありませんか..
何度も何度も"Windowsの機能"からHyper-Vが無効化されているのを確認し、PowerShellで下記コマンドを実行したりしました。

```
Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Hypervisor
```

しかしcmdにて"systeminfo"を実行すると必ずHyper-Vは検出されるんですよね。

```
Hyper-V の要件:         ハイパーバイザーが検出されました。Hyper-V に必要な機能は表示されません。　←？？？
```

これは他記事にもあるようにBIOSから設定をしなければいけないのかと思いましたが、デスクトップは会社にあるのでそんなことはできない...
何とかデータを救出したかったので、悩みに悩んでHyper-VにUbuntuのVMを引越しすることにしました。
そこでつまずいた点などいくつかあったのでここに記すことにしました。
手順の中に無駄なものが含まれているかもしれませんがご容赦ください。

# VirtualBoxからHyper-Vへの移行手順 #
### その1：VMのファイルをHyper-Vにて利用できる形式に変換する ###
自分の場合、Ubuntu公式サイトのvdiファイルをそのまま利用していたのでvdiからvhdxへ変換しました
下記サイト様を参考に変換を行いましたが、自分の場合うまくいかなかったのでvdi→vmdk→vhdxという形で変換を行いました

https://network79note.blogspot.com/2021/02/virtualboxhyper-vvmware.html

手順としては、vdiファイルを下記コマンドでvmdkファイルへ変換した後、上記サイト様を参考にvhdxファイルへ変換しました

```
"C:\Program Files\Oracle\VirtualBox\VBoxManage" clonehd --format VMDK "<vdiファイルのパス>\<vdiファイル名>" "<出力したいパス>\<任意のvdmkファイル名>"
```

これでvhdxファイルは用意できたかと思います

### その2：Hyper-V環境を構築する ###
憎きHyper-V環境を構築します
"コントロールパネル"→"プログラム"→"プログラムと機能"→左側の"Windowsの機能の有効化または無効化"の順にクリック
下記画像の赤枠を有効化後、PCの再起動。
![image1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/666814/406bb47b-69cc-01c9-091d-7e9f761cee5d.png)

### その3：Hyper-VからVMを動かす ###
"Hyper-Vマネージャー"を起動
"操作"→"新規"→"仮想マシン"を選択
![image2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/666814/0bb84f83-b4e9-75aa-826e-92e61942cbce.png)

"開始する前に"を飛ばし、"名前と場所の指定"で任意の名前をつける
"世代の指定"では第2世代を指定
第1世代でもうまくいくかもしれませんが、自分の環境だと第2世代でうまくいったので第2世代で進めます
"メモリの割り当て"は対象のVMに割り当てていたメモリと同じだけ割り当てました
"ネットワークの構築"では接続しないでもDefault Switchでもインターネットに抜けれないのでお好きなほうで
"仮想ハードディスクの接続"では真ん中の"既存の仮想ハードディスクを使用する"を選択し、先ほど変換したvhdxファイルを選択
完了をクリックして完成
この時点でVMを起動して立ち上がればよいのですが、自分の場合エラー画面が出て起動しなかったのでもう一工夫しました

#### VMが起動しなかった場合 ####
ubuntuの公式サイトからubuntuのイメージファイル(isoファイル)をダウンロード

https://www.ubuntulinux.jp/products/JA-Localized/download

Hyper-Vマネージャーから先ほど追加したVMを右クリック→"設定"をクリック

"ファームウェア"より、起動順をDVDドライブを一番上にする
※画像ではDVDドライブが2番目になっていますが1番目にしてください
![image3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/666814/0d569a5c-795a-895c-34d4-21b6cf8faa07.png)

"セキュリティ"より、セキュアブートのチェックを外します
![image4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/666814/99f6b706-0f1e-0b89-639f-1f147a606a18.png)

"SCSIコントローラー"からDVDドライブを追加
![image5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/666814/50a9968f-023c-9559-9c43-01979286e981.png)

先ほど追加した"DVDドライブ"からダウンロードしておいたubuntuのイメージファイルを選択
![image6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/666814/a8ad8b3f-07fd-261b-5ce2-146eae777c58.png)

OKをクリックしVMを起動するとubuntuのイメージファイルが立ち上がるので、デスクトップが表示されたら再起動します
この再起動時にイメージファイルの取り外しを聞かれるので取り外しを行うと、再起動後の起動で二度と立ち上がることがないと思っていたubuntuが立ち上がります

# さいごに #
これにて一段落つきましたが、ファイルレスキューするなりHyper-Vで本番運用するなりしてください！
VirtualBoxに戻りたい...