# Enumerate x86 VMs on Apple Silicon

_2026-04-07_

> Guide on how to emulate x86 VMware VMs on Mac with UTM

Canonical URL: https://cxiang.site/blog/enumerate-x86-vms-on-apple-silicon

This semester, I’m taking an ethical hacking course where we’re required to practice on vulnerable environments like _Metasploitable2_. While setting up a native ARM version of Kali Linux from an ISO is straightforward on Apple Silicon, the real challenge lies with pre-built VMware VM bundles. These legacy x86-based environments are incompatible with M-series chips and impossible to run natively without a strategic workaround.

Luckily we have emulation tool like UTM to somewhat make those VMs runnable, however it is not guaranteed that everything on the VM will work properly. 

## 1. Locating the VM Bundle

On macOS, a `.vmwarevm` file is a bundle rather than a single file. To inspect it, right-click the `.vmwarevm` file in Finder and select "Show Package Contents". The `.vmdk` images file(s) are stored right inside.

![](https://www.notion.so/image/attachment%3A1fb53b09-d221-4734-bd75-0224a2856e2e%3AScreenshot_2026-04-07_at_9.56.12_PM.png?table=block&id=33bf94f7-98c1-8088-923c-d20cbf24f61a&cache=v2)
Inside the bundle, check whether you see one large `.vmdk` file or many smaller ones such as s001, s002, and so on. This determines whether you can convert the disk directly or need to consolidate it first.

## 2. Consolidating Split Disks (If Necessary)

If your VM bundle contains multiple `.vmdk` files (like the screenshot below), we will need to combine them first.

![](https://www.notion.so/image/attachment%3A7d13ca0d-ecb7-4f61-98ed-ecf5b7ef746c%3AScreenshot_2026-04-07_at_9.57.41_PM.png?table=block&id=33bf94f7-98c1-8081-9311-ca0634defd04&cache=v2)
In VMware Fusion, open Virtual Machine Settings > Hard Disk, open the “Advanced options” toggle then uncheck "Split into multiple files" and click Apply to consolidate the disk into a single monolithic `.vmdk` file.

![](https://www.notion.so/image/attachment%3Ab93a4eb9-9c5f-4503-a744-f5acae4df832%3AScreenshot_2026-04-07_at_9.59.34_PM.png?table=block&id=33bf94f7-98c1-808a-a25e-deafe33e65ab&cache=v2)
Now you will see a single `.vmdk` image in the bundle.

![](https://www.notion.so/image/attachment%3Afc40dbc0-7e80-4f31-911f-37b6b4a7cf4d%3AScreenshot_2026-04-07_at_10.02.10_PM.png?table=block&id=33bf94f7-98c1-8040-9a21-c43856bdaae2&cache=v2)
## 3. Installing Conversion Tools & Migration

To handle the transition from VMware to UTM, we need `[qemu-img](https://www.qemu.org/download/)`, a powerful disk utility. If you have [Homebrew](https://brew.sh/) installed, you can grab it with a single command:

```Shell
brew install qemu
```
Once installed, locate your consolidated `.vmdk` file inside the VMware bundle and convert it to QCOW2, which UTM prefers for emulation:

```Shell
qemu-img convert -f vmdk -O qcow2 your-disk.vmdk your-disk.qcow2

# For me it is
qemu-img convert -f vmdk -O qcow2 "Virtual Disk-cl1.vmdk" a2-vm.qcow2
```
If successful you will see a `.qcow2` image file. You move it out of the bundle

![](https://www.notion.so/image/attachment%3A1237f4d9-482d-422d-a4d7-00de2337d7f7%3AScreenshot_2026-04-07_at_10.07.40_PM.png?table=block&id=33bf94f7-98c1-80bd-ab96-e3e59ffae6b4&cache=v2)
## 4: UTM Setup

First, download and install UTM from [getutm.app](http://getutm.app). Since we are running x86 code on an ARM-based chip, we cannot use the "Virtualize" option.

1. Click "Create a New VM" and select "Emulate".
![](https://www.notion.so/image/attachment%3Ac461a89f-164b-422c-89e6-f6ec8977844b%3Aimage.png?table=block&id=33ff94f7-98c1-80d1-95c5-dd5b7021be71&cache=v2)
2. Under Operating System, choose "Other".
![](https://www.notion.so/image/attachment%3Ae1e15ef4-6659-40a5-972f-7bc8a7a01bea%3Aimage.png?table=block&id=33ff94f7-98c1-80aa-bf10-f6364a8435a3&cache=v2)
3. In the Hardware tab, set the architecture to x86_64.
![](https://www.notion.so/image/attachment%3Ace9b6a49-0a93-4c5c-aad7-0031ec270c4d%3Aimage.png?table=block&id=33ff94f7-98c1-80d4-9d34-c1418588a5c7&cache=v2)
4. For Boot Device select  “Drive Image”, set the disk image to the `.qcow2` file you created in Step 3, and uncheck “UEFI Boot”.
![](https://www.notion.so/image/attachment%3A647b68a8-f43e-4ebf-9c36-cf35ad07f11d%3AScreenshot_2026-04-07_at_10.19.17_PM.png?table=block&id=33bf94f7-98c1-8038-aa1b-e9b0a65752a0&cache=v2)
5. Then click continue, setup a shared directory if you wish and save the VM.
6. Now you can see this machine on the tab, go ahead and start the machine.
This setup tells UTM to translate the x86 instructions for your M-series chip on the fly. It will not be as fast as a native VM, but it is the only way to get these vulnerable environments up and running for your labs.


## Sitemap

See the full [sitemap](/sitemap.md) for all pages.


## Contact Information

Chen Xiang (陈想)

- Email: xiiang.ch@gmail.com
- GitHub: https://github.com/Xiang-CH
- LinkedIn: https://www.linkedin.com/in/xiang-chen-62389526a/
- Instagram: https://www.instagram.com/chen.xiiang/
- X(Twitter): https://x.com/cxiiang

This page is also available as markdown: append `.md` to the URL path (for example, `/blog/my-post.md`) or send `Accept: text/markdown` for the same path.

