VBOXMANAGE(1)
VBOXMANAGE(1) is giving User Commands energy and I'm obsessed π
β¨ NAME β¨
okay so VBoxManage is literally the x86 virtualization solution, period π¦π
β¨ DESCRIPTION β¨
Oracle VM VirtualBox Command Line Management Interface Version 7.0.16 π
Copyright Β© 2005-2024 Oracle and/or its affiliates π
π¦ Usage - Oracle VM VirtualBox command-line interface:
bestie, the top-level call comes first π
VBoxManage [-V | --version] [--dump-build-type] [-q | --nologo]
[--settingspw=password] [--settingspwfile=pw-file]
[@response-file] [[help] subcommand]
next up is list, which is lowkey the most useful one πΈ
VBoxManage list [--long] [--sorted] [bridgedifs | cloudnets |
cloudprofiles | cloudproviders | cpu-profiles | dhcpservers |
dvds | extpacks | floppies | groups | hddbackends | hdds |
hostcpuids | hostdrives | hostdvds | hostfloppies | hostinfo |
hostonlyifs | hostonlynets | intnets | natnets | ostypes |
runningvms | screenshotformats | systemproperties | usbfilters |
usbhost | vms | webcams]
showvminfo has two looks, and both are iconic β¨
VBoxManage showvminfo <uuid | vmname> [--details]
[--machinereadable] [--password-id] [--password]
VBoxManage showvminfo <uuid | vmname> <--log=index>
[--password-id id] [--password file|-]
registering and unregistering a VM is giving main character energy π§
VBoxManage registervm <filename> --password file
VBoxManage unregistervm <uuid | vmname> [--delete] [--delete-all]
createvm is where the magic starts π
VBoxManage createvm <--name=name> [--basefolder=basefolder]
[--default] [--groups=group-ID,...] [--ostype=ostype]
[--register] [--uuid=uuid] [--cipher cipher] [--password-id
password-id] [--password file]
now modifyvm. ngl it's giving SO many flags ππ
I'm going to go through them slowly so nobody gets lost π«Ά
VBoxManage modifyvm <uuid | vmname> [--name=name] [--groups=
group [,group...] ] [--description=description]
[--os-type=OS-type] [--icon-file=filename] [--memory=size-in-MB]
[--page-fusion= on | off ]
[--vram=size-in-MB] [--acpi= on | off ] [--ioapic= on | off ]
[--hardware-uuid=UUID] [--cpus=CPU-count] [--cpu-hotplug= on |
off ] [--plug-cpu=CPU-ID] [--unplug-cpu=CPU-ID]
[--cpu-execution-cap=number] [--pae= on | off ] [--long-mode= on
| off ] [--ibpb-on-vm-exit= on | off ] [--ibpb-on-vm-entry= on |
off ] [--spec-ctrl= on | off ] [--l1d-flush-on-sched= on | off ]
[--l1d-flush-on-vm-entry= on | off ] [--mds-clear-on-sched= on |
off ] [--mds-clear-on-vm-entry= on | off ] [--cpu-profile= host |
Intel 8086 | Intel 80286 | Intel 80386 ] [--hpet= on | off ]
[--hwvirtex= on | off ] [--triple-fault-reset= on | off ]
[--apic= on | off ] [--x2apic= on | off ] [--paravirt-provider=
none | default | legacy | minimal | hyperv | kvm ]
[--paravirt-debug= key=value [,key=value...] ] [--nested-paging=
on | off ] [--large-pages= on | off ] [--vtx-vpid= on | off ]
[--vtx-ux= on | off ] [--nested-hw-virt= on | off ]
[--virt-vmsave-vmload= on | off ] [--accelerate-3d= on | off ]
[--accelerate-2d-video= on | off ] [--chipset= ich9 | piix3 ]
[--iommu= none | automatic | amd | intel ] [--tpm-type= none |
1.2 | 2.0 | host | swtpm ] [--tpm-location= location ]
[--bios-logo-fade-in= on | off ] [--bios-logo-fade-out= on | off
] [--bios-logo-display-time=msec]
[--bios-logo-image-path=pathname] [--bios-boot-menu= disabled |
menuonly | messageandmenu ] [--bios-apic= disabled | apic |
x2apic ] [--bios-system-time-offset=msec] [--bios-pxe-debug= on |
off ] [--system-uuid-le= on | off ] [--bootX= none | floppy | dvd
| disk | net ] [--rtc-use-utc= on | off ] [--graphicscontroller=
none | vboxvga | vmsvga | vboxsvga ] [--snapshot-folder= default
| pathname ] [--firmware= bios | efi | efi32 | efi64 ]
[--guest-memory-balloon=size-in-MB] [--default-frontend= default
| name ] [--vm-process-priority= default | flat | low | normal |
high ]
the NIC flags are next, and they're so serious π --nicN picks the adapter, --nic-typeN picks the model, and the rest tweak all the little details
VBoxManage modifyvm <uuid | vmname> [--nicN= none | null | nat |
bridged | intnet | hostonly | hostonlynet | generic | natnetwork
| cloud ] [--nic-typeN= Am79C970A | Am79C973 | 82540EM | 82543GC
| 82545EM | virtio ] [--cable-connectedN= on | off ]
[--nic-traceN= on | off ] [--nic-trace-fileN=filename]
[--nic-propertyN=name= [value] ] [--nic-speedN=kbps]
[--nic-boot-prioN=priority] [--nic-promiscN= deny | allow-vms |
allow-all ] [--nic-bandwidth-groupN= none | name ]
[--bridge-adapterN= none | device-name ]
[--cloud-networkN=network-name] [--host-only-adapterN= none |
device-name ] [--host-only-netN=network-name]
[--intnetN=network-name] [--nat-networkN=network-name]
[--nic-generic-drvN=driver-name] [--mac-addressN= auto |
MAC-address ]
and the NAT flags are the last stop for this part π¦ --nat-netN and --nat-pfN are the headliners, but every single one matters
VBoxManage modifyvm <uuid | vmname> [--nat-netN= network |
default ] [--nat-pfN= [rule-name],tcp |
udp,[host-IP],hostport,[guest-IP],guestport ]
[--nat-pfN=delete=rule-name] [--nat-tftp-prefixN=prefix]
[--nat-tftp-fileN=filename] [--nat-tftp-serverN=IP-address]
[--nat-bind-ipN=IP-address] [--nat-dns-pass-domainN= on | off ]
[--nat-dns-proxyN= on | off ] [--nat-dns-host-resolverN= on | off
] [--nat-localhostreachableN= on | off ]
[--nat-settingsN=[mtu],[socksnd],[sockrcv],[tcpsnd],[tcprcv]]
[--nat-alias-modeN= default | [log],[proxyonly],[sameports] ]
more modifyvm flags (mouse, keyboard, UART, audio, and the whole glam squad) are coming up next ππ«Ά
The controlvm list is LONG, bestie, so let's get into it π
VBoxManage controlvm <uuid | vmname> keyboardputstring <string> [string...]
VBoxManage controlvm <uuid | vmname> keyboardputfile <filename>
VBoxManage controlvm <uuid | vmname> setlinkstateN <on | off>
VBoxManage controlvm <uuid | vmname> nicN <null | nat | bridged | intnet | hostonly | generic | natnetwork> [device-name]
VBoxManage controlvm <uuid | vmname> nictraceN <on | off>
VBoxManage controlvm <uuid | vmname> nictracefileN <filename>
VBoxManage controlvm <uuid | vmname> nicpropertyN <prop-name=prop-value>
VBoxManage controlvm <uuid | vmname> nicpromiscN <deny | allow-vms | allow-all>
VBoxManage controlvm <uuid | vmname> natpfN <[rulename] ,tcp | udp, host-IP, hostport, guest-IP, guestport>
VBoxManage controlvm <uuid | vmname> natpfN delete <rulename>
VBoxManage controlvm <uuid | vmname> guestmemoryballoon <balloon-size>
Okay the networking bit is giving main character energy πβ¨ The nicN and natpfN lines are the ones to keep an eye on π
VBoxManage controlvm <uuid | vmname> usbattach <uuid | address> [--capturefile=filename]
VBoxManage controlvm <uuid | vmname> usbdetach <uuid | address>
VBoxManage controlvm <uuid | vmname> audioin <on | off>
VBoxManage controlvm <uuid | vmname> audioout <on | off>
VBoxManage controlvm <uuid | vmname> clipboard mode <disabled | hosttoguest | guesttohost | bidirectional>
VBoxManage controlvm <uuid | vmname> clipboard filetransfers <on | off>
VBoxManage controlvm <uuid | vmname> draganddrop <disabled | hosttoguest | guesttohost | bidirectional>
VBoxManage controlvm <uuid | vmname> vrde <on | off>
VBoxManage controlvm <uuid | vmname> vrdeport <port>
VBoxManage controlvm <uuid | vmname> vrdeproperty <prop-name=prop-value>
VBoxManage controlvm <uuid | vmname> vrdevideochannelquality <percentage>
USB, audio, clipboard and remote display π all in one spot, so you can flip them whenever you need to π¦
VBoxManage controlvm <uuid | vmname> setvideomodehint <xres> <yres> <bpp> [[display] [enabled:yes | no | x-origin??y-origin] ]
VBoxManage controlvm <uuid | vmname> setscreenlayout <display> <on | primary x-origin??y-origin??x-resolution??y-resolution??bpp | off>
VBoxManage controlvm <uuid | vmname> screenshotpng <filename> [display]
VBoxManage controlvm <uuid | vmname> recording <on | off>
VBoxManage controlvm <uuid | vmname> recording screens <all | none | screen-ID[,screen-ID...]>
VBoxManage controlvm <uuid | vmname> recording filename <filename>
VBoxManage controlvm <uuid | vmname> recording videores <widthxheight>
VBoxManage controlvm <uuid | vmname> recording videorate <rate>
VBoxManage controlvm <uuid | vmname> recording videofps <fps>
VBoxManage controlvm <uuid | vmname> recording maxtime <sec>
VBoxManage controlvm <uuid | vmname> recording maxfilesize <MB>
Screens and recording π¬ are so iconic, and there are a LOT of knobs here, so don't rush it π«Ά
VBoxManage controlvm <uuid | vmname> setcredentials <username> --passwordfile= <filename | password> <domain-name> --allowlocallogon= <yes | no>
VBoxManage controlvm <uuid | vmname> teleport <--host=host-name> <--port=port-name> [--maxdowntime=msec] [--passwordfile=filename | --password=password]
VBoxManage controlvm <uuid | vmname> plugcpu <ID>
VBoxManage controlvm <uuid | vmname> unplugcpu <ID>
VBoxManage controlvm <uuid | vmname> cpuexecutioncap <num>
VBoxManage controlvm <uuid | vmname> vm-process-priority <default | flat | low | normal | high>
VBoxManage controlvm <uuid | vmname> webcam attach [pathname [settings] ]
VBoxManage controlvm <uuid | vmname> webcam detach [pathname]
VBoxManage controlvm <uuid | vmname> webcam list
VBoxManage controlvm <uuid | vmname> addencpassword <ID> <password-file | -> [--removeonsuspend= yes | no ]
VBoxManage controlvm <uuid | vmname> removeencpassword <ID>
VBoxManage controlvm <uuid | vmname> removeallencpasswords
VBoxManage controlvm <uuid | vmname> changeuartmodeN disconnected | server pipe-name | client pipe-name | tcpserver port | tcpclient hostname:port | file filename | device-name
VBoxManage controlvm <uuid | vmname> autostart-enabledN on | off
VBoxManage controlvm <uuid | vmname> autostart-delayseconds
Heads up: thesetcredentials,teleportandaddencpasswordlines are sensitive, so double-check what you're passing in π
Now for the import and export crew π¦
VBoxManage import <ovfname | ovaname> [--dry-run] [--options= keepallmacs | keepnatmacs | importtovdi ] [--vsys=n] [--ostype=ostype] [--vmname=name] [--settingsfile=file] [--basefolder=folder] [--group=group] [--memory=MB] [--cpus=n] [--description=text] [--eula= show | accept ] [--unit=n] [--ignore] [--scsitype= BusLogic | LsiLogic ] [--disk=path] [--controller=index] [--port=n]
VBoxManage import OCI:// --cloud [--ostype=ostype] [--vmname=name] [--basefolder=folder] [--memory=MB] [--cpus=n] [--description=text] <--cloudprofile=profile> <--cloudinstanceid=id> [--cloudbucket=bucket]
VBoxManage export <machines> <--output=name> [--legacy09 | --ovf09 | --ovf10 | --ovf20] [--manifest] [--options= manifest | iso | nomacs | nomacsbutnat... ] [--vsys=virtual-system-number] [--description=description-info] [--eula=license-text] [--eulafile=filename] [--product=product-name] [--producturl=product-URL] [--vendor=vendor-name] [--vendorurl=vendor-URL] [--version=version-info] [--vmname=vmname]
VBoxManage export <machine> <--output=cloud-service-provider> [--opc10] [--vmname=vmname] [--cloud=virtual-system-number] [--cloudprofile=cloud-profile-name] [--cloudshape=cloud-shape-name] [--clouddomain=cloud-domain] [--clouddisksize=disk-size-in-GB] [--cloudbucket=bucket-name] [--cloudocivcn=OCI-VCN-ID] [--cloudocisubnet=OCI-subnet-ID] [--cloudkeepobject= true | false ] [--cloudlaunchinstance= true | false ] [--cloudlaunchmode= EMULATED | PARAVIRTUALIZED ] [--cloudpublicip= true | false ]
Next up, disk stuff with mediumio πΎ and shared folders π
VBoxManage mediumio <--disk=uuid|filename | --dvd=uuid|filename | --floppy=uuid|filename> [--password-file=-|filename] formatfat [--quick]
VBoxManage mediumio <--disk=uuid|filename | --dvd=uuid|filename | --floppy=uuid|filename> [--password-file=-|filename] cat [--hex] [--offset=byte-offset] [--size=bytes] [--output=-|filename]
VBoxManage mediumio <--disk=uuid|filename | --dvd=uuid|filename | --floppy=uuid|filename> [--password-file=-|filename] stream [--format=image-format] [--variant=image-variant] [--output=-|filename]
VBoxManage sharedfolder add <uuid | vmname> <--name=name> <--hostpath=hostpath> [--readonly] [--transient] [--automount] [--auto-mount-point=path]
VBoxManage sharedfolder remove <uuid | vmname> <--name=name> [--transient]
Shared folders are a whole mood πΏ and mediumio is giving very "I can do my own thing" energy π
Last but not least, the DHCP server commands π§ These two are long, so get comfy.
VBoxManage dhcpserver add <--network=netname | --interface=ifname> <--server-ip=address> <--netmask=mask> <--lower-ip=address> <--upper-ip=address> <--enable | --disable> [--global | --set-opt=dhcp-opt-no value... | --set-opt-hex=dhcp-opt-no hexstring... | --force-opt=dhcp-opt-no... | --supress-opt=dhcp-opt-no... | --min-lease-time=seconds | --default-lease-time=seconds | --max-lease-time=seconds...] [--group=name | --set-opt=dhcp-opt-no value... | --set-opt-hex=dhcp-opt-no hexstring... | --force-opt=dhcp-opt-no... | --supress-opt=dhcp-opt-no... | --incl-mac=address... | --excl-mac=address... | --incl-mac-wild=pattern... | --excl-mac-wild=pattern... | --incl-vendor=string... | --excl-vendor=string... | --incl-vendor-wild=pattern... | --excl-vendor-wild=pattern... | --incl-user=string... | --excl-user=string... | --incl-user-wild=pattern... | --excl-user-wild=pattern... | --min-lease-time=seconds | --default-lease-time=seconds | --max-lease-time=seconds...] [--vm=name|uuid | --nic=1-N | --set-opt=dhcp-opt-no value... | --set-opt-hex=dhcp-opt-no hexstring... | --force-opt=dhcp-opt-no... | --supress-opt=dhcp-opt-no... | --min-lease-time=seconds | --default-lease-time=seconds | --max-lease-time=seconds | --fixed-address=address...] [--mac-address=address | --set-opt=dhcp-opt-no value... | --set-opt-hex=dhcp-opt-no hexstring... | --force-opt=dhcp-opt-no... | --supress-opt=dhcp-opt-no... | --min-lease-time=seconds | --default-lease-time=seconds | --max-lease-time=seconds | --fixed-address=address...]
VBoxManage dhcpserver modify <--network=netname | --interface=ifname> [--server-ip=address] [--lower-ip=address] [--upper-ip=address] [--netmask=mask] [--enable | --disable] [--global | --del-opt=dhcp-opt-no... | --set-opt=dhcp-opt-no value... | --set-opt-hex=dhcp-opt-no hexstring... | --force-opt=dhcp-opt-no... | --unforce-opt=dhcp-opt-no... | --supress-opt=dhcp-opt-no... | --unsupress-opt=dhcp-opt-no... | --min-lease-time=seconds | --default-lease-time=seconds | --max-lease-time=seconds | --remove-config...] [--group=name | --set-opt=dhcp-opt-no value... | --set-opt-hex=dhcp-opt-no hexstring... | --force-opt=dhcp-opt-no... | --unforce-opt=dhcp-opt-no... | --supress-opt=dhcp-opt-no... | --unsupress-opt=dhcp-opt-no... | --del-mac=address... | --incl-mac=address... | --excl-mac=address... | --del-mac-wild=pattern... | --incl-mac-wild=pattern... | --excl-mac-wild=pattern... | --del-vendor=string... | --incl-vendor=string... | --excl-vendor=string... | --del-vendor-wild=pattern... | --incl-vendor-wild=pattern... | --excl-vendor-wild=pattern... | --del-user=string... | --incl-user=string... | --excl-user=string... | --del-user-wild=pattern... | --incl-user-wild=pattern... | --excl-user-wild=pattern... | --zap-conditions | --min-lease-time=seconds | --default-lease-time=seconds | --max-lease-time=seconds | --remove-config...] [--vm=name|uuid | --nic=1-N | --del-opt=dhcp-opt-no... | --set-opt=dhcp-opt-no value... | --set-opt-hex=dhcp-opt-no hexstring... | --force-opt=dhcp-opt-no... | --unforce-opt=dhcp-opt-no... | --supress-opt=dhcp-opt-no... | --unsupress-opt=dhcp-opt-no... | --min-lease-time=seconds | --default-lease-time=seconds | --max-lease-time=seconds | --fixed-address=address | --remove-config...]
okay bestie, we're picking up mid-synopsis β¨ The dhcpserver line is still going, so here's the rest of its options π¦
[--mac-address=address | --del-opt=dhcp-opt-no... |
--set-opt=dhcp-opt-no value... | --set-opt-hex=dhcp-opt-no
hexstring... | --force-opt=dhcp-opt-no... |
--unforce-opt=dhcp-opt-no... |
--supress-opt=dhcp-opt-no... | --unsupress-opt=dhcp-opt-no... |
--min-lease-time=seconds | --default-lease-time=seconds |
--max-lease-time=seconds | --fixed-address=address |
--remove-config...]
VBoxManage dhcpserver remove <--network=netname |
--interface=ifname>
VBoxManage dhcpserver start <--network=netname |
--interface=ifname>
VBoxManage dhcpserver restart <--network=netname |
--interface=ifname>
VBoxManage dhcpserver stop <--network=netname |
--interface=ifname>
VBoxManage dhcpserver findlease <--network=netname |
--interface=ifname> <--mac-address=mac>
Heads up, --supress-opt is spelled exactly like that, typo and all π so copy it as-is.
π debugvm, the main character π
Lowkey the longest bit of this whole thing. Every line starts with VBoxManage debugvm <uuid|vmname> and then picks a subcommand β¨
VBoxManage debugvm <uuid|vmname> dumpvmcore [--filename=name]
VBoxManage debugvm <uuid|vmname> info <item> [args...]
VBoxManage debugvm <uuid|vmname> injectnmi
VBoxManage debugvm <uuid|vmname> log [--release | --debug]
[group-settings...]
VBoxManage debugvm <uuid|vmname> logdest [--release | --debug]
[destinations...]
VBoxManage debugvm <uuid|vmname> logflags [--release | --debug]
[flags...]
VBoxManage debugvm <uuid|vmname> osdetect
VBoxManage debugvm <uuid|vmname> osinfo
VBoxManage debugvm <uuid|vmname> osdmesg [--lines=lines]
VBoxManage debugvm <uuid|vmname> getregisters [--cpu=id]
[reg-set.reg-name...]
VBoxManage debugvm <uuid|vmname> setregisters [--cpu=id]
[reg-set.reg-name=value...]
VBoxManage debugvm <uuid|vmname> show [--human-readable |
--sh-export | --sh-eval | --cmd-set] [settings-item...]
VBoxManage debugvm <uuid|vmname> stack [--cpu=id]
VBoxManage debugvm <uuid|vmname> statistics [--reset]
[--descriptions] [--pattern=pattern]
VBoxManage debugvm <uuid|vmname> guestsample
[--filename=filename] [--sample-interval-us=interval]
[--sample-time-us=time]
π§ extpack, unattended & cloud π§
The extension pack trio is up next π
VBoxManage extpack install [--replace] [--accept-license=sha256]
<tarball>
VBoxManage extpack uninstall [--force] <name>
VBoxManage extpack cleanup
Then unattended, which is giving full automation energy π€
VBoxManage unattended detect <--iso=install-iso>
[--machine-readable]
VBoxManage unattended install <uuid|vmname> <--iso=install-iso>
[--user=login] [--password=password] [--password-file=file]
[--full-user-name=name] [--key=product-key] [--install-additions]
[--no-install-additions] [--additions-iso=add-iso]
[--install-txs] [--no-install-txs]
[--validation-kit-iso=testing-iso] [--locale=ll_CC]
[--country=CC] [--time-zone=tz] [--hostname=fqdn]
[--package-selection-adjustment=keyword] [--dry-run]
[--auxiliary-base-path=path] [--image-index=number]
[--script-template=file] [--post-install-template=file]
[--post-install-command=command]
[--extra-install-kernel-parameters=params] [--language=lang]
[--start-vm=session-type]
And now the cloud family, which is a whole vibe π
VBoxManage cloud <--provider=name> <--profile=name>
list instances [--state=string] [--compartment-id=string]
VBoxManage cloud <--provider=name> <--profile=name>
list images <--compartment-id=string> [--state=string]
VBoxManage cloud <--provider=name> <--profile=name>
list vnicattachments <--compartment-id=string> [--filter=string]
VBoxManage cloud <--provider=name> <--profile=name>
instance create <--domain-name=name> <--image-id=id |
--boot-volume-id=id> <--display-name=name> <--shape=type>
<--subnet=id> [--boot-disk-size=size in GB]
[--publicip=true/false] [--privateip=IP
address] [--public-ssh-key=key string...]
[--launch-mode=NATIVE/EMULATED/PARAVIRTUALIZED]
[--cloud-init-script-path=path to a script]
VBoxManage cloud <--provider=name> <--profile=name>
instance info <--id=unique id>
VBoxManage cloud <--provider=name> <--profile=name>
instance terminate <--id=unique id>
VBoxManage cloud <--provider=name> <--profile=name>
instance start <--id=unique id>
VBoxManage cloud <--provider=name> <--profile=name>
instance pause <--id=unique id>
VBoxManage cloud <--provider=name> <--profile=name>
instance reset <--id=unique id>
VBoxManage cloud <--provider=name> <--profile=name>
image create <--display-name=name> [--bucket-name=name]
[--object-name=name] [--instance-id=unique id]
VBoxManage cloud <--provider=name> <--profile=name>
image info <--id=unique id>
VBoxManage cloud <--provider=name> <--profile=name>
image delete <--id=unique id>
VBoxManage cloud <--provider=name> <--profile=name>
image import <--id=unique id> [--bucket-name=name]
[--object-name=name]
VBoxManage cloud <--provider=name> <--profile=name>
image export <--id=unique id> <--display-name=name>
[--bucket-name=name] [--object-name=name]
VBoxManage cloud <--provider=name> <--profile=name>
network setup [--gateway-os-name=string]
[--gateway-os-version=string] [--gateway-shape=string]
[--tunnel-network-name=string] [--tunnel-network-range=string]
[--proxy=string] [--compartment-id=string]
VBoxManage cloud <--provider=name> <--profile=name>
network create <--name=string> <--network-id=string> [--enable |
--disable]
VBoxManage cloud network update <--name=string>
[--network-id=string] [--enable | --disable]
VBoxManage cloud network delete <--name=string>
VBoxManage cloud network info <--name=string>
π«Ά cloudprofile & signova π«Ά
Your cloud credentials live in cloudprofile, so handle them with care π
VBoxManage cloudprofile <--provider=name> <--profile=name> add
[--clouduser=unique id] [--fingerprint=MD5 string]
[--keyfile=path] [--passphrase=string] [--tenancy=unique id]
[--compartment=unique id]
[--region=string]
VBoxManage cloudprofile <--provider=name> <--profile=name> update
[--clouduser=unique id] [--fingerprint=MD5 string]
[--keyfile=path] [--passphrase=string] [--tenancy=unique id]
[--compartment=unique id]
[--region=string]
VBoxManage cloudprofile <--provider=name> <--profile=name> delete
VBoxManage cloudprofile <--provider=name> <--profile=name> show
VBoxManage signova <ova> <--certificate=file>
<--private-key=file> [--private-key-password-file=password-file |
--private-key-password=password] [--digest-type=type] [--pkcs7 |
--no-pkcs7]
[--intermediate-cert=file] [--force] [--verbose] [--quiet]
[--dry-run]
π modifynvram π
This one is all about the NVRAM vibes πΈ
VBoxManage modifynvram <uuid|vmname> inituefivarstore
VBoxManage modifynvram <uuid|vmname> enrollmssignatures
VBoxManage modifynvram <uuid|vmname> enrollorclpk
VBoxManage modifynvram <uuid|vmname> enrollpk
[--platform-key=filename] [--owner-uuid=uuid]
VBoxManage modifynvram <uuid|vmname> enrollmok [--mok=filename]
[--owner-uuid=uuid]
VBoxManage modifynvram <uuid|vmname> listvars
VBoxManage modifynvram <uuid|vmname> queryvar [--name=name]
[--filename=filename]
VBoxManage modifynvram <uuid|vmname> deletevar [--name=name]
[--owner-uuid=uuid]
VBoxManage modifynvram <uuid|vmname> changevar [--name=name]
[--filename=filename]
π hostonlynet, updatecheck & friends π
VBoxManage hostonlynet add <--name=netname> [--id=netid]
<--netmask=mask> <--lower-ip=address> <--upper-ip=address>
[--enable | --disable]
VBoxManage hostonlynet modify <--name=netname | --id=netid>
[--lower-ip=address] [--upper-ip=address] [--netmask=mask]
[--enable | --disable]
VBoxManage hostonlynet remove <--name=netname | --id=netid>
VBoxManage updatecheck perform [--machine-readable]
VBoxManage updatecheck list [--machine-readable]
VBoxManage updatecheck modify [--disable | --enable]
[--channel=stable | withbetas | all] [--frequency=days]
VBoxManage discardstate <uuid | vmname>
VBoxManage adoptstate <uuid | vmname> <state-filename>
VBoxManage closemedium [disk | dvd | floppy] <uuid | filename>
[--delete]
π¦ storageattach & storagectl π¦
storageattach is a LOT, so get comfy ποΈ
VBoxManage storageattach <uuid | vmname> <--storagectl=name>
[--bandwidthgroup= name | none ] [--comment=text]
[--device=number] [--discard= on | off ] [--encodedlun=lun]
[--forceunmount] [--hotpluggable= on
| off ] [--initiator=initiator] [--intnet] [--lun=lun] [--medium=
none | emptydrive | additions | uuid | filename | host:drive |
iscsi ] [--mtype= normal | writethrough | immutable | shareable |
readonly | multiattach ] [--nonrotational= on | off ]
[--passthrough= on | off ] [--passwordfile=file]
[--password=password] [--port=number] [--server= name | ip ]
[--setparentuuid=uuid] [--setuuid=uuid] [--target=target]
[--tempeject= on | off ] [--tport=port] [--type= dvddrive | fdd |
hdd ] [--username=username]
VBoxManage storagectl <uuid | vmname> <--name=controller-name>
[--add= floppy | ide | pcie | sas | sata | scsi | usb ]
[--controller= BusLogic | I82078 | ICH6 | IntelAhci | LSILogic |
LSILogicSAS | NVMe |
PIIX3 | PIIX4 | USB | VirtIO ] [--bootable= on | off ]
[--hostiocache= on | off ] [--portcount=count] [--remove]
[--rename=new-controller-name]
π bandwidthctl, showmediuminfo & createmedium π
VBoxManage bandwidthctl <uuid | vmname> add
<bandwidth-group-name> <--limit=bandwidth-limit[k|m|g|K|M|G]>
<--type=disk|network>
VBoxManage bandwidthctl <uuid | vmname> list [--machinereadable]
VBoxManage bandwidthctl <uuid | vmname> remove
<bandwidth-group-name>
VBoxManage bandwidthctl <uuid | vmname> set
<bandwidth-group-name> <--limit=bandwidth-limit[k|m|g|K|M|G]>
VBoxManage showmediuminfo [disk | dvd | floppy] <uuid | filename>
VBoxManage createmedium [disk | dvd | floppy]
<--filename=filename> [--size=megabytes | --sizebyte=bytes]
[--diffparent= UUID | filename ] [--format= VDI | VMDK | VHD ]
[--variant Standard,Fixed,Split2G,Stream,ESX,Formatted,RawDisk]
--property name=value... --property-file
name=/path/to/file/with/value...
π modifymedium π
VBoxManage modifymedium [disk | dvd | floppy] <uuid | filename>
[--autoreset=on | off] [--compact] [--description=description]
[--move=pathname] [--property=name=[value]]
okay bestie, the SYNOPSIS is still going and it is a lot π every single line is copied EXACTLY so nothing slips through π«Ά
[--resize=megabytes | --resizebyte=bytes]
[--setlocation=pathname] [--type=normal | writethrough |
immutable | shareable | readonly | multiattach]
VBoxManage clonemedium <uuid | source-medium> <uuid |
target-medium> [disk | dvd | floppy] [--existing] [--format= VDI
| VMDK | VHD | RAW | other ]
[--variant=Standard,Fixed,Split2G,Stream,ESX]
VBoxManage mediumproperty [disk | dvd | floppy] set <uuid |
filename> <property-name> <property-value>
VBoxManage mediumproperty [disk | dvd | floppy] get <uuid |
filename> <property-name>
VBoxManage mediumproperty [disk | dvd | floppy] delete <uuid |
filename> <property-name>
VBoxManage encryptmedium <uuid | filename> [--cipher=cipher-ID]
[--newpassword=password] [--newpasswordid=password-ID]
[--oldpassword=password]
VBoxManage checkmediumpwd <uuid | filename> <password-file>
VBoxManage convertfromraw <inputfile> <outputfile> [--format= VDI
| VMDK | VHD ] [--uuid=uuid]
[--variant=Standard,Fixed,Split2G,Stream,ESX]
VBoxManage convertfromraw stdin <outputfile> <bytes> [--format=
VDI | VMDK | VHD ] [--uuid=uuid]
[--variant=Standard,Fixed,Split2G,Stream,ESX]
VBoxManage setextradata <global | uuid | vmname> <keyword>
[value]
VBoxManage getextradata <global | uuid | vmname> keyword |
enumerate
VBoxManage setproperty <property-name> <property-value>
VBoxManage usbfilter add <index,0-N> <--target= <uuid | vmname |
global> > <--name=string> <--action=ignore | hold> [--active=yes
| no] [--vendorid=XXXX] [--productid=XXXX] [--revision=IIFF]
[--manufacturer=string] [--product=string] [--port=hex]
[--remote=yes | no] [--serialnumber=string]
[--maskedinterfaces=XXXXXXXX]
VBoxManage usbfilter modify <index,0-N> <--target= <uuid | vmname
| global> > [--name=string] [--action=ignore | hold]
[--active=yes | no] [--vendorid=XXXX | ""] [--productid=XXXX |
""] [--revision=IIFF | ""]
[--manufacturer=string | ""] [--product=string | ""] [--port=hex]
[--remote=yes | no] [--serialnumber=string | ""]
[--maskedinterfaces=XXXXXXXX]
VBoxManage usbfilter remove <index,0-N> <--target= <uuid | vmname
| global> >
VBoxManage guestproperty get <uuid | vmname> <property-name>
[--verbose]
VBoxManage guestproperty enumerate <uuid | vmname>
[--no-timestamp] [--no-flags] [--relative] [--old-format]
[patterns...]
VBoxManage guestproperty set <uuid | vmname> <property-name>
[property-value [--flags=flags] ]
VBoxManage guestproperty unset <uuid | vmname> <property-name>
VBoxManage guestproperty wait <uuid | vmname> <patterns>
[--timeout=msec] [--fail-on-timeout]
VBoxManage guestcontrol <uuid | vmname> run [--arg0=argument 0]
[--domain=domainname] [--dos2unix] [--exe=filename]
[--ignore-orphaned-processes] [--no-wait-stderr | --wait-stderr]
[--no-wait-stdout |
--wait-stdout] [--passwordfile=password-file | --password=password]
[--profile] [--putenv=var-name=[value]] [--quiet]
[--timeout=msec] [--unix2dos] [--unquoted-args]
[--username=username] [--verbose] <--
[argument...] >
VBoxManage guestcontrol <uuid | vmname> start [--arg0=argument 0]
[--domain=domainname] [--exe=filename]
[--ignore-orphaned-processes] [--passwordfile=password-file |
--password=password] [--profile]
[--putenv=var-name=[value]] [--quiet] [--timeout=msec]
[--unquoted-args] [--username=username] [--verbose] <--
[argument...] >
VBoxManage guestcontrol <uuid | vmname> copyfrom [--dereference]
[--domain=domainname] [--passwordfile=password-file |
--password=password] [--quiet] [--no-replace] [--recursive]
[--target-directory=host-destination-dir] [--update]
[--username=username] [--verbose] <guest-source0> guest-source1
[...] <host-destination>
VBoxManage guestcontrol <uuid | vmname> copyto [--dereference]
[--domain=domainname] [--passwordfile=password-file |
--password=password] [--quiet] [--no-replace] [--recursive]
[--target-directory=guest-destination-dir] [--update]
[--username=username] [--verbose] <host-source0> host-source1
[...]
VBoxManage guestcontrol <uuid | vmname> mkdir
[--domain=domainname] [--mode=mode] [--parents]
[--passwordfile=password-file | --password=password] [--quiet]
[--username=username] [--verbose]
<guest-directory...>
VBoxManage guestcontrol <uuid | vmname> rmdir
[--domain=domainname] [--passwordfile=password-file |
--password=password] [--quiet] [--recursive]
[--username=username] [--verbose] <guest-directory...>
VBoxManage guestcontrol <uuid | vmname> rm [--domain=domainname]
[--force] [--passwordfile=password-file | --password=password]
[--quiet] [--username=username] [--verbose] <guest-directory...>
VBoxManage guestcontrol <uuid | vmname> mv [--domain=domainname]
[--passwordfile=password-file | --password=password] [--quiet]
[--username=username] [--verbose] <source...>
<destination-directory>
VBoxManage guestcontrol <uuid | vmname> mktemp [--directory]
[--domain=domainname] [--mode=mode] [--passwordfile=password-file
| --password=password] [--quiet] [--secure]
[--tmpdir=directory-name]
[--username=username] [--verbose] <template-name>
VBoxManage guestcontrol <uuid | vmname> stat
[--domain=domainname] [--passwordfile=password-file |
--password=password] [--quiet] [--username=username] [--verbose]
<filename>
VBoxManage guestcontrol <uuid | vmname> list <all | files |
processes | sessions> [--quiet] [--verbose]
VBoxManage guestcontrol <uuid | vmname> closeprocess
[--session-id=ID | --session-name=name-or-pattern] [--quiet]
[--verbose] <PID...>
VBoxManage guestcontrol <uuid | vmname> closesession [--all |
--session-id=ID | --session-name=name-or-pattern] [--quiet]
[--verbose]
VBoxManage guestcontrol <uuid | vmname> updatega [--quiet] [--verbose]
[--source=guest-additions.ISO] [--wait-start] [--
[argument...] ]
VBoxManage guestcontrol <uuid | vmname> watch [--quiet]
[--verbose]
VBoxManage metrics collect [--detach] [--list] [--period=seconds]
[--samples=count] [* | host | vmname metric-list]
VBoxManage metrics disable [--list] [* | host | vmname
metric-list]
VBoxManage metrics enable [--list] [* | host | vmname
metric-list]
VBoxManage metrics list [* | host | vmname metric-list]
VBoxManage metrics query [* | host | vmname metric-list]
VBoxManage metrics setup [--list] [--period seconds] [--samples
count] [* | host | vmname metric-list]
VBoxManage natnetwork add [--disable | --enable] <--netname=name>
<--network=network> [--dhcp=on|off] [--ipv6=on|off]
[--loopback-4=rule] [--loopback-6=rule] [--port-forward-4=rule]
[--port-forward-6=rule]
VBoxManage natnetwork list [filter-pattern]
VBoxManage natnetwork modify [--dhcp=on|off] [--disable |
--enable] <--netname=name> <--network=network> [--ipv6=on|off]
[--loopback-4=rule] [--loopback-6=rule] [--port-forward-4=rule]
[--port-forward-6=rule]
VBoxManage natnetwork remove <--netname=name>
VBoxManage natnetwork start <--netname=name>
VBoxManage natnetwork stop <--netname=name>
VBoxManage hostonlyif ipconfig <ifname> [--dhcp |
--ip=IPv4-address --netmask=IPv4-netmask | --ipv6=IPv6-address
--netmasklengthv6=length]
VBoxManage hostonlyif create
VBoxManage hostonlyif remove <ifname>
VBoxManage usbdevsource add <source-name> <--backend=backend>
<--address=address>
VBoxManage usbdevsource remove <source-name>
that's the whole page, bestie! π¦ VBoxManage, April 2024 edition, all wrapped up as VBOXMANAGE(1) π slay the terminal and call me later π§β¨
π¦ where this page comes from
- ubuntu noble: virtualbox 7.0.16-dfsg-2
- ubuntu noble: virtualbox 7.0.16-dfsg-2ubuntu1.3
- ubuntu questing: virtualbox 7.2.2-dfsg-2
- ubuntu questing: virtualbox 7.2.2-dfsg-2ubuntu0.1
- ubuntu resolute: virtualbox 7.2.6-dfsg-4
- ubuntu stonking: virtualbox 7.2.20-dfsg-2
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms