The Beefcake macOS Virtualization lifecycle manager
This project uses vfkit.
beef adds some syntactic sugar on top of managing the lifecycle of VMs running through vfkit such as:
run,start,stop,rm,status,ls,getandsetcommands- cloning and extending source raw image files
- state saving for re-launching an existing VM by name
- abstraction of complex arguments required for configuring VMs
- abstraction of running Linux and macOS VMs
$ curl -LO https://download.fedoraproject.org/pub/fedora/linux/releases/42/Cloud/aarch64/images/Fedora-Cloud-Base-AmazonEC2-42-1.1.aarch64.raw.xz
$ unxz -T0 Fedora-Cloud-Base-AmazonEC2-42-1.1.aarch64.raw.xz
$ beef run fedora42 Fedora-Cloud-Base-AmazonEC2-42-1.1.aarch64.raw
{
"canHardStop": true,
"canPause": true,
"canResume": false,
"canStart": false,
"canStop": true,
"state": "VirtualMachineStateRunning",
"ipAddress": "192.168.64.56",
"pid": 96456
}
This example assumes that you have a VM.bundle. This can be created using https://github.com/Code-Hex/vz/tree/main/example/macOS.
Note: macOS requires running with --gui
$ beef run --gui macos VM.bundle