dotfiles/notes/macos/macos_qemu.md
2023-12-23 20:13:52 -07:00

1.7 KiB

Qemu

Optimized options that seem to work on MacOS:

-m 4G -smp 6                # Resources: Use 4GB memory and 6 cpus
-machine type=q35,accel=hvf # Machine: Default is `pc`. `q35` should be better. Haven't noticed any perfomance gains
                            # Hypervisor: Uses HyperVisorFramework to speed up qemu a LOT, ~6x
-drive file=archlinux.qcow2,media=disk,if=virtio  # Boot: Points to the image
-nic user,hostfwd=tcp::10022-:22  # Network: Forward host port 10022 to guest 22, so `ssh -p10022 user@localhost` should work

# Display options on MacOS:
    # If you launch this script in the background, the same terminal can be
    # used to ssh into qemu. After exiting, tmux's scrollback breaks. Opening
    # and closing [n]vim fixes this...
-nographic
    # Doesn't do anything noticably different from just -nographic
-monitor none -curses -nographic
    # Support a 4k instance on MacOS. A spice server would be better. It's
    # really laggy with KDE, to the point of unusable
-vga virtio -full-screen -display cocoa
    # Only supports 1080p. MacOS must use a cocoa display. Compared to above
    # the display scales by 2x which makes text bigger tho more blurry
-vga std -display cocoa

Qemu fully nongraphic

MacOS can't use -display ncurses properly with qemu. Ncurses requires a linux kernel to work properly. Instead use -nographic and launch the process in the background. Bash uses & for backgrounding. You can now SSH into the qemu instance.

Bonus: For shared file systems, there are two options on Macs:

  • MacFUSE - Manually setup and mount with sshfs. It's much easier to use
  • lima - Tries to do reverse sshfs for you and forwards ports too. This one is pretty new and questionably useful compared to manually using sshfs