「ARM 版 Windows 11 の Hyper-V」の記事も「Cloud Image」の記事も少ないと思い記事にしてみました。
現在、自宅では cobbler による PXE ブート環境を整えており、
- Intel 環境でも、ARM 環境でも
- CentOS Stream 10 でも、Fedora でも、Debian でも
PXE ブートにより OS をインストールすることができます。
ただ、事前に cobbler import 作業が必要だったり、結局のところ OS インストール作業があるので、あまり使わない環境ならその手間をかけるほどのメリットがないことがあります。
そこで、Cloud Image を使ってみることにします、
なお、Cloud Image すらも必要ない場合、各ディストリビューションの Docker イメージが役に立つ可能性があります。
環境情報
昨今電気代の高騰や、Snapdragon を搭載したノートパソコンもラインアップが増えてきましたので、自宅でメインで利用している ARM Windows 環境で試してみます。
- Windows 開発キット 2023
- Snapdragon 8cx Gen 3
- Windows 11 24H2 26100.3037
作業途中で、Linux コマンドが必要になるので、WSL などの環境はあるとよいです。
イメージダウンロード
各ディストリビューションで公開されているイメージをダウンロードします。
OpenStack のサイトでまとめられています。
今回は、Fedora のイメージを使います。
「Azure vhd.xz」の記載がある「Fedora-Cloud-Base-Azure-41-1.4.aarch64.vhdfixed.xz」
というファイルをダウンロードします。
イメージの準備
xz ファイルですが、Windows 標準で解凍できるようです。
それにより、5GBの「Fedora-Cloud-Base-Azure-41-1.4.aarch64.vhdfixed」というファイルが出てきます。
vhdfixed という拡張子になじみがないのですが、容量固定の VHD ファイルのようです。
個人利用においては、容量可変の VHDX ファイルが使いやすいため PowerShell にて変換します。
ただ、vhdfixed だと処理できないため、事前に拡張子を vhd に変えておきます。
Convert-VHD Fedora-Cloud-Base-Azure-41-1.4.aarch64.vhd -DestinationPath Fedora-Cloud-Base-Azure-41-1.4.aarch64.vhdx -VHDType Dynamic
Cloud Image をもとにいろいろ試行錯誤すると思いますので、このファイルをどこかに保存しておくとよいと思います。
Config Drive の準備
Cloud Image はそのままだとログインすらもできません。
ひとまず下記のような cloud-config を作成しておけば root というパスワードが設定されます。
#cloud-config
password: root
chpasswd: {expire: False}
ssh_pwauth: True
ssh_authorized_keys:
- "ssh-ed25519 AAAAC以下略"
VM の作成
VHDX ファイルと、Config Drive をセットして、セキュアブートも無効化して VM を作成します。

動作確認
あとは起動すれば、自動的に Config Drive が設定されます。
画面に IPv4, IPv6 アドレスが表示されるので、SSH も楽です。

root ログインしようとすると下記のメッセージが表示されます。
Please login as the user "fedora" rather than the user "root".
親切に fedora ユーザーであるとメッセージが表示されますし、ほかのディストリビューションもどのユーザーでログインすべきか表示されるかと思いますので、ログインできないということはないかと思います。
ディスク拡張
もともとのディスクは5GBですので、用途によっては不足するかもしれません。

Hyper-V の画面でディスクを拡張すると、cloud-init の仕組みにより自動で拡張されることも確認しました。
まとめ
Cloud Image により、OSインストール作業不要で簡単に Linux の VM が建てられることを確認しました。
今回は、「Hyper-V」「ARM64」という特殊な環境ではありましたが、簡単に利用できます。
Fedora 以外のディストリビューションにおいては、Hyper-V 向けのイメージは用意されていない場合があり、その場合はほかの aarch64 のイメージから、qemu-img convert で変換してから利用する必要はあるかもしれません。