Here are the following commands/structure we use to interact with libvfio.
To start a VM we use the following command:
arcd start [KERNEL] [ADDITIONAL_STATES ...]
Kernel images are stored in $root/kernel/
, while state images are stored in
$root/states/
.
Here are some examples of such a command:
arcd start com.ubuntu.arc photogrammetry-drive.arc machine-learning.qcow2
arcd start ml.yaml
If no arguments are passed, the kernel and additional states will be taken from either the passed config file, home directory config, systemwide config, or the default config we generate.
To create a VM we use the following command:
arcd create [ISO_FILE] [SIZE]
This is used to install a new kernel image using an iso.
Here are some examples of such a command:
arcd create intel-mdev.yaml ubuntu.iso 20
NOTE: Size is in GBs.
If no arguments are passed, the iso file and size will be taken from either the passed config file, home directory config, systemwide config, or the default config we generate.
Stopping a VM can be done as follows:
arcd stop UUID
Some examples are:
arcd stop $UUID
arcd stop $UUID ml.yaml
arcd stop --data=$root $UUID
Prints a list of available containers.
Optional arguments kernels, states, apps, all (default).
arcd ls [kernels|states|apps|all]
Some examples include:
arcd ls
arcd ls kernels
arcd ls states
arcd ls apps
arcd ls all
Prints details about running containers
Optionally supply with UUID or partial UUID to get more informative output
Example:
arcd ps
arcd ps 0a
All these commands have the following additional options that can be added to them.
Specifying where the root directory of the libvfio deployment is located, can
be overwritten with the root
flag.
Configuration file to use instead can be overwritten with the config
flag.
If you want to save the output of this back into the base kernel you can set
that behaviour using the save
flag.
The copy command can take a while, if you are ok with destroying the base
kernel, you can use the no-copy
flag.
If you want to only use our default configuration use the no-user-preload
flag.
If you want to overwrite default kernel used for some reason you can use the
kernel
flag.
NOTE: This flag is only really enabled for the create command.