I recommend running the Garbageman VM Manager inside a VirtualBox VM with a Linux Mint 22.2 guest, so that it is sandboxed from the rest of your computer. Here is how to optimize VirtualBox for running headless, resource-intensive VMs inside of a VirtualBox VM (“VM Inception”, so to speak)
Why VirtualBox Performance Matters
Garbageman VM Manager performs CPU and I/O intensive operations:
- Compilation: Building Bitcoin software (30+ minutes of heavy CPU use)
- Nested Virtualization: Creates Alpine VMs inside your Linux Mint VM using libguestfs/KVM
- Blockchain Sync: Downloads and validates 25+ GB of blockchain data with constant disk I/O
Without proper VirtualBox configuration, these operations can be 3-5x slower than native performance.
Guest OS Recommendation
Use Linux Mint 22.2 Cinnamon Edition for the guest OS:
- Based on Ubuntu 24.04 LTS (excellent hardware support)
- Cinnamon desktop is lightweight and responsive
- All required packages are available in the default repositories
- Well-tested with the Garbageman VM Manager script
Download: linuxmint.com/download.php
Essential VirtualBox Settings
These settings are critical for acceptable performance, and can be edited in the Settings once the VM has been created (shut down the VM first if it is running).
1. System Settings (Settings (Expert) → System)
Motherboard Tab:
-
I/O APIC: Required for multi-core support - Set Base Memory to at least 8192 MB (8 GB minimum, 16+ GB recommended)
Processor Tab:
-
PAE/NX: Required for 64-bit Linux -
Nested VT-x/AMD-V: CRITICAL - Required for nested virtualization (VMs inside of a VM) - Set Processor(s) to at least 4 cores (8+ recommended)
- Set Execution Cap to 100% (ensure VM isn’t throttled)
Acceleration Tab: (if page blanks, open General Tab then come back)
- Set Paravirtualization Interface to KVM (best performance for Linux guests)
2. Storage Settings (Settings → Storage)
Use VirtIO SCSI Controller for Best I/O Performance:
- Click the “Add Controller” icon → Select “VirtIO SCSI”
- Remove your virtual disk from under “Controller: SATA”
- Remove “Controller: SATA”
- Attach your virtual disk to “Controller: VirtIO”
- Under Attributes:
-
Use Host I/O Cache: Significantly improves disk performance
3. Network Settings (Settings → Network)
Adapter 1:
- Attached to: NAT
- Set Adapter Type to Paravirtualized Network (virtio-net)
4. Display Settings (Settings → Display)
Screen Tab:
- Set Video Memory to 16 MB (this is a server workload, graphics don’t matter)
-
Disable 3D Acceleration (not needed, can cause issues)
5. Audio Settings (Settings → Audio)
-
Disable “Enable Audio” (not needed for server workloads, saves resources)
Quick Configuration Checklist
Before running the script, verify these VirtualBox settings:
- Nested VT-x/AMD-V enabled (System → Processor)
- Paravirtualization Interface = KVM (System → Acceleration)
- VirtIO SCSI controller with Host I/O Cache enabled (Storage)
- virtio-net network adapter (Network → Advanced)
- I/O APIC enabled (System → Motherboard)
- PAE/NX enabled (System → Processor)
- Execution Cap = 100% (System → Processor)
- At least 8 GB RAM and 4 CPU cores allocated
- At least 80 GB disk space (fixed size VDI recommended)
- 3D acceleration disabled (Display)
- Audio disabled (Audio)
Verifying Nested Virtualization Works
After starting your Linux Mint VM, verify that nested virtualization is working:
# Check if KVM is available
ls -la /dev/kvm
# Should show: crw-rw---- 1 root kvm ... /dev/kvm
# Check CPU virtualization extensions
egrep -c '(vmx|svm)' /proc/cpuinfo
# Should show a number > 0 (number of cores with virt extensions)
# Verify KVM kernel module is loaded
lsmod | grep kvm
# Should show: kvm_intel or kvm_amd (depending on your CPU)
If any of these checks fail:
- Ensure Nested VT-x/AMD-V is enabled in VirtualBox settings
- Power off the VM completely and restart it (settings only apply after full shutdown)
- Check your host BIOS has virtualization enabled (VT-x/AMD-V)