The direct answer
Apple's Virtualization framework, which every VM post on this blog is built on, only runs guests built for the same CPU architecture as the host. On an Apple silicon Mac that means arm64 guests, by design. The framework-vs-QEMU comparison explains why in its section on emulation: the two tools were built to do different jobs.
The same rule works the other way on an Intel Mac. There, Velo Workspaces runs x86-64 Linux natively, and its cloud images and installers come in x86-64 builds; it's arm64 guests (and macOS guests) that an Intel Mac can't run.
What can do it
QEMU can, using its TCG (Tiny Code Generator) mode, which translates a different architecture's instructions into the host's in software, a block of guest code at a time. Nothing in the Virtualization framework does that, and it's why QEMU, directly or through a friendlier front end like UTM, is the answer when you need a real x86-64 Linux installation. The cost is speed. None of that translation is hardware-accelerated, so expect it to be much slower than anything in this blog's Virtualization.framework benchmarks.
First, what do you need?
"I need x86 Linux" often stands in for a narrower problem with a faster answer:
- "I need to run one x86-64 program." That's Rosetta for Linux, which translates that one binary inside a native, fully accelerated arm64 guest. Far faster than emulating a whole OS to run one executable.
- "I need to run an x86-64 Docker image." That's a container runtime question, not a guest OS question, and it has its own answer, which can use the same Rosetta mechanism.
- "I need a package that isn't built for arm64." Check whether it's really missing or just not mirrored; the compatibility post walks through how to tell.
- "I need to test on the CPU architecture my users run." This is the one case Rosetta can't cover, because you're verifying architecture-specific behavior rather than working around a missing binary. Use QEMU's full emulation, or better, a real x86-64 machine or CI runner.
The practical takeaway
Default to a native arm64 Linux guest. Ubuntu, Debian, Fedora and Rocky Linux all start from official cloud images in about a minute in Velo Workspaces, fully accelerated. Reach for Rosetta when a specific x86-64 binary is the blocker, and for full emulation only when the requirement really is a different CPU architecture.
Related reading: Virtualization.framework vs. QEMU for the full comparison, Rosetta 2 in Linux VMs for the translation mechanism, and ARM64 vs. x86-64 on Apple Silicon for how it fits together with Mac apps and containers. Or download Velo Workspaces and try it yourself.