今日は、Ubuntu 20.04 LTS (Arm64) をqemuを使って Mac(10.15)上で動かしてみたいと思います。
下のサイトから focal-server-cloudimg-arm64.img をダウンロードします。
ダウンロードできたら、~/qemu/UbuntuArm64 ディレクトリに置いておきます。
ダウンロードしたimgファイルの中にあるinitrd とvmlinuz を取り出したいので、Mac用の7zipをインストールします。
下のサイトからMac OS用(コンソール版)のものをダウンロードして、展開します。
展開したディレクトリの中に 7zz という実行ファイルがあると思いますので、それを ~/qemu/UbuntuArm64 ディレクトリにコピーします。
7zz を実行すると、アプリケーションの実行許可が必要なので許可します。
(念のためウィルスチェックしてみましたが問題ありませんでした。)
ターミナルを開いて、~/qemu/UbuntuArm64 ディレクトリに移動して、下のコマンドで img ファイルを展開します。
./7zz x focal-server-cloudimg-arm64.img
0.img の中のbootディレクトリにあるファイルを下のコマンドでリストします。
./7zz l 0.img boot
initrd と vmlinuz の名前が分かったので、下のコマンドで取り出します。
./7zz x 0.img boot/initrd.img-5.4.0-74-generic
./7zz x 0.img boot/vmlinuz-5.4.0-74-generic
bootディレクトリの中に initrd とvmlinuzがあるので、imgファイルと同じディレクトリに移動して、不要なファイルも削除します。
ターミナルで下のコマンドを実行して、qemuを起動します。(長いのでトリプルクリックで選択してください)
qemu-system-aarch64 -m 4096 -smp 2 -cpu cortex-a53 -machine virt-5.1 -boot menu=on -name Ubuntu20_04_Arm64 -drive if=none,id=ubuntu_img,file=focal-server-cloudimg-arm64.img -device virtio-blk-device,drive=ubuntu_img -initrd initrd.img-5.4.0-74-generic -kernel vmlinuz-5.4.0-74-generic -append "root=/dev/vda1 rw rootwait mem=4096M console=ttyS0 console=ttyAMA0,38400n8 init=/usr/lib/cloud-init/uncloud-init ds=nocloud ubuntu-pass=ubuntu" -netdev user,id=user_net -device virtio-net-device,netdev=user_net
メニューの [View] - [serial0] を選択すると画面を表示できます。
(一旦他のウィンドウをアクティブにしないと、なぜか選択できません)
起動シーケンスが完了した後に、Enterを押すとログインプロンプトが現れました。
user ID とパスワードは両方 ubuntu でログインします。
なぜかログインできなかったので、qemuのウィンドウを閉じて、もう一度qemuを起動しなおします。
今度はログインできました。
uname -a コマンドでArm64用のUbuntuが動いていることを確認できました。
下のコマンドでシャットダウンします。
sudo shutdown -h now
今後はこのイメージを使って色々試したいので、UbuntuArm64ディレクトリごとコピーしてバックアップを取っておきます。
注意:実際に使う場合は、セキュリティを考慮してパスワードを変更したり、新しいユーザを作った方が良いでしょう。また、日付を現在にして、sudo apt update や sudo apt upgrade もした方が良いでしょう。
今回は以上です。