VBOXMANAGE(1)

πŸ“¦
version 7.2.20-dfsg Β· 2 versions
, in ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

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: the setcredentials, teleport and addencpassword lines 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 🧚✨