Appendix B. Running Kali Linux in a UTM VM (Apple Silicon) 🐉¶
This is the procedure for running the real Kali Linux in a virtual machine on a Mac (Apple Silicon). There are a lot of gotchas, so I've written down every spot I actually got stuck and how to work around it. Follow this exactly and you can install without getting blocked by a black screen or import errors.

👆 This is the end result — the Kali desktop running like this on an Apple Silicon Mac.
Overall flow¶
flowchart LR
A["① Install UTM"] --> B["② Download the Kali ISO"]
B --> C["③ Create the VM"]
C --> D["④ Install via<br>serial console"]
D --> E["⑤ Cleanup<br>(remove ISO/serial)"]
style A fill:#2d333b,stroke:#3fb950,stroke-width:2px,color:#e6edf3
style B fill:#2d333b,stroke:#3fb950,stroke-width:2px,color:#e6edf3
style C fill:#2d333b,stroke:#58a6ff,stroke-width:2px,color:#e6edf3
style D fill:#2d333b,stroke:#bc8cff,stroke-width:2px,color:#e6edf3
style E fill:#2d333b,stroke:#f85149,stroke-width:2px,color:#e6edf3① Install UTM¶
UTM is virtualization software for the Mac (QEMU-based).
② Download the Kali ISO¶
Get the Installer (arm64) ISO from kali.org/get-kali.
- Be sure to choose the ARM64 (for Apple Silicon) build (grabbing the x86 build by mistake will be slow or won't run)
- If the download is slow, switching mirrors can sometimes help
- After downloading, it's safest to verify against the official SHA256 to confirm the file isn't corrupted
③ Create the VM¶
In UTM, choose "Create a New Virtual Machine" → "Virtualize" → Linux, and point it at the ISO you downloaded. Suggested specs:
| Item | Recommended |
|---|---|
| Architecture | ARM64 (aarch64) |
| Memory | 4096 MB or more |
| CPU | 4 cores |
| Disk | Around 40 GB |
| Display | virtio-ramfb |
④ Install via serial console (← this is the most important part)¶
⚠️ Gotcha: black screen "Display output is not active"¶
The Kali installer has a known bug on UTM under Apple Silicon where the graphics display goes completely black (a driver issue on the Kali side). This is a known issue acknowledged by the project itself, and the workaround is to install via the serial console.
Workaround: add a serial device¶
In the VM settings, add one Serial device (mode = Terminal). Then, when the VM boots, two windows open:
┌─────────────────┐ ┌─────────────────────────┐
│ 真っ黒な画面 │ │ 黒地に白文字のターミナル窓 │
│ (無視でOK) │ │ ← こっちでインストール進行 │
└─────────────────┘ └─────────────────────────┘
Open the "Kali Linux (Terminal 1)" window and run the installer there.
💡 After installation, the GUI will display correctly (the problem is confined to the installer).
Key installer choices (the ones people trip over)¶
| Screen | What to choose |
|---|---|
| Language | English (Japanese garbles on the text screen; you can switch to Japanese later) |
| Country | Japan |
| Locale | If there's no Japanese combination, pick United States - en_US.UTF-8 |
| Partitioning | Guided - use entire disk → All files in one partition |
| Write changes? | Yes (watch out — the default is No) |
| Software selection | Leave the defaults (Xfce + standard tools) and Continue |
When the install finishes, a blue GUI login screen appears. Log in with the user you created.
⑤ Cleanup (after installation)¶
Once the install is done, remove the ISO (CD drive) and serial device you no longer need. Shut down the VM, then delete the following in the settings:
- CD drive (kali.iso)
- Serial device
- (If you enabled debug logging) turn it back off
From now on, only the GUI window opens cleanly.
🧰 Gotchas summary (start here when you're stuck)¶
| Symptom | Cause | Fix |
|---|---|---|
| Black screen "Display output is not active" | Known graphics bug in the Kali installer | Install via the serial console (④) |
| "Cannot import this VM" | Corrupt VM config file | Don't hand-write the config; use UTM's proper wizard, or base it on the config of a working existing VM |
| ISO download is slow | Slow mirror | Switch to a different mirror |
| Grabbed the x86 build, extremely slow | Wrong architecture | Use the ARM64 (Apple Silicon) ISO |
| Text screen is garbled | No Japanese font support | Choose English as the installer language |
💡 These are the pitfalls I actually hit when I set up a Kali VM on Apple Silicon. Follow the steps above and you can avoid them.
Getting AI to help with the setup¶
A prompt for having AI help you build this VM is in ai-prompts.md.
⚠️ Kali is an OS loaded with a full set of attack tools. Use it only against your own practice targets.