ちょっと仕事の関係もあり、AmazonLinux2023をいぢらなくてはいけなくなった次第。
AWSの無料利用分ははるか昔に使い切ったので、自前環境でどうにか動かせないかと思っていたら、やはり先駆者がいらっしゃったので、参考にしながらやってみる。
まず、AmazonLinux2023ですが、導入のisoイメージが存在せず、何があるかと言ったらqcow2というイメージファイルしかない。
じゃあ、どうやるの?といったところで、どうもcloud-initでVMを構成してやる模様。
Amazon Linux 2023(以下AL2023)のユーザーガイドに「Amazon EC2以外のAL2023」という項があり、説明がなされています。
流れとしては、次の通り。
- qcow2イメージをダウンロード
- 起動用のisoイメージを作る(鬼門)
- ProxmoxのVM作成で、作った起動用isoを選択して作成
- Proxmoxのシェルから作成したVMにqcow2イメージをインポート
- VMの構成からイメージインポートで作成されたディスクをアタッチする
- VM起動
では取り掛かります。
1.qcow2イメージのダウンロード
AL2023のユーザーガイド、「AL2023 VM イメージをダウンロードする」の項にダウンロードサイトへのリンクがあるのでそこからダウンロードします。
今から構築しようとしているProxmoxの環境はx86なので、kvmディレクトリ以下のqcow2イメージを取得します。
2.起動用のisoイメージを作る
起動用isoを作るのにあたって、meta-data、user-dataで、構成するVMのホスト名やユーザーを定義することになります。
AL2023の場合、AWSで使ったことがある人ならわかりますが、初期ユーザとして、ec2-userがビルトインされています。なので、このユーザーはuser-dataの中で定義してあげる必要があります。
作成に当たってはProxmoxのシェルコンソールから作業します。
一連の実行コマンドは以下。
# mkdir seedconfig
# cd seedconfig
# touch meta-data
# touch user-data
# vi meta-data
local-hostname: localhost
:wqで保存
# vi user-data
#cloud-config
#vim:syntax=yaml
users:
# A user by the name 'ec2-user' is created in the image by default.
- default
- name: ec2-user
chpasswd:
list: |
ec2-user:password
expire: True
:wqで保存
# mkisofs -output seed.iso -volid cidata -joliet -rock user-data meta-data
# mv ./seed.iso /var/lib/vz/template/iso/
引っかかったのは、chpasswdディレクティブの初期パスワード設定…
初期パスワードですぐに変更するので簡単なもの(ひねりもないそのままpassword)にしていたのですが、これがログインできない…
cloud-initのサイトでuser-dataのフォーマットに関する説明を読んでも不足はなさそう。
何度か試行しているうち、「expire: True」を足したら、ちゃんとパスワード反映された。
…何があったのだろうか。とりあえず、ちゃんとログインできる環境ができたのでヨシ。
3.ProxmoxのVM作成で、作った起動用isoを選択して作成
これはもう、そのまま。
VMの作成画面で、OSを選択する画面で、Storage:localに配置したseed.isoを選択するだけ。
あとは、いつも通りにVMを作成するだけ。ただし、VM IDは次手順で使うので控えること。

4.Proxmoxのシェルから作成したVMにqcow2イメージをインポート
再び、作成に当たってはProxmoxのシェルコンソールから作業。
ダウンロードしておいたイメージファイルをインポートします。
今度は一連の実行コマンドは以下。
#qm importdisk <VM ID> /root/amazon/al2023-kvm-2023.6.20250107.0-kernel-6.1-x86_64.xfs.gpt.qcow2 local-lvm -format qcow2
<VM ID>には、3で控えておいた、VM IDの数字を入れることになります。
5.VMの構成からイメージインポートで作成されたディスクをアタッチする
VMのHardware構成画面に、”Unused Disk”が追加されているので、これをHardDiskにアタッチします。
ついでに使わないデフォルトのHardDiskはデタッチしておきます。
続けて、VMのOption構成画面で、”Boot Order”に先ほどアタッチしたディスクに、チェックを入れて起動優先度を上げて保存すれば、作業は完了。
6.その他
そのままだと、VMのディスクはlocal-lvmに保存されているので、Migrationができません。
HW構成画面から、HardDiskを選択して、[Disk Action]から”Move Storage”を選択してcephfsに移動しましょう。

VMを起動すると、起動には時間がかかりますが、無事ログイン画面にまで遷移すると思います。
あとは、AWS EC2でLinuxを使うときみたいにec2-userでログインして、目的の操作に着手できます。
初回ログイン時には、パスワードを変更する必要があるので注意してください。
参考
proxmox上にAmazon Linux2023を入れてみた
https://qiita.com/takenoko0804/items/7b509df842078eccf04bAmazon Linux 2023 イメージをダウンロードして KVM、VMware、Hyper-V で使用する
https://docs.aws.amazon.com/ja_jp/linux/al2023/ug/outside-ec2-download.htmlcloud-init
https://docs.cloud-init.io/en/22.2/topics/format.html