Install MacOS 9.2.2 on a qemu-based PowerPC VM
- MacOS 9.2.2 was the last released version of MacOS Classic
- The macos-922-uni.iso ISO can be downloaded from MacintoshRepository.org
- Store the ISO in /var/lib/libvirt/iso/
Install qemu PPC and the openbios PPC
apt-get install -y qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virt-manager
apt-get install -y qemu-system-ppc qemu-kvm qemu-system-x86 qemu-slof openbios-ppc
apt-get install -y tigervnc-viewer
systemctl status libvirt-bin.service
adduser devon libvirt
adduser devon libvirt-qemu
Create a disk image to install MacOS 9 on to
- Create the disk in /var/lib/libvirt/images/
cd /var/lib/libvirt/images
qemu-img create -f raw -o size=2G macos92-disk1.img
Install MacOS 9.2.2 on a qemu-based VM
Install MacOS 9.2.2 from CD
- My qemu/kvm box is remote from my local machine, so I had qemu share the screen over vnc
- MacOS 9 does not boot with more than 1024m of RAM, so 1024m of RAM is the max.
- MacOS 9 will not boot with less than 64m of RAM, so 128m is probably a reasonable minimum.
- Specifying boot option d will boot from the CD.
qemu-system-ppc \
-vnc :1 \
-L pc-bios \
-boot d \
-M mac99 \
-m 1024 \
-prom-env 'auto-boot?=true' \
-prom-env 'boot-args=-v' \
-prom-env 'vga-ndrv?=true' \
-drive file=/var/lib/libvirt/iso/macos-922-uni.iso,format=raw,media=cdrom \
-drive file=/var/lib/libvirt/images/macos92-disk1.img,format=raw,media=disk \
-netdev user,id=br0 \
-device sungem,netdev=br0

Boot from the MacOS 9 disk
- Specifying boot option c will boot from the disk instead of the CD-ROM.
- The graphics level can be increased to 1024x768 with 32-bit color by adding the switch: -g 1024x768x32
qemu-system-ppc \
-vnc :1 \
-L pc-bios \
-boot c \
-M mac99 \
-m 1024 \
-prom-env 'auto-boot?=true' \
-prom-env 'boot-args=-v' \
-prom-env 'vga-ndrv?=true' \
-drive file=/var/lib/libvirt/images/macos92-disk1.img,format=raw,media=disk \
-netdev user,id=br0 \
-device sungem,netdev=br0
