Options
VM options control host startup behavior, guest firmware and clock, graceful shutdown, initialization data, and bhyve integration features.
Option availability
Section titled “Option availability”| Command | May run while VM is active | Behavior |
|---|---|---|
config autostart |
Yes | Replaces enabled state and start order together. |
config clock |
No | Replaces guest clock offset. |
config shutdown |
Yes | Replaces graceful-shutdown wait. |
config boot-rom |
No | Replaces firmware choice. |
config cloud-init |
No | Completely replaces or clears cloud-init content. |
config bhyve-options |
No | Completely replaces or clears extra options. |
config unknown-msr |
No | Replaces unknown-MSR handling state. |
config qga |
No | Replaces QEMU Guest Agent integration state. |
config wol |
Yes | Replaces Wake-on-LAN state. |
Configure host autostart
Section titled “Configure host autostart”Autostart requires both state and order because Sylve updates them together:
doas sylve vms config autostart \ --rid 301 \ --enabled=true \ --order 7 \ --jsonStart order must be zero or greater. Lower ordering values are considered earlier when the node starts configured VMs.
Set the guest clock
Section titled “Set the guest clock”Choose utc or localtime:
doas sylve vms config clock \ --rid 301 \ --time-offset localtime \ --jsonUTC is the normal choice for Unix-like guests. Some operating systems expect the emulated real-time clock to use local time.
Set graceful-shutdown wait
Section titled “Set graceful-shutdown wait”Configure how long Sylve waits after requesting graceful shutdown:
doas sylve vms config shutdown \ --rid 301 \ --wait-seconds 20 \ --jsonThe accepted range is 1 through 3600 seconds. If the guest is still running when the wait expires, Sylve force-stops the domain and completes the shutdown task.
Choose boot firmware
Section titled “Choose boot firmware”Set uefi, uboot, or none:
doas sylve vms config boot-rom \ --rid 301 \ --boot-rom uefi \ --jsonAvailability depends on host and guest architecture. Loki returned "updated": false because VM 301 already used UEFI.
Replace cloud-init configuration
Section titled “Replace cloud-init configuration”Cloud-init replacement requires data and metadata files plus exactly one network choice:
doas sylve vms config cloud-init \ --rid 301 \ --data-file /root/cloud-init/user-data \ --metadata-file /root/cloud-init/meta-data \ --network-config-file /root/cloud-init/network-config \ --jsonUse --no-network-config instead when intentionally storing an empty network configuration:
doas sylve vms config cloud-init \ --rid 301 \ --data-file /tmp/sylve-docs-cloud-init/user-data \ --metadata-file /tmp/sylve-docs-cloud-init/meta-data \ --no-network-config \ --jsonFiles are read on the Sylve host. Replacement is complete, so omitted previous content is not preserved. Clear all three values with --clear alone:
doas sylve vms config cloud-init --rid 301 --clear --jsonReplace extra bhyve options
Section titled “Replace extra bhyve options”Repeat --option to provide the complete option list:
doas sylve vms config bhyve-options \ --rid 301 \ --option=-S \ --jsonClear every extra option explicitly:
doas sylve vms config bhyve-options --rid 301 --clear --jsonHandle unknown MSRs
Section titled “Handle unknown MSRs”Toggle unknown Model-Specific Register handling:
doas sylve vms config unknown-msr \ --rid 301 \ --enabled=true \ --jsonEnable this only for a guest that requires unknown MSR accesses to be ignored. The setting changes generated bhyve configuration and requires the VM to be powered off.
Enable QEMU Guest Agent integration
Section titled “Enable QEMU Guest Agent integration”Enable the QGA channel in the VM definition:
doas sylve vms config qga --rid 301 --enabled=true --jsonThis configures the host-side guest-agent transport. It does not install or start an agent inside the guest. The access guide uses vms qga info to distinguish configured, running, reachable, and capability states.
Configure Wake-on-LAN
Section titled “Configure Wake-on-LAN”Wake-on-LAN state may be changed while the VM is running:
doas sylve vms config wol --rid 301 --enabled=true --jsonThe surrounding network must deliver the magic packet to the relevant MAC address. Enabling the VM option alone does not configure upstream switching or routing.
Use the interactive console
Section titled “Use the interactive console”The console places the RID after the leaf command:
vms config autostart 301 --enabled=true --order 7vms config clock 301 --time-offset utcvms config shutdown 301 --wait-seconds 20vms config boot-rom 301 --boot-rom uefivms config cloud-init 301 --data-file /root/user-data --metadata-file /root/meta-data --no-network-configvms config bhyve-options 301 --option=-Svms config unknown-msr 301 --enabled=truevms config qga 301 --enabled=truevms config wol 301 --enabled=trueBoolean flags accept explicit true and false. Omission is not a request to disable a setting.