QEMUであそブログ(仮)

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

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

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

下のサイトから bionic-server-cloudimg-arm64.img (300MB以上)をダウンロードします。(今回は、20210708の物をダウンロードしました)

cloud-images.ubuntu.com

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

f:id:itlab7:20210711095610p:plain

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

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

sevenzip.osdn.jp

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

f:id:itlab7:20210711095816p:plain

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

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

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

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

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

./7zz l 0.img boot

f:id:itlab7:20210711100129p:plain

initrd と vmlinuz の名前が分かったので、下のコマンドで取り出します。

./7zz x 0.img boot/initrd.img-4.15.0-147-generic
./7zz x 0.img boot/vmlinuz-4.15.0-147-generic

bootディレクトリの中に initrd とvmlinuzがあるので、imgファイルと同じディレクトリに移動して、不要なファイルも削除します。

f:id:itlab7:20210711100555p:plain

ターミナルで下のコマンドを実行して、qemuを起動します。(長いのでトリプルクリックで選択してください)

qemu-system-aarch64 -m 4096 -smp 2 -cpu cortex-a53 -machine virt-5.1 -boot menu=on -name Ubuntu18_04_Arm64 -drive if=none,id=ubuntu_img,file=bionic-server-cloudimg-arm64.img -device virtio-blk-device,drive=ubuntu_img -initrd initrd.img-4.15.0-147-generic -kernel vmlinuz-4.15.0-147-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] を選択すると画面を表示できます。

(一旦他のウィンドウをアクティブにしないと、なぜか選択できません)

(qemuのウィンドウをクリックすると、マウスカーソルが消えてしまうので、その場合はcontrol+option+Gで抜け出します)

起動シーケンスが完了した後に、Enterを押すとログインプロンプトが現れました。

f:id:itlab7:20210711101151p:plain

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

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

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

f:id:itlab7:20210711101543p:plain

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

f:id:itlab7:20210711101700p:plain

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

sudo shutdown -h now

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

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

今回は以上です。