Solved > Snow Leopard - resurrection of dead iMac

Jul 19, 2012
HD 4000
iMac, MacBook, Mac mini
Classic Mac
iBook, iMac, LC, Performa, Power Mac, PowerBook, Quadra
Mobile Phone
My iMac left me without saying goodbye . . . but I had lot of work to finalise on the harddisk, and my application, too.
I created an image from the "Macintosh HD" in my Linux box, and than I had looked for the way, how to run the Mac OS X in a VM. But every where on the Internet one can find only how to install a new (even old Snow Leopard) Mac OS X on to bare metal. Well, after some bitter attempts to follow some sporadic advices, I found this way:

On Linux box (debian - linux stable=Buster, v. 10 kernel 4.19) I have installed qemu 3.1.
Here on I found and downloaded iBoot.iso, and prepared the qemu start command script:


qemu-system-x86_64 -name SnowLeopard -enable-kvm -machine type=q35,accel=kvm -m 3072 \
-cpu Penryn,kvm=off -smp cpus=2,cores=2 -device VGA,vgamem_mb=256 \
-boot order=c,once=d -no-fd-bootchk -smbios type=2 -serial none -parallel none \
-device isa-applesmc,osk="the.secret.string..." \
-device ide-cd,bus=ide.0,drive=sda -drive if=none,id=sda,format=raw,snapshot=on,file=iBoot.iso \
-device ide-hd,bus=ide.1,drive=sdb -drive if=none,id=sdb,format=raw,snapshot=on,file=MacintoshHD.dd \
-device ide-hd,bus=ide.2,drive=sdc -drive if=none,id=sdc,format=raw,snapshot=on,file=DatadiskHD.dd \
-net nic,macaddr=D0:50:99:61:97:60,model=e1000-82545em -net user,restrict=off \
-usb -device usb-host,vendorid=0x04f3,productid=0x0235 \

The last line shows how to connect an extra USB mouse*) because the Mac OS X does not correctly recognise the "pointer" data sent by hypervisor (most probably PS/2 format).
The screen resolution is limited to 1024x768, not accelerated, but for DTP work it is sufficient and better then nothing. (Passthrough can improove it)
The legal note: I derive my claim to use the Mac OS X from the fact that I actually own the iMac hardware even dead, and I have it under the table - hence I use the software on the Apple HW (even running in VM).

*) of course you have to put in the vendor/product ID of your USB mouse, and chown your-user:your-group /dev/bus/usb/00X/00Y to give the qemu the chance to capture the mouse data.
Last edited: