QEMUであそブログ(仮)

QEMUで遊びます。それだけだと、ネタが無くなると思いますので、それ以外にも書くかもしれません。

Ubuntu 20.04 LTS (Arm64) をqemuを使って Mac(10.15)上で動かす

今日は、Ubuntu 20.04 LTS (Arm64) をqemuを使って Mac(10.15)上で動かしてみたいと思います。

下のサイトから focal-server-cloudimg-arm64.img をダウンロードします。

cloud-images.ubuntu.com

ダウンロードできたら、~/qemu/UbuntuArm64 ディレクトリに置いておきます。

f:id:itlab7:20210605103520p:plain

ダウンロードしたimgファイルの中にあるinitrd とvmlinuz を取り出したいので、Mac用の7zipをインストールします。

下のサイトからMac OS用(コンソール版)のものをダウンロードして、展開します。

sevenzip.osdn.jp

展開したディレクトリの中に 7zz という実行ファイルがあると思いますので、それを ~/qemu/UbuntuArm64 ディレクトリにコピーします。

f:id:itlab7:20210606141900p:plain

7zz を実行すると、アプリケーションの実行許可が必要なので許可します。

(念のためウィルスチェックしてみましたが問題ありませんでした。)

ターミナルを開いて、~/qemu/UbuntuArm64 ディレクトリに移動して、下のコマンドで img ファイルを展開します。

./7zz x focal-server-cloudimg-arm64.img

0.img の中のbootディレクトリにあるファイルを下のコマンドでリストします。

./7zz l 0.img boot

f:id:itlab7:20210606144158p:plain

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ファイルと同じディレクトリに移動して、不要なファイルも削除します。

f:id:itlab7:20210606144842p:plain

ターミナルで下のコマンドを実行して、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を押すとログインプロンプトが現れました。

f:id:itlab7:20210612104509p:plain

user ID とパスワードは両方 ubuntu でログインします。

なぜかログインできなかったので、qemuのウィンドウを閉じて、もう一度qemuを起動しなおします。

今度はログインできました。

f:id:itlab7:20210612110923p:plain

uname -a コマンドでArm64用のUbuntuが動いていることを確認できました。

f:id:itlab7:20210612111207p:plain

下のコマンドでシャットダウンします。

sudo shutdown -h now

今後はこのイメージを使って色々試したいので、UbuntuArm64ディレクトリごとコピーしてバックアップを取っておきます。

注意:実際に使う場合は、セキュリティを考慮してパスワードを変更したり、新しいユーザを作った方が良いでしょう。また、日付を現在にして、sudo apt update や sudo apt upgrade もした方が良いでしょう。

今回は以上です。