scorpiox-vm Container & VM

Launch lightweight KVM-based virtual machines with custom kernels, configurable vCPUs and memory allocation.

Linux x64 Linux ARM64

Flags & Options

Flag Short Description Takes Value
--append Extra kernel command-line arguments to pass to the guest Yes
--cpus Number of virtual CPUs to allocate (default: host count) Yes
--help Show help message and usage information No
--home -h Set ScorpioX home directory (env: SCORPIOX_HOME) Yes
--kernel Path to kernel image to boot (default: built-in kernel) Yes
--list -l List available VM images or configurations Yes
--memory Guest RAM in MB (default: auto-detect from host) Yes
--verbose -v Enable debug output for diagnostics No
--version Print version number and exit No

Usage Examples

Launch a VM with default settings
# Boot a VM using the built-in kernel with default vCPUs and memory
$ scorpiox-vm
KVM VM started — 4 vCPUs, 2048 MB RAM
Booting kernel... done
Guest console attached
Custom kernel and memory
# Boot a custom kernel image with 4 GB RAM and 8 vCPUs
$ scorpiox-vm --kernel /path/to/bzImage --memory 4096 --cpus 8
KVM VM started — 8 vCPUs, 4096 MB RAM
Booting kernel /path/to/bzImage... done
Guest console attached
Pass kernel command-line arguments
# Append extra kernel boot parameters for serial console and init
$ scorpiox-vm --kernel ./vmlinuz --append "console=ttyS0 init=/bin/sh"
KVM VM started — 4 vCPUs, 2048 MB RAM
Kernel cmdline: console=ttyS0 init=/bin/sh
Booting kernel... done

# Enable verbose debugging for troubleshooting boot issues
$ scorpiox-vm --kernel ./vmlinuz --append "earlyprintk=serial" --verbose
[debug] KVM: opening /dev/kvm
[debug] KVM: creating VM fd
[debug] KVM: setting up 4 vCPUs
[debug] KVM: allocating 2048 MB guest memory
[debug] KVM: loading kernel image (4.2 MB)
[debug] KVM: kernel cmdline: earlyprintk=serial
[debug] KVM: booting...
Guest console attached
List available VM images
# List available kernel images and VM configurations
$ scorpiox-vm --list
Available VM images:
  default      built-in minimal kernel (5.15)
  alpine       Alpine Linux 3.18 (12 MB)
  debian       Debian 12 minimal (45 MB)
Use a custom ScorpioX home directory
# Point to a different ScorpioX installation for kernel/image lookup
$ scorpiox-vm -h /opt/scorpiox --list
SCORPIOX_HOME=/opt/scorpiox
Available VM images:
  default      built-in minimal kernel (5.15)
  custom       custom-kernel.img (8 MB)

# Or use the environment variable
$ SCORPIOX_HOME=/opt/scorpiox scorpiox-vm --kernel auto
Minimal VM for CI/CD testing
# Spin up a lightweight VM with minimal resources for test isolation
$ scorpiox-vm --cpus 1 --memory 512 --append "quiet init=/test-runner.sh"
KVM VM started — 1 vCPU, 512 MB RAM
Booting kernel... done
[test-runner] Running 42 tests...
[test-runner] All tests passed.
VM exited with code 0

Source & Build Info

Source File
scorpiox/scorpiox-vm.c
Lines of Code
1,846
Dependencies
None (pure C)

Related Tools