目的
macで自由度の高い無料のlinux仮想環境が欲しい!
UTMの使い方がよくわからん
ということでqemuを使ってmacにalmalinux9を入れましょう。
qemuって何
qemuはオープンソースの仮想環境を作るソフトです。
どのアーキテクチャのOSでも動かすことができる優れものです。
(本当はもっと高度なこともできるらしいけど知らない…)
準備
環境はm3 macです。
まずqemuをinstallします。(ここでは、brewで入れています)
brew install qemu
次に、ディスクを作ります。
qemu-img create -f qcow2 almalinux9.qcow2 20G
almalinux9を入れる
次に、almalinux9のisoイメージをダウンロードします。
公式からARM64(AArch64)用の「AlmaLinux OS 9.5 DVD ISO」をダウンロードしました。
次にqemuで起動するためのスクリプトを作ります。
launch-install.shとし、以下の内容で作りました。
覚えられるひとは直接ターミナルに入力してもいいです。
qemu-system-aarch64 \
-m 4096 \
-cpu cortex-a72 \
-smp 4 \
-monitor stdio \
-device virtio-gpu-pci \
-device nec-usb-xhci,id=xhci \
-device usb-kbd \
-device usb-tablet \
-display cocoa \
-machine virt \
-bios /opt/homebrew/share/qemu/edk2-aarch64-code.fd \
-cdrom ../ISO_images/AlmaLinux-9.5-aarch64-dvd.iso \
-netdev user,id=net0,hostfwd=tcp::10022-:22 \
-device virtio-net-device,netdev=net0 \
-drive if=none,file=almalinux9.qcow2,format=qcow2,id=hd0 \
-device virtio-blk-device,drive=hd0 \
-boot order=d
各項目の解説
(分かる範囲での解説です) -m 4096 メモリ4GB
-cpu cortex-a72 cpuの種類
-smp 4 4コア使う
-monitor stdio qemuの出力を標準出力にいれる
-device virtio-gpu-pci pci接続のgpuを設定
-device nec-usb-xhci,id=xhci usbの設定
-device usb-kbd キーボード
-device usb-tablet マウス
-display cocoa 画面出力にcocoa
-machine virt わからん
-bios /opt/homebrew/share/qemu/edk2-aarch64-code.fd biosの設定
-cdrom ../ISO_images/AlmaLinux-9.5-aarch64-dvd.iso インストールisoの設定
-netdev user,id=net0,hostfwd=tcp::10022-:22 ホストからsshできるようにポートを設定
-device virtio-net-device,netdev=net0 ネットワークの設定
-drive if=none,file=almalinux9.qcow2,format=qcow2,id=hd0 hddの設定
-device virtio-blk-device,drive=hd0
-boot order=d 起動をiso優先にする
実行します
./launch-install.sh
これで、almalinxをインストールするかどうか聞かれます。
「install almalinx」を選択します。
この後、output display is not activeと表示されますが、数分待つとインストール画面が現れます。
インストール画面
※縮尺がおかしかったらメニューのviewからfitを選ぶ
installが完了するとrebootボタンを押す指示があるので、そのまま押します。なお、インストールには結構時間がかかります。私の場合は1時間ぐらい。
自動的に再起動されて、almalinuxが立ち上がります。
※再度almalinuxのインストール画面になってしまったら、launch.shを実行したあとのターミナルに
(qemu) quit
といれて強制終了できます。
通常の起動
インストールした後はインストールディスクを外して起動します。
launch.shから該当箇所を削除します。
qemu-system-aarch64 \
-m 4096 \
-cpu cortex-a72 \
-smp 4 \
-monitor stdio \
-device virtio-gpu-pci \
-device nec-usb-xhci,id=xhci \
-device usb-kbd \
-device usb-tablet \
-display cocoa \
-machine virt \
-bios /opt/homebrew/share/qemu/edk2-aarch64-code.fd \
-netdev user,id=net0,hostfwd=tcp::10022-:22 \
-device virtio-net-device,netdev=net0 \
-drive if=none,file=almalinux9.qcow2,format=qcow2,id=hd0 \
-device virtio-blk-device,drive=hd0 \
ターミナルから
./launch.sh
としてしばらく待つと起動できます。
ヘッドレスで起動
画面に何も出力させずに起動させる場合は、画面出力の設定をlaunch.shから削除します。
以下の設定では、ssh -p 10023 ユーザー名@localhost
で接続できます。
launch.shの例
qemu-system-aarch64 \
-m 4096 \
-cpu cortex-a72 \
-smp 4 \
-machine virt \
-bios /opt/homebrew/share/qemu/edk2-aarch64-code.fd \
-netdev user,id=net0,hostfwd=tcp::10023-:22 \
-device virtio-net-device,netdev=net0 \
-drive if=none,file=almalinux9.qcow2,format=qcow2,id=hd0 \
-device virtio-blk-device,drive=hd0 \
-nographic