u/mepalival

[Guide] Running Batocera 43.X on VMware Workstation — IMG → VMDK

[Guide] Running Batocera 43.1 on VMware Workstation — IMG → VMDK

I wanted to run Batocera 43.1 x86_64 inside VMware Workstation on Windows 10.

The official Batocera VM documentation currently documents VirtualBox and QEMU, but not VMware Workstation. Batocera also notes that VM usage is not officially supported, so consider this a community workaround/testing method rather than an officially supported configuration.

I tested this with:

  • Windows 10
  • VMware Workstation
  • Batocera 43.1 x86_64
  • QEMU qemu-img

The important discovery was that the converted VMDK needs to be attached to VMware as a SATA disk, not SCSI.

1. Download and extract Batocera

Download the Batocera x86_64 image.

For this test I used:

batocera-x86_64-43.1-20260529.img.gz

Extract the .gz file using 7-Zip or another archive utility.

The result should be:

batocera-x86_64-43.1-20260529.img

Do not extract the contents of the .img file.

If you open the .img with 7-Zip, you may see:

0.vfat.fat
1.userdata.img

These are partitions inside the complete Batocera disk image. The .img itself is the complete disk image and should remain as one file.

2. Install QEMU

Install QEMU for Windows.

In my installation, qemu-img.exe was located at:

C:\Program Files\qemu\qemu-img.exe

Verify that it works:

"C:\Program Files\qemu\qemu-img.exe" --version

3. Check the Batocera IMG

I placed the image here:

C:\temp\batocera-x86_64-43.1-20260529.img

Run:

"C:\Program Files\qemu\qemu-img.exe" info "C:\temp\batocera-x86_64-43.1-20260529.img"

My image reported:

file format: raw
virtual size: 10.5 GiB
disk size: 10.5 GiB

This confirms that the .img is a complete raw disk image.

4. Convert IMG → VMDK

Use QEMU to convert the complete disk image to VMware VMDK:

"C:\Program Files\qemu\qemu-img.exe" convert -p -f raw -O vmdk "C:\temp\batocera-x86_64-43.1-20260529.img" "C:\temp\batocera-x86_64-43.1-20260529.vmdk"

After conversion, verify the VMDK:

"C:\Program Files\qemu\qemu-img.exe" info "C:\temp\batocera-x86_64-43.1-20260529.vmdk"

It should report:

file format: vmdk
virtual size: 10.5 GiB

The VMDK file itself may be smaller than 10.5 GiB because it is a sparse disk. That is normal.

5. Create the VMware Workstation VM

Open VMware Workstation.

Select:

Create a New Virtual Machine

Choose:

Custom (advanced)

Then select:

I will install the operating system later

For the guest OS choose:

Linux
Other Linux 64-bit

Give the VM a name, for example:

Batocera

6. VM hardware

A starting configuration:

CPU:       4 cores
RAM:       4 GB
Network:   NAT
Firmware:  UEFI

Adjust CPU/RAM according to your host system.

7. Add the Batocera VMDK

When VMware asks about the virtual disk, select:

Use an existing virtual disk

Select:

C:\temp\batocera-x86_64-43.1-20260529.vmdk

IMPORTANT: Use SATA

This was the most important part of my testing.

Make sure the Batocera disk appears as:

Hard Disk (SATA)

Do not attach it as SCSI.

Initially I attached the VMDK as SCSI. Batocera booted far enough to display:

Booting Batocera.linux...

but verbose boot then showed:

mount: mounting LABEL=BATOCERA on /boot_root failed: No such file or directory
Waiting for the root device LABEL=BATOCERA
LABEL=BATOCERA: Can't lookup blockdev

I removed the VMDK from the VM configuration and added the same VMDK again using a SATA controller.

After switching to SATA, Batocera successfully booted.

Do not delete the VMDK file when removing the SCSI disk. Only remove the disk from the VMware hardware configuration and then add the existing VMDK again as SATA.

8. Firmware

Go to:

VM → Settings → Options → Advanced

Set:

Firmware type: UEFI

9. Display

For my initial test I used:

Accelerate 3D graphics: OFF

Once the system is working, graphics settings can be experimented with depending on the host GPU and VMware version.

10. CD/DVD

The VM does not need a CD/DVD drive because Batocera is already installed in the VMDK.

I removed the CD/DVD device from the VM hardware configuration.

If VMware reports something like:

Cannot connect the virtual device sata0:1 because
no corresponding device is available on the host.

check the VM hardware and remove the unused CD/DVD device.

11. Boot Batocera

Start the VM.

You should see:

Booting Batocera.linux...

Batocera should then start normally.

For troubleshooting, select:

Batocera.linux (verbose)

from the Batocera boot menu.

Troubleshooting

LABEL=BATOCERA: Can't lookup blockdev

If verbose boot shows:

mounting LABEL=BATOCERA on /boot_root failed
Waiting for the root device LABEL=BATOCERA
LABEL=BATOCERA: Can't lookup blockdev

check the VMware disk controller.

If the disk is:

Hard Disk (SCSI)

remove it from the VM configuration and add the existing VMDK as:

Hard Disk (SATA)

This was the fix in my case.

Black screen

If Batocera boots but the VMware display becomes black:

  1. Try disabling Accelerate 3D graphics.
  2. Boot using Batocera.linux (verbose).
  3. Check whether Linux is actually continuing to boot or stopping at a particular error.

The initial black screen in my test turned out not to be the main problem; verbose boot revealed that the BATOCERA boot partition could not be found because the disk was attached through SCSI.

Final working configuration

My working VMware configuration was:

Setting Value
Host Windows 10
Batocera 43.1 x86_64
Hypervisor VMware Workstation
Guest OS Other Linux 64-bit
Firmware UEFI
CPU 4 cores
RAM 4 GB
Disk format VMDK
Disk controller SATA
3D acceleration OFF
Network NAT
CD/DVD Removed

The complete process is:

Batocera .img.gz
       ↓
Extract .gz
       ↓
Batocera .img
       ↓
QEMU qemu-img
       ↓
Batocera .vmdk
       ↓
VMware Workstation
       ↓
SATA virtual disk
       ↓
UEFI
       ↓
Batocera 43.1

Notes

This is a community-tested VMware Workstation method, not an officially supported Batocera VM configuration.

Batocera's official documentation warns that VM usage is not officially supported and that VM graphics/performance can differ substantially from bare-metal hardware.

I tested this specifically because I wanted a VMware Workstation solution without creating a physical USB drive.

If anyone has tested this with other VMware Workstation versions, newer Batocera releases, or different virtual graphics settings, I'd be interested in the results.

reddit.com
u/mepalival — 2 days ago