Linux distribution

Fedora VMs on Apple Silicon Macs

Run mvz create fedora dev and MacVisor downloads Fedora Cloud 44 for ARM64 (aarch64), verifies it, and makes a VM with your account and SSH keys. Fedora 43 is in the catalogue too. The image ships Podman, so it's there even when you choose no container runtime.

  • Apple Silicon (M1 or later)
  • macOS 27 on the Mac
  • Fedora 44 or 43, ARM64

30 days free, no key or payment details. Apple Silicon with macOS 27.

A stylised MacVisor window with a Fedora VM running Podman containers in its terminal.

Create a Fedora VM

In the app, choose New VM → Linux → Cloud Image → Fedora 44. From Terminal:

mvz create fedora dev                                         # Fedora 44 (alias: fedora)
mvz create fedora-43 f43                                      # Fedora 43
mvz create fedora-44 build --cpus 8 --memory 16 --runtime podman

The images are Fedora's Cloud Base Generic builds for aarch64 from download.fedoraproject.org, pinned to a SHA-256 digest in the signed catalogue. Fedora's download redirector sends each request to a mirror. When a mirror stalls or hasn't synced the file yet, MacVisor tries again and resumes from where the download stopped.

What you get

Your account has your Mac user name and UID, your SSH keys, bash and sudo without a password. The MacVisor Agent, Rosetta and automatic port forwarding are set up on the first boot. The root filesystem is Fedora Cloud's btrfs.

Fedora gets new kernels, compilers and toolchains first. It's a good VM for trying them without touching your Mac, and for checking what lands in RHEL later.

Podman first

Fedora's image includes Podman, so podman run works in any Fedora VM. Choose --runtime podman and MacVisor also turns on the rootless podman.socket for your account and forwards it to the Mac:

mvz create fedora pods --runtime podman
mvz start pods --headless && mvz wait pods
docker --context macvisor-pods ps          # the docker CLI on the Mac, talking to Podman

The other runtimes work too. --runtime docker installs Fedora's moby-engine, --runtime containerd sets up rootless nerdctl, and --runtime k3s a single-node k3s. For rootless containers, MacVisor installs iptables-nft, since Fedora's plain iptables is the legacy backend rootless networking can't drive.

SELinux and Rosetta

SELinux stays enforcing. MacVisor runs its per-user setup as a system service, which Fedora's policy allows, and mounts Rosetta with a container label, so a container can run x86-64 binaries through Rosetta under SELinux.

Quirks

  • Fixed builds. Unlike the tracking entries, Fedora's catalogue entries name one build each, and a MacVisor update moves them forward.
  • Disks grow only. mvz set dev --disk 128 grows the disk, and Fedora's filesystem follows at the next boot.
  • Release upgrades are yours. A VM made from Fedora 43 stays on 43 until you upgrade it with dnf system-upgrade in the guest, or make a new VM from fedora-44.

FAQ

Common questions

More in the documentation and known limitations.

Which Fedora version does mvz create fedora make?

Fedora 44, from the fixed build Fedora-Cloud-Base-Generic-44-1.7. Fedora 43 is fedora-43, build 43-1.6. Fixed builds move forward with MacVisor updates.

Is Podman installed in a Fedora VM?

Yes. Fedora's cloud image already includes Podman, so it is there with no runtime chosen. Choose --runtime podman as well to have MacVisor turn on Podman's Docker-compatible API and forward it to the Mac as the docker context macvisor-<vm>.

Can I use Docker on Fedora instead of Podman?

Yes. With --runtime docker, MacVisor installs Fedora's moby-engine package, Fedora's build of Docker Engine, and adds your account to the docker group.

Does SELinux stay on in a Fedora VM?

Yes. MacVisor leaves SELinux as the image ships it. Its setup runs within the policy, and it labels Rosetta's mount so containers may run x86-64 programs through it.

Run your Mac like a virtualization host.

macOS, Windows 11, Linux and FreeBSD VMs that keep running with the app closed, with snapshots, networks, backups and the mvz command line.