CHR Images from tikoci/mikropkl

Pre-built MikroTik RouterOS CHR virtual machines for UTM and QEMU — open in UTM, or download, extract, run.

Loading…

Loading release data…

About CHR Images
What is this?

mikropkl builds ready-to-use MikroTik CHR virtual machine packages automatically using pkl. Each release ZIP contains a CHR disk image, a QEMU config (qemu.cfg), and a launch script (qemu.sh) that handles platform detection automatically. On macOS, the same package doubles as a UTM document bundle — open it in Finder and UTM imports the VM directly.

Full deployment guides: UTM Guide (macOS) · QEMU Guide (macOS & Linux)


CHR Licensing

CHR packages contain no license and run in “free” mode — 1 Mb/s per interface, but all features are available. Register at mikrotik.com for a free trial that removes the speed limit for 60 days:

/system/license/renew level=p10

QEMU vs Apple Type

QEMU — Cross-platform. Supports both emulation and native hardware virtualization (KVM on Linux, HVF on macOS). Works everywhere QEMU runs: macOS, Linux, and WSL on Windows. The qemu.sh script auto-detects the best accelerator.

Apple — Uses macOS Virtualization.framework via UTM. Faster startup, but limited device support and macOS-only. Uses a third-party EFI-bootable CHR image from tikoci/fat-chr.


ROSE Variant

The rose.* images are standard CHR plus 4×10 GB empty qcow2 disks for testing ROSE storage features — BTRFS, RAID 1/10, snapshots, and SMB sharing. After first boot:

/system/package { update/check-for-updates duration=10s; enable rose-storage; apply-changes }

After reboot, format the extra disks and optionally share them via SMB:

:foreach d in=[/disk/find] do={/disk format $d file-system=btrfs without-paging }
:foreach d in=[/disk/find] do={/disk set $d smb-sharing=yes smb-user=rose smb-password=rose }

Once formatted, you can use any BTRFS features including RAID 1/10 and snapshots, or choose another file system. See MikroTik’s ROSE documentation for details.


Behind the curtain — Packages are built with pkl manifests and assembled by GitHub Actions. Each .utm bundle is a folder containing config.plist (UTM), qemu.cfg + qemu.sh (QEMU), and a Data/ directory with the CHR disk image. The naming scheme is <variant>.<arch>.<type>.<version>.utm.zip.