VirtualBox用イメージファイルをHyper-V用に変換する方法

# 狙い
VitualBox用のイメージファイル（ova形式）として公開されているソフトがあります。
例えば、Elmer Virtual Machinesです。多数のライブラリが組み込まれており、Windows版やUbuntu/PPA版にはない魅力があります。

[Index of /pub/sci/physics/elmer/bin/VirtualMachines](https://www.nic.funet.fi/pub/sci/physics/elmer/bin/VirtualMachines/)

他に使用したことがありませんが、富山県立大学様の「オープンCAE学会 OpenFOAM入門・初級講習会(20240622)」においてもovaファイルにより公開されています。
[オープンCAE学会 OpenFOAM入門・初級講習会(20240622)](https://eddy.pu-toyama.ac.jp/openfoam/opencae-society-japan/#%E5%8B%95%E4%BD%9C%E7%A2%BA%E8%AA%8D)

WindowsマシンでのLinuxの動作は、高速な順に (1) WSL2, (2) Hyper-V ≒ VMware Workstation Pro, (3) VirtualBox と一般的にいわれています。
VirtualBoxからHyper-Vへの環境変更ができましたので報告します。
なお、VMware Workstation Proからは、ovaファイルを直接インポートすることができますので（失敗したと表示されても再試行すればインポートできています）、省略します。
# 変更方法
### (1) VirtualBoxによりインポートし、VDIファイルをvhd形式に変換する
ovaファイルをインポートすると、VirtualBoxのディスクイメージが作成されます。以下のVBoxManage.exeのコマンドにより、Hyper-Vのvhd形式に変換します（仮想マシンのドライブを2TB以上にすることはない？ので、vhdで良いと考えています。
vhdに変換できれば、hyper-Vからvhdxに変換することも可能です
```powershell
cd "C:\Program Files\Oracle\VirtualBox"

.\VBoxManage.exe clonemedium "D:\...\Elmer-Ubuntu22LTS-disk002.vdi" D:\...\Elmer-Ubuntu22LTS-202504.vhd --format=VHD
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone medium created in format 'VHD'. UUID: a14e6dc5-b401-4922-b888-f01cdeebd3b8
```
![Hyper-Vのディスクの変換.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4014034/d0e7bd6e-f6b1-471d-895e-604b41fe9f82.png)

### (2) 7zipによりovaファイルから現れたvmdkを取り出し、vhd形式に変換する
7zipファイルマネージャーからovaファイルを開き、現れたvmdkファイルをコピーする
![7zip-and-ova.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4014034/e5fe858e-b3eb-4dc2-a63f-858a9738d04a.png)
```powershell
cd "C:\Program Files\Oracle\VirtualBox"

.\VBoxManage.exe clonemedium "C:\...\Elmer-Ubuntu22LTS-disk002.vmdk" "C:\...\Elmer-Ubuntu22LTS.vhd" --format=VHD
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
```
### (3) 変換後の操作
- 仮想マシンの新規作成（既存の仮想ハードディスクを使用する：作成したvhdファイル）
- クイック作成のUbuntuは問題ないですが、ISOや他の仮想環境から移植した場合は「拡張セッション」の設定が難しいです。自信がなければ、仮想ハードディスクのコピーを保管しましょう
- 設定を確認・修正して、起動します
- xrdp xorgxrdp linux-tools linux-cloud-toolsのインストール（仮想マシンで使う場合は、HWEカーネルがうっとうしく思います。私はVirtualBoxから取り出す前に消去しちゃいます。）

```bash
sudo apt update
sudo apt install xrdp xorgxrdp

sudo nano /etc/xrdp/xrdp.ini
# Comment out port=3389
;   port=3389
port=vsock://-1:3389

# HWEカーネルを消去してgenericのみを使用する場合
sudo apt install linux-tools-generic linux-cloud-tools-generic
# HWEカーネルを使用する場合
# sudo apt install linux-tools-virtual linux-cloud-tools-virtual
```
以上の操作を行うと、xrdpのログイン画面がでてきて、画面の解像度や共有フォルダなどの設定ができるようになります。

![Hyper-V-GNOME.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4014034/a1655dba-02f2-4aa7-80c0-4ad116a2b81c.png)
![Screenshot-Elmer.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4014034/d4f95e17-efb7-496c-8164-4a78abfb792f.png)


- 私はGNOMEデスクトップで良いのでここまでです
Ubuntuデスクトップにしたい場合は、以下のUbuntu24.04の設定方法を参考に設定を追加すればよいと思います
- 参考サイト
[Hyper-VでUbuntu24.04LTSをインストール・セットアップする](https://zenn.dev/junkor/articles/cb486c14a2db18)
[Ubuntu Weekly Recipe　第844回　Windows 11の Hyper-V に Ubuntu24.04 LTSをインストールする
](https://gihyo.jp/admin/serial/01/ubuntu-recipe/0844)
[linux-vm-tools/ubuntu/24.04/install.sh](https://github.com/Hinara/linux-vm-tools/blob/master/ubuntu/24.04/install.sh)

:::note warn
警告
共有フォルダのファイル操作は、端末から行うことを推奨します。
nautilusからGUIで行うとフリーズします。
:::


# 今後のトレンド
HYper-VはWindowsの開発環境提供が主の目的のようです（まっさらな状態でテストできる）。Ubuntu 24.04についてはリリースから1年経過しますが、Hyper-V クイック作成ギャラリーに追加されていません。
LinuxはWSL2環境への移行を促しているようです。
[ microsoft/linux-vm-tools ](https://github.com/microsoft/linux-vm-tools)

:::note info
このマイクロソフトのリポジトリはアーカイブされました
Hyper-V クイック作成ギャラリーからデフォルトで最適化された Ubuntu イメージを引き続き使用できます。Windows で統合された Linux 開発者エクスペリエンスを探している場合は、WSL 2 を確認することをお勧めします。WSL 2 を使用すると、開発者は、従来の仮想マシンやデュアルブート設定のオーバーヘッドなしで、ほとんどのコマンドラインツール、ユーティリティ、アプリケーションを含む GNU/Linux 環境を Windows 上で直接、変更せずに実行できます。WSL で Linux GUI アプリを実行する機能もロードマップに含まれています。
:::

VMware Workstationは、利益にならないため、Broadcomは積極的でないように思われます（登録、ダウンロードのときに住所などを追加記入してまで入手する価値はないように思います）。

互換性重視のためにVirtualBoxは残ると思われます。

### まとめ
- Linuxデスクトップ環境・使い勝手を含めた互換性を重視したい場合はVirtualBox
- 実用的な運用はWSL2に移行していくのような気がします

### オープンCAEソフトのWSL対応

#### Salome-meca
フォーラムの管理者が、ベータWSL版（EDF R&D / ERMESの名前入り）を公開しています。
[Salome Meca 2024.1 on WSL - Ready to use distribution](https://forum.code-aster.org/public/d/28014-salome-meca-20241-on-wsl2-ready-to-use-distribution)
```
 wsl -d smeca24
===============================================================================
    __         _
   / _\  __ _ | |  ___   _ __ ___    ___    /\/\    ___   ___  __ _
   \ \  / _` || | / _ \ | '_ ` _ \  / _ \  /    \  / _ \ / __|/ _` |
   _\ \| (_| || || (_) || | | | | ||  __/ / /\/\ \|  __/| (__| (_| |
   \__/ \__,_||_| \___/ |_| |_| |_| \___| \/    \/ \___| \___|\__,_|
                               EDF R&D / ERMES           V2024.1.0
===============================================================================
Vendor: Mesa/X.org (0xffffffff)
[ INFO    ] Graphics are properly configured...
[         ]     Display:0
[         ]      Vendor: Mesa/X.org (0xffffffff)
-------------------------------------------------------------------------------
type  welcome  in any terminal to show the welcome message
```
#### Elmer
既にgithubにElmer-WSLがあります。
リンクされたライブラリはElmer Virtual Machinesの方が多かったので、利用していません。nixを使った自動コンパイル版です。
[ ElmerCSC / elmer-wsl ](https://github.com/ElmerCSC/elmer-wsl)