Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
QEMU-GA-REF(7)			     QEMU			QEMU-GA-REF(7)

NAME
       qemu-ga-ref - QEMU Guest	Agent Protocol Reference

   Contents
        QEMU Guest Agent Protocol Reference

	  QEMU	guest agent protocol commands and structs

	    guest-sync-delimited (Command)

	    guest-sync	(Command)

	    guest-ping	(Command)

	    guest-get-time (Command)

	    guest-set-time (Command)

	    GuestAgentCommandInfo (Object)

	    GuestAgentInfo (Object)

	    guest-info	(Command)

	    guest-shutdown (Command)

	    guest-file-open (Command)

	    guest-file-close (Command)

	    GuestFileRead (Object)

	    guest-file-read (Command)

	    GuestFileWrite (Object)

	    guest-file-write (Command)

	    GuestFileSeek (Object)

	    QGASeek (Enum)

	    GuestFileWhence (Alternate)

	    guest-file-seek (Command)

	    guest-file-flush (Command)

	    GuestFsfreezeStatus (Enum)

	    guest-fsfreeze-status (Command)

	    guest-fsfreeze-freeze (Command)

	    guest-fsfreeze-freeze-list	(Command)

	    guest-fsfreeze-thaw (Command)

	    GuestFilesystemTrimResult (Object)

	    GuestFilesystemTrimResponse (Object)

	    guest-fstrim (Command)

	    guest-suspend-disk	(Command)

	    guest-suspend-ram (Command)

	    guest-suspend-hybrid (Command)

	    GuestIpAddressType	(Enum)

	    GuestIpAddress (Object)

	    GuestNetworkInterfaceStat (Object)

	    GuestNetworkInterface (Object)

	    guest-network-get-interfaces (Command)

	    GuestLogicalProcessor (Object)

	    guest-get-vcpus (Command)

	    guest-set-vcpus (Command)

	    GuestDiskBusType (Enum)

	    GuestPCIAddress (Object)

	    GuestCCWAddress (Object)

	    GuestDiskAddress (Object)

	    GuestNVMeSmart (Object)

	    GuestDiskSmart (Object)

	    GuestDiskInfo (Object)

	    guest-get-disks (Command)

	    GuestFilesystemInfo (Object)

	    guest-get-fsinfo (Command)

	    guest-set-user-password (Command)

	    GuestMemoryBlock (Object)

	    guest-get-memory-blocks (Command)

	    GuestMemoryBlockResponseType (Enum)

	    GuestMemoryBlockResponse (Object)

	    guest-set-memory-blocks (Command)

	    GuestMemoryBlockInfo (Object)

	    guest-get-memory-block-info (Command)

	    GuestExecStatus (Object)

	    guest-exec-status (Command)

	    GuestExec (Object)

	    GuestExecCaptureOutputMode	(Enum)

	    GuestExecCaptureOutput (Alternate)

	    guest-exec	(Command)

	    GuestHostName (Object)

	    guest-get-host-name (Command)

	    GuestUser (Object)

	    guest-get-users (Command)

	    GuestTimezone (Object)

	    guest-get-timezone	(Command)

	    GuestOSInfo (Object)

	    guest-get-osinfo (Command)

	    GuestDeviceType (Enum)

	    GuestDeviceIdPCI (Object)

	    GuestDeviceId (Object)

	    GuestDeviceInfo (Object)

	    guest-get-devices (Command)

	    GuestAuthorizedKeys (Object)

	    guest-ssh-get-authorized-keys (Command)

	    guest-ssh-add-authorized-keys (Command)

	    guest-ssh-remove-authorized-keys (Command)

	    GuestDiskStats (Object)

	    GuestDiskStatsInfo	(Object)

	    guest-get-diskstats (Command)

	    GuestCpuStatsType (Enum)

	    GuestLinuxCpuStats	(Object)

	    GuestCpuStats (Object)

	    guest-get-cpustats	(Command)

	    GuestNetworkRoute (Object)

	    guest-network-get-route (Command)

QEMU GUEST AGENT PROTOCOL COMMANDS AND STRUCTS
   guest-sync-delimited	(Command)
       Echo  back  a  unique  integer value, and prepend to response a leading
       sentinel	byte (0xFF) the	client can check scan for.

       This is used by clients talking to the guest agent over the wire	to en-
       sure the	stream is in sync and doesn't contain stale data from previous
       client.	It must	be issued  upon	 initial  connection,  and  after  any
       client-side  timeouts  (including  timeouts  on receiving a response to
       this command).

       After issuing this request, all guest agent responses should be ignored
       until the response containing  the  unique  integer  value  the	client
       passed in is returned.  Receival	of the 0xFF sentinel byte must be han-
       dled  as	 an  indication	that the client's lexer/tokenizer/parser state
       should be flushed/reset in preparation for reliably receiving the  sub-
       sequent	response.   As	an optimization, clients may opt to ignore all
       data until a sentinel value is receiving	to avoid unnecessary  process-
       ing of stale data.

       Similarly, clients should also precede this request with	a 0xFF byte to
       make  sure  the guest agent flushes any partially read JSON data	from a
       previous	client connection.

   Arguments
       id: int
	      randomly generated 64-bit	integer

   Returns
       The unique integer id passed in by the client

   Since
       1.1

   guest-sync (Command)
       Echo back a unique integer value

       This is used by clients talking to the guest agent over the wire	to en-
       sure the	stream is in sync and doesn't contain stale data from previous
       client.	All guest agent	responses should be ignored until the provided
       unique integer value is returned, and it	is up to the client to	handle
       stale  whole  or	 partially-delivered JSON text in such a way that this
       response	can be obtained.

       In cases	where a	partial	stale response was previously received by  the
       client,	this  cannot always be done reliably.  One particular scenario
       being if	qemu-ga	responses are fed character-by-character into  a  JSON
       parser.	 In  these situations, using guest-sync-delimited may be opti-
       mal.

       For clients that	fetch responses	line by	line and convert them to  JSON
       objects,	 guest-sync should be sufficient, but note that	in cases where
       the channel is dirty some attempts at parsing the response  may	result
       in a parser error.

       Such  clients should also precede this command with a 0xFF byte to make
       sure the	guest agent flushes any	partially read JSON data from a	previ-
       ous session.

   Arguments
       id: int
	      randomly generated 64-bit	integer

   Returns
       The unique integer id passed in by the client

   Since
       0.15.0

   guest-ping (Command)
       Ping the	guest agent, a non-error return	implies	success

   Since
       0.15.0

   guest-get-time (Command)
       Get the information about guest's System	Time relative to the Epoch  of
       1970-01-01 in UTC.

   Returns
       Time in nanoseconds.

   Since
       1.5

   guest-set-time (Command)
       Set guest time.

       When  a	guest  is  paused  or migrated to a file then loaded from that
       file, the guest OS has no idea that there was a big gap	in  the	 time.
       Depending  on how long the gap was, NTP might not be able to resynchro-
       nize the	guest.

       This command tries to set guest's System	Time to	the given value,  then
       sets  the  Hardware  Clock (RTC)	to the current System Time.  This will
       make it easier for a guest to resynchronize without waiting for NTP. If
       no time is specified, then the time to set is read from	RTC.  However,
       this  may  not be supported on all platforms (i.e.  Windows). If	that's
       the case	users are advised to always pass a value.

   Arguments
       time: int (optional)
	      time of nanoseconds, relative to the Epoch of 1970-01-01 in UTC.

   Since
       1.5

   GuestAgentCommandInfo (Object)
       Information about guest agent commands.

   Members
       name: string
	      name of the command

       enabled:	boolean
	      whether command is currently enabled by guest admin

       success-response: boolean
	      whether command returns a	response on success (since 1.7)

   Since
       1.1.0

   GuestAgentInfo (Object)
       Information about guest agent.

   Members
       version:	string
	      guest agent version

       supported_commands: array of GuestAgentCommandInfo
	      Information about	guest agent commands

   Since
       0.15.0

   guest-info (Command)
       Get some	information about the guest agent.

   Returns
       GuestAgentInfo

   Since
       0.15.0

   guest-shutdown (Command)
       Initiate	guest-activated	shutdown.  Note: this is an asynchronous shut-
       down request, with no guarantee of successful shutdown.

   Arguments
       mode: string (optional)
	      "halt", "powerdown" (default), or	"reboot"

       This command does NOT return a response on success.  Success  condition
       is indicated by the VM exiting with a zero exit status or, when running
       with  --no-shutdown, by issuing the query-status	QMP command to confirm
       the VM status is	"shutdown".

   Since
       0.15.0

   guest-file-open (Command)
       Open a file in the guest	and retrieve a file handle for it

   Arguments
       path: string
	      Full path	to the file in the guest to open.

       mode: string (optional)
	      open mode, as per	fopen(), "r" is	the default.

   Returns
       Guest file handle

   Since
       0.15.0

   guest-file-close (Command)
       Close an	open file in the guest

   Arguments
       handle: int
	      filehandle returned by guest-file-open

   Since
       0.15.0

   GuestFileRead (Object)
       Result of guest agent file-read operation

   Members
       count: int
	      number of	bytes read (note: count	is before  base64-encoding  is
	      applied)

       buf-b64:	string
	      base64-encoded bytes read

       eof: boolean
	      whether EOF was encountered during read operation.

   Since
       0.15.0

   guest-file-read (Command)
       Read  from an open file in the guest.  Data will	be base64-encoded.  As
       this command is just for	limited, ad-hoc	debugging, such	 as  log  file
       access, the number of bytes to read is limited to 48 MB.

   Arguments
       handle: int
	      filehandle returned by guest-file-open

       count: int (optional)
	      maximum  number  of  bytes  to  read (default is 4KB, maximum is
	      48MB)

   Returns
       GuestFileRead

   Since
       0.15.0

   GuestFileWrite (Object)
       Result of guest agent file-write	operation

   Members
       count: int
	      number of	bytes written (note: count is  actual  bytes  written,
	      after base64-decoding of provided	buffer)

       eof: boolean
	      whether EOF was encountered during write operation.

   Since
       0.15.0

   guest-file-write (Command)
       Write to	an open	file in	the guest.

   Arguments
       handle: int
	      filehandle returned by guest-file-open

       buf-b64:	string
	      base64-encoded string representing data to be written

       count: int (optional)
	      bytes  to	 write (actual bytes, after base64-decode), default is
	      all content in buf-b64 buffer after base64 decoding

   Returns
       GuestFileWrite

   Since
       0.15.0

   GuestFileSeek (Object)
       Result of guest agent file-seek operation

   Members
       position: int
	      current file position

       eof: boolean
	      whether EOF was encountered during file seek

   Since
       0.15.0

   QGASeek (Enum)
       Symbolic	names for use in guest-file-seek

   Values
       set    Set to the specified offset (same	effect as 'whence':0)

       cur    Add offset to the	current	location (same effect as 'whence':1)

       end    Add offset to the	end of the file	(same effect as	'whence':2)

   Since
       2.6

   GuestFileWhence (Alternate)
       Controls	the meaning of offset to guest-file-seek.

   Members
       value: int
	      Integral value (0	for set, 1 for cur, 2 for end),	available  for
	      historical  reasons, and might differ from the host's or guest's
	      SEEK_* values (since: 0.15)

       name: QGASeek
	      Symbolic name, and preferred interface

   Since
       2.6

   guest-file-seek (Command)
       Seek to a position in the file, as with fseek(),	and return the current
       file position afterward.	 Also  encapsulates  ftell()'s	functionality,
       with offset=0 and whence=1.

   Arguments
       handle: int
	      filehandle returned by guest-file-open

       offset: int
	      bytes to skip over in the	file stream

       whence: GuestFileWhence
	      Symbolic or numeric code for interpreting	offset

   Returns
       GuestFileSeek

   Since
       0.15.0

   guest-file-flush (Command)
       Write file changes buffered in userspace	to disk/kernel buffers

   Arguments
       handle: int
	      filehandle returned by guest-file-open

   Since
       0.15.0

   GuestFsfreezeStatus (Enum)
       An enumeration of filesystem freeze states

   Values
       thawed filesystems thawed/unfrozen

       frozen all non-network guest filesystems	frozen

   Since
       0.15.0

   If
       CONFIG_WIN32 or CONFIG_FSFREEZE

   guest-fsfreeze-status (Command)
       Get guest fsfreeze state.

   Returns
       GuestFsfreezeStatus ("thawed", "frozen",	etc., as defined below)

       NOTE:
	  This	may  fail  to properly report the current state	as a result of
	  some other guest processes having issued an fs freeze/thaw.

   Since
       0.15.0

   If
       CONFIG_WIN32 or CONFIG_FSFREEZE

   guest-fsfreeze-freeze (Command)
       Sync and	freeze all freezable, local guest filesystems.	If  this  com-
       mand succeeded, you may call guest-fsfreeze-thaw	later to unfreeze.

       On error, all filesystems will be thawed.  If no	filesystems are	frozen
       as  a  result  of  this	call,  then  guest-fsfreeze-status will	remain
       "thawed"	and calling guest-fsfreeze-thaw	is not necessary.

   Returns
       Number of file systems currently	frozen.

       NOTE:
	  On Windows, the command is implemented with the  help	 of  a	Volume
	  Shadow-copy  Service DLL helper.  The	frozen state is	limited	for up
	  to 10	seconds	by VSS.

   Since
       0.15.0

   If
       CONFIG_WIN32 or CONFIG_FSFREEZE

   guest-fsfreeze-freeze-list (Command)
       Sync and	 freeze	 specified  guest  filesystems.	  See  also  guest-fs-
       freeze-freeze.

       On error, all filesystems will be thawed.

   Arguments
       mountpoints: array of string (optional)
	      an  array	 of mountpoints	of filesystems to be frozen.  If omit-
	      ted, every mounted filesystem is frozen.	Invalid	 mount	points
	      are ignored.

   Returns
       Number of file systems currently	frozen.

   Since
       2.2

   If
       CONFIG_WIN32 or CONFIG_FSFREEZE

   guest-fsfreeze-thaw (Command)
       Unfreeze	all frozen guest filesystems

   Returns
       Number of file systems thawed by	this call

       NOTE:
	  If  the  return  value does not match	the previous call to guest-fs-
	  freeze-freeze, this likely means some	freezable filesystems were un-
	  frozen before	this call, and that  the  filesystem  state  may  have
	  changed before issuing this command.

   Since
       0.15.0

   If
       CONFIG_WIN32 or CONFIG_FSFREEZE

   GuestFilesystemTrimResult (Object)
   Members
       path: string
	      path that	was trimmed

       error: string (optional)
	      an error message when trim failed

       trimmed:	int (optional)
	      bytes trimmed for	this path

       minimum:	int (optional)
	      reported effective minimum for this path

   Since
       2.4

   If
       CONFIG_WIN32 or CONFIG_FSTRIM

   GuestFilesystemTrimResponse (Object)
   Members
       paths: array of GuestFilesystemTrimResult
	      list of GuestFilesystemTrimResult	per path that was trimmed

   Since
       2.4

   If
       CONFIG_WIN32 or CONFIG_FSTRIM

   guest-fstrim	(Command)
       Discard (or "trim") blocks which	are not	in use by the filesystem.

   Arguments
       minimum:	int (optional)
	      Minimum contiguous free range to discard,	in bytes.  Free	ranges
	      smaller  than  this may be ignored (this is a hint and the guest
	      may not respect it).  By increasing this value, the fstrim oper-
	      ation will complete more	quickly	 for  filesystems  with	 badly
	      fragmented  free	space,	although  not  all blocks will be dis-
	      carded.  The default value is zero, meaning "discard every  free
	      block".

   Returns
       A  GuestFilesystemTrimResponse which contains the status	of all trimmed
       paths.  (since 2.4)

   Since
       1.2

   If
       CONFIG_WIN32 or CONFIG_FSTRIM

   guest-suspend-disk (Command)
       Suspend guest to	disk.

       This command attempts to	suspend	the guest using	three  strategies,  in
       this order:

        systemd hibernate

        pm-utils (via pm-hibernate)

        manual	write into sysfs

       This  command  does  NOT	return a response on success.  There is	a high
       chance the command succeeded if the VM exits with a  zero  exit	status
       or,  when  running  with	--no-shutdown, by issuing the query-status QMP
       command to to confirm the VM status  is	"shutdown".  However,  the  VM
       could also exit (or set its status to "shutdown") due to	other reasons.

   Errors
        If suspend to disk is not supported, Unsupported

       NOTE:
	  It's	strongly  recommended  to  issue the guest-sync	command	before
	  sending commands when	the guest resumes.

   Since
       1.1

   If
       CONFIG_LINUX or CONFIG_WIN32

   guest-suspend-ram (Command)
       Suspend guest to	ram.

       This command attempts to	suspend	the guest using	three  strategies,  in
       this order:

        systemd hibernate

        pm-utils (via pm-hibernate)

        manual	write into sysfs

       IMPORTANT:  guest-suspend-ram  requires working wakeup support in QEMU.
       You should check	QMP command query-current-machine returns  wakeup-sus-
       pend-support:  true  before  issuing this command.  Failure in doing so
       can result in a suspended guest that QEMU will not be able  to  awaken,
       forcing the user	to power cycle the guest to bring it back.

       This  command does NOT return a response	on success.  There are two op-
       tions to	check for success:

       1. Wait for the SUSPEND QMP event from QEMU

       2. Issue	the query-status QMP command to	confirm	the VM status is "sus-
	  pended"

   Errors
        If suspend to ram is not supported, Unsupported

       NOTE:
	  It's strongly	recommended to issue  the  guest-sync  command	before
	  sending commands when	the guest resumes.

   Since
       1.1

   If
       CONFIG_LINUX or CONFIG_WIN32

   guest-suspend-hybrid	(Command)
       Save guest state	to disk	and suspend to ram.

       This command attempts to	suspend	the guest by executing,	in this	order:

        systemd hybrid-sleep

        pm-utils (via pm-suspend-hybrid)

       IMPORTANT:  guest-suspend-hybrid	 requires  working  wakeup  support in
       QEMU.  You  should  check  QMP  command	query-current-machine  returns
       wakeup-suspend-support:	true  before issuing this command.  Failure in
       doing so	can result in a	suspended guest	that QEMU will not be able  to
       awaken, forcing the user	to power cycle the guest to bring it back.

       This  command does NOT return a response	on success.  There are two op-
       tions to	check for success:

       1. Wait for the SUSPEND QMP event from QEMU

       2. Issue	the query-status QMP command to	confirm	the VM status is "sus-
	  pended"

   Errors
        If hybrid suspend is not supported, Unsupported

       NOTE:
	  It's strongly	recommended to issue  the  guest-sync  command	before
	  sending commands when	the guest resumes.

   Since
       1.1

   If
       CONFIG_LINUX

   GuestIpAddressType (Enum)
       An enumeration of supported IP address types

   Values
       ipv4   IP version 4

       ipv6   IP version 6

   Since
       1.1

   If
       CONFIG_WIN32 or HAVE_GETIFADDRS

   GuestIpAddress (Object)
   Members
       ip-address: string
	      IP address

       ip-address-type:	GuestIpAddressType
	      Type of ip-address (e.g. ipv4, ipv6)

       prefix: int
	      Network prefix length of ip-address

   Since
       1.1

   If
       CONFIG_WIN32 or HAVE_GETIFADDRS

   GuestNetworkInterfaceStat (Object)
   Members
       rx-bytes: int
	      total bytes received

       rx-packets: int
	      total packets received

       rx-errs:	int
	      bad packets received

       rx-dropped: int
	      receiver dropped packets

       tx-bytes: int
	      total bytes transmitted

       tx-packets: int
	      total packets transmitted

       tx-errs:	int
	      packet transmit problems

       tx-dropped: int
	      dropped packets transmitted

   Since
       2.11

   If
       CONFIG_WIN32 or HAVE_GETIFADDRS

   GuestNetworkInterface (Object)
   Members
       name: string
	      The name of interface for	which info are being delivered

       hardware-address: string	(optional)
	      Hardware address of name

       ip-addresses: array of GuestIpAddress (optional)
	      List of addresses	assigned to name

       statistics: GuestNetworkInterfaceStat (optional)
	      various statistic	counters related to name (since	2.11)

   Since
       1.1

   If
       CONFIG_WIN32 or HAVE_GETIFADDRS

   guest-network-get-interfaces	(Command)
       Get list	of guest IP addresses, MAC addresses and netmasks.

   Returns
       List of GuestNetworkInterface

   Since
       1.1

   If
       CONFIG_WIN32 or HAVE_GETIFADDRS

   GuestLogicalProcessor (Object)
   Members
       logical-id: int
	      Arbitrary	guest-specific unique identifier of the	VCPU.

       online: boolean
	      Whether the VCPU is enabled.

       can-offline: boolean (optional)
	      Whether  offlining  the VCPU is possible.	 This member is	always
	      filled in	by the guest agent when	the structure is returned, and
	      always ignored on	input (hence it	can be omitted then).

   Since
       1.5

   If
       CONFIG_LINUX or CONFIG_WIN32

   guest-get-vcpus (Command)
       Retrieve	the list of the	guest's	logical	processors.

       This is a read-only operation.

   Returns
       The list	of all VCPUs the guest knows about.  Each VCPU is put  on  the
       list exactly once, but their order is unspecified.

   Since
       1.5

   If
       CONFIG_LINUX or CONFIG_WIN32

   guest-set-vcpus (Command)
       Attempt	to  reconfigure	(currently: enable/disable) logical processors
       inside the guest.

   Arguments
       vcpus: array of GuestLogicalProcessor
	      The  logical  processors	to  be	reconfigured.	This  list  is
	      processed	 node  by  node	 in order.  In each node logical-id is
	      used to look up the guest	VCPU, for which	online	specifies  the
	      requested	 state.	  The set of distinct logical-id's is only re-
	      quired to	 be  a	subset	of  the	 guest-supported  identifiers.
	      There's  no  restriction on list length or on repeating the same
	      logical-id (with possibly	different online  field).   Preferably
	      the   input   list   should   describe   a  modified  subset  of
	      guest-get-vcpus' return value.

   Returns
       The length of the initial sublist that has been successfully processed.
       The guest agent maximizes this value.  Possible cases:

        0: if the vcpus list was empty	on input.  Guest state	has  not  been
	 changed.  Otherwise,

        <  length(vcpus):  more  than zero initial nodes have been processed,
	 but not the entire vcpus list.	 Guest state has changed  accordingly.
	 To  retrieve  the  error (assuming it persists), repeat the call with
	 the successfully processed initial sublist removed.  Otherwise,

        length(vcpus):	call successful.

   Errors
        If the	reconfiguration	of the first  node  in	vcpus  failed.	 Guest
	 state has not been changed.

   Since
       1.5

   If
       CONFIG_LINUX

   GuestDiskBusType (Enum)
       An enumeration of bus type of disks

   Values
       ide    IDE disks

       fdc    floppy disks

       scsi   SCSI disks

       virtio virtio disks

       xen    Xen disks

       usb    USB disks

       uml    UML disks

       sata   SATA disks

       sd     SD cards

       unknown
	      Unknown bus type

       ieee1394
	      Win IEEE 1394 bus	type

       ssa    Win SSA bus type

       fibre  Win fiber	channel	bus type

       raid   Win RAID bus type

       iscsi  Win iScsi	bus type

       sas    Win serial-attaches SCSI bus type

       mmc    Win multimedia card (MMC)	bus type

       virtual
	      Win virtual bus type

       file-backed-virtual
	      Win file-backed bus type

       nvme   NVMe disks (since	7.1)

   Since
       2.2; 'Unknown' and all entries below since 2.4

   If
       CONFIG_WIN32 or CONFIG_LINUX

   GuestPCIAddress (Object)
   Members
       domain: int
	      domain id

       bus: int
	      bus id

       slot: int
	      slot id

       function: int
	      function id

   Since
       2.2

   If
       CONFIG_WIN32 or CONFIG_LINUX

   GuestCCWAddress (Object)
   Members
       cssid: int
	      channel subsystem	image id

       ssid: int
	      subchannel set id

       subchno:	int
	      subchannel number

       devno: int
	      device number

   Since
       6.0

   If
       CONFIG_WIN32 or CONFIG_LINUX

   GuestDiskAddress (Object)
   Members
       pci-controller: GuestPCIAddress
	      controller's PCI address (fields are set to -1 if	invalid)

       bus-type: GuestDiskBusType
	      bus type

       bus: int
	      bus id

       target: int
	      target id

       unit: int
	      unit id

       serial: string (optional)
	      serial number (since: 3.1)

       dev: string (optional)
	      device node (POSIX) or device UNC	(Windows) (since: 3.1)

       ccw-address: GuestCCWAddress (optional)
	      CCW address on s390x (since: 6.0)

   Since
       2.2

   If
       CONFIG_WIN32 or CONFIG_LINUX

   GuestNVMeSmart (Object)
       NVMe  smart  information, based on NVMe specification, section <SMART /
       Health Information (Log Identifier 02h)>

   Members
       critical-warning: int
	      Not documented

       temperature: int
	      Not documented

       available-spare:	int
	      Not documented

       available-spare-threshold: int
	      Not documented

       percentage-used:	int
	      Not documented

       data-units-read-lo: int
	      Not documented

       data-units-read-hi: int
	      Not documented

       data-units-written-lo: int
	      Not documented

       data-units-written-hi: int
	      Not documented

       host-read-commands-lo: int
	      Not documented

       host-read-commands-hi: int
	      Not documented

       host-write-commands-lo: int
	      Not documented

       host-write-commands-hi: int
	      Not documented

       controller-busy-time-lo:	int
	      Not documented

       controller-busy-time-hi:	int
	      Not documented

       power-cycles-lo:	int
	      Not documented

       power-cycles-hi:	int
	      Not documented

       power-on-hours-lo: int
	      Not documented

       power-on-hours-hi: int
	      Not documented

       unsafe-shutdowns-lo: int
	      Not documented

       unsafe-shutdowns-hi: int
	      Not documented

       media-errors-lo:	int
	      Not documented

       media-errors-hi:	int
	      Not documented

       number-of-error-log-entries-lo: int
	      Not documented

       number-of-error-log-entries-hi: int
	      Not documented

   Since
       7.1

   If
       CONFIG_WIN32 or CONFIG_LIBUDEV

   GuestDiskSmart (Object)
       Disk type related smart information.

   Members
       type: GuestDiskBusType
	      disk bus type

       The members of GuestNVMeSmart when type is "nvme"

   Since
       7.1

   If
       CONFIG_WIN32 or CONFIG_LIBUDEV

   GuestDiskInfo (Object)
   Members
       name: string
	      device node (Linux) or device UNC	(Windows)

       partition: boolean
	      whether this is a	partition or disk

       dependencies: array of string (optional)
	      list of device dependencies; e.g.	for LVs	of the LVM  this  will
	      hold  the	 list of PVs, for LUKS encrypted volume	this will con-
	      tain the disk where the volume is	placed.	 (Linux)

       address:	GuestDiskAddress (optional)
	      disk address information (only for non-virtual devices)

       alias: string (optional)
	      optional alias assigned to the disk, on Linux this is a name as-
	      signed by	device mapper

       smart: GuestDiskSmart (optional)
	      disk smart information (Since 7.1)

   Since
       5.2

   If
       CONFIG_WIN32 or CONFIG_LIBUDEV

   guest-get-disks (Command)
   Returns
       The list	of disks in the	guest.	For Windows these are only the	physi-
       cal  disks.  On Linux these are all root	block devices of non-zero size
       including e.g. removable	devices, loop devices, NBD, etc.

   Since
       5.2

   If
       CONFIG_WIN32 or CONFIG_LIBUDEV

   GuestFilesystemInfo (Object)
   Members
       name: string
	      disk name

       mountpoint: string
	      mount point path

       type: string
	      file system type string

       used-bytes: int (optional)
	      file system used bytes (since 3.0)

       total-bytes: int	(optional)
	      filesystem capacity in bytes for unprivileged users (since 3.0)

       total-bytes-privileged: int (optional)
	      filesystem capacity in bytes for privileged users	(since 9.1)

       disk: array of GuestDiskAddress
	      an array of disk hardware	information that the volume  lies  on,
	      which may	be empty if the	disk type is not supported

   Since
       2.2

   If
       CONFIG_WIN32 or CONFIG_LINUX

   guest-get-fsinfo (Command)
   Returns
       The list	of filesystems information mounted in the guest.  The returned
       mountpoints  may	 be  specified to guest-fsfreeze-freeze-list.  Network
       filesystems (such as CIFS and NFS) are not listed.

   Since
       2.2

   If
       CONFIG_WIN32 or CONFIG_LINUX

   guest-set-user-password (Command)
   Arguments
       username: string
	      the user account whose password to change

       password: string
	      the new password entry string, base64 encoded

       crypted:	boolean
	      true if password is already crypt()d, false if raw

       If the crypted flag is true, it is the caller's responsibility  to  en-
       sure  the correct crypt() encryption scheme is used.  This command does
       not attempt to interpret	or report on the encryption scheme.  Refer  to
       the  documentation  of the guest	operating system in question to	deter-
       mine what is supported.

       Not all guest operating systems will support use	of the	crypted	 flag,
       as they may require the clear-text password

       The  password  parameter	must always be base64 encoded before transmis-
       sion, even if already crypt()d, to ensure it is 8-bit safe when	passed
       as JSON.

   Since
       2.3

   If
       CONFIG_WIN32 or CONFIG_LINUX or CONFIG_FREEBSD

   GuestMemoryBlock (Object)
   Members
       phys-index: int
	      Arbitrary	guest-specific unique identifier of the	MEMORY BLOCK.

       online: boolean
	      Whether the MEMORY BLOCK is enabled in guest.

       can-offline: boolean (optional)
	      Whether  offlining the MEMORY BLOCK is possible.	This member is
	      always filled in by the guest agent when the  structure  is  re-
	      turned,  and  always  ignored  on	input (hence it	can be omitted
	      then).

   Since
       2.3

   If
       CONFIG_LINUX

   guest-get-memory-blocks (Command)
       Retrieve	the list of the	guest's	memory blocks.

       This is a read-only operation.

   Returns
       The list	of all memory blocks the guest knows about.  Each memory block
       is put on the list exactly once,	but their order	is unspecified.

   Since
       2.3

   If
       CONFIG_LINUX

   GuestMemoryBlockResponseType	(Enum)
       An enumeration of memory	block operation	result.

   Values
       success
	      the operation of online/offline memory block is successful.

       not-found
	      can't find the corresponding memoryXXX directory in sysfs.

       operation-not-supported
	      for some old kernels, it does not	support	online or offline mem-
	      ory block.

       operation-failed
	      the operation of online/offline memory block fails,  because  of
	      some errors happen.

   Since
       2.3

   If
       CONFIG_LINUX

   GuestMemoryBlockResponse (Object)
   Members
       phys-index: int
	      same with	the 'phys-index' member	of GuestMemoryBlock.

       response: GuestMemoryBlockResponseType
	      the result of memory block operation.

       error-code: int (optional)
	      the  error number.  When memory block operation fails, we	assign
	      the value	of 'errno' to this  member,  it	 indicates  what  goes
	      wrong.  When the operation succeeds, it will be omitted.

   Since
       2.3

   If
       CONFIG_LINUX

   guest-set-memory-blocks (Command)
       Attempt	to  reconfigure	 (currently:  enable/disable)  state of	memory
       blocks inside the guest.

   Arguments
       mem-blks: array of GuestMemoryBlock
	      The memory blocks	to be reconfigured.  This  list	 is  processed
	      node  by node in order.  In each node phys-index is used to look
	      up the guest MEMORY BLOCK, for which online  specifies  the  re-
	      quested  state.	The  set  of distinct phys-index's is only re-
	      quired to	 be  a	subset	of  the	 guest-supported  identifiers.
	      There's  no  restriction on list length or on repeating the same
	      phys-index (with possibly	different online  field).   Preferably
	      the   input   list   should   describe   a  modified  subset  of
	      guest-get-memory-blocks' return value.

   Returns
       The operation results, it is a list of GuestMemoryBlockResponse,	 which
       is corresponding	to the input list.

       Note:  it  will	return an empty	list if	the mem-blks list was empty on
       input, or there is an error, and	in this	case, guest state will not  be
       changed.

   Since
       2.3

   If
       CONFIG_LINUX

   GuestMemoryBlockInfo	(Object)
   Members
       size: int
	      the  size	 (in  bytes) of	the guest memory blocks, which are the
	      minimal units of memory block  online/offline  operations	 (also
	      called Logical Memory Hotplug).

   Since
       2.3

   If
       CONFIG_LINUX

   guest-get-memory-block-info (Command)
       Get information relating	to guest memory	blocks.

   Returns
       GuestMemoryBlockInfo

   Since
       2.3

   If
       CONFIG_LINUX

   GuestExecStatus (Object)
   Members
       exited: boolean
	      true if process has already terminated.

       exitcode: int (optional)
	      process exit code	if it was normally terminated.

       signal: int (optional)
	      signal  number  (linux) or unhandled exception code (windows) if
	      the process was abnormally terminated.

       out-data: string	(optional)
	      base64-encoded stdout of the process.  This field	will  only  be
	      populated	after the process exits.

       err-data: string	(optional)
	      base64-encoded  stderr  of  the  process.	  Note:	 out-data  and
	      err-data are present only	if 'capture-output' was	specified  for
	      'guest-exec'.   This  field  will	 only  be  populated after the
	      process exits.

       out-truncated: boolean (optional)
	      true if stdout was not fully captured due	to size	limitation.

       err-truncated: boolean (optional)
	      true if stderr was not fully captured due	to size	limitation.

   Since
       2.5

   guest-exec-status (Command)
       Check status of process associated with PID retrieved  via  guest-exec.
       Reap the	process	and associated metadata	if it has exited.

   Arguments
       pid: int
	      pid returned from	guest-exec

   Returns
       GuestExecStatus

   Since
       2.5

   GuestExec (Object)
   Members
       pid: int
	      pid of child process in guest OS

   Since
       2.5

   GuestExecCaptureOutputMode (Enum)
       An enumeration of guest-exec capture modes.

   Values
       none   do not capture any output

       stdout only capture stdout

       stderr only capture stderr

       separated
	      capture both stdout and stderr, but separated into GuestExecSta-
	      tus out-data and err-data, respectively

       merged (If: not CONFIG_WIN32)
	      capture	both  stdout  and  stderr,  but	 merge	together  into
	      out-data.	 Not effective on windows guests.

   Since
       8.0

   GuestExecCaptureOutput (Alternate)
       Controls	what guest-exec	output gets captures.

   Members
       flag: boolean
	      captures both stdout and stderr if true.	Equivalent to GuestEx-
	      ecCaptureOutputMode::all.	 (since	2.5)

       mode: GuestExecCaptureOutputMode
	      capture mode; preferred interface

   Since
       8.0

   guest-exec (Command)
       Execute a command in the	guest

   Arguments
       path: string
	      path or executable name to execute

       arg: array of string (optional)
	      argument list to pass to executable

       env: array of string (optional)
	      environment variables to pass to executable

       input-data: string (optional)
	      data to be passed	to process stdin (base64 encoded)

       capture-output: GuestExecCaptureOutput (optional)
	      bool flag	to enable capture of stdout/stderr of running process.
	      Defaults to false.

   Returns
       PID

   Since
       2.5

   GuestHostName (Object)
   Members
       host-name: string
	      Fully qualified domain name of the guest OS

   Since
       2.10

   guest-get-host-name (Command)
       Return a	name for the machine.

       The returned name is not	necessarily a fully-qualified domain name,  or
       even  present  in  DNS  or some other name service at all.  It need not
       even be unique on your local network or site, but usually it is.

   Returns
       the host	name of	the machine

   Since
       2.10

   GuestUser (Object)
   Members
       user: string
	      Username

       domain: string (optional)
	      Logon domain (windows only)

       login-time: number
	      Time of login of this user on the	 computer.   If	 multiple  in-
	      stances  of  the	user are logged	in, the	earliest login time is
	      reported.	 The value is in fractional seconds since epoch	time.

   Since
       2.10

   If
       CONFIG_WIN32 or HAVE_UTMPX

   guest-get-users (Command)
       Retrieves a list	of currently active users on the VM.

   Returns
       A unique	list of	users.

   Since
       2.10

   If
       CONFIG_WIN32 or HAVE_UTMPX

   GuestTimezone (Object)
   Members
       zone: string (optional)
	      Timezone name.  These values may differ  depending  on  guest/OS
	      and should only be used for informational	purposes.

       offset: int
	      Offset  to  UTC in seconds, negative numbers for time zones west
	      of GMT, positive numbers for east

   Since
       2.10

   guest-get-timezone (Command)
       Retrieves the timezone information from the guest.

   Returns
       A GuestTimezone dictionary.

   Since
       2.10

   GuestOSInfo (Object)
   Members
       kernel-release: string (optional)

	      	POSIX: release field returned by uname(2)

	      	Windows: build number of the OS

       kernel-version: string (optional)

	      	POSIX: version field returned by uname(2)

	      	Windows: version number	of the OS

       machine:	string (optional)

	      	POSIX: machine field returned by uname(2)

	      	Windows: one of	x86, x86_64, arm, ia64

       id: string (optional)

	      	POSIX: as defined by os-release(5)

	      	Windows: contains string "mswindows"

       name: string (optional)

	      	POSIX: as defined by os-release(5)

	      	Windows: contains string "Microsoft Windows"

       pretty-name: string (optional)

	      	POSIX: as defined by os-release(5)

	      	Windows: product name, e.g. "Microsoft Windows 10 Enterprise"

       version:	string (optional)

	      	POSIX: as defined by os-release(5)

	      	Windows: long version string, e.g. "Microsoft  Windows	Server
		2008"

       version-id: string (optional)

	      	POSIX: as defined by os-release(5)

	      	Windows: short version identifier, e.g.	"7" or "20012r2"

       variant:	string (optional)

	      	POSIX: as defined by os-release(5)

	      	Windows: contains string "server" or "client"

       variant-id: string (optional)

	      	POSIX: as defined by os-release(5)

	      	Windows: contains string "server" or "client"

       NOTE:
	  On  POSIX  systems  the  fields id, name, pretty-name, version, ver-
	  sion-id, variant and variant-id follow the definition	 specified  in
	  os-release(5). Refer to the manual page for exact description	of the
	  fields.   Their  values  are taken from the os-release file.	If the
	  file is not present in the system, or	the values are not present  in
	  the file, the	fields are not included.

	  On  Windows the values are filled from information gathered from the
	  system.

   Since
       2.10

   guest-get-osinfo (Command)
       Retrieve	guest operating	system information

   Returns
       GuestOSInfo

   Since
       2.10

   GuestDeviceType (Enum)
   Values
       pci    PCI device

   If
       CONFIG_WIN32

   GuestDeviceIdPCI (Object)
   Members
       vendor-id: int
	      vendor ID

       device-id: int
	      device ID

   Since
       5.2

   If
       CONFIG_WIN32

   GuestDeviceId (Object)
       Id of the device

   Members
       type: GuestDeviceType
	      device type

       The members of GuestDeviceIdPCI when type is "pci"

   Since
       5.2

   If
       CONFIG_WIN32

   GuestDeviceInfo (Object)
   Members
       driver-name: string
	      name of the associated driver

       driver-date: int	(optional)
	      driver release date, in nanoseconds since	the epoch

       driver-version: string (optional)
	      driver version

       id: GuestDeviceId (optional)
	      device ID

   Since
       5.2

   If
       CONFIG_WIN32

   guest-get-devices (Command)
       Retrieve	information about device drivers in Windows guest

   Returns
       GuestDeviceInfo

   Since
       5.2

   If
       CONFIG_WIN32

   GuestAuthorizedKeys (Object)
   Members
       keys: array of string
	      public keys (in OpenSSH/sshd(8) authorized_keys format)

   Since
       5.2

   guest-ssh-get-authorized-keys (Command)
       Return the public keys from user	.ssh/authorized_keys on	 Unix  systems
       (not implemented	for other systems).

   Arguments
       username: string
	      the user account to add the authorized keys

   Returns
       GuestAuthorizedKeys

   Since
       5.2

   guest-ssh-add-authorized-keys (Command)
       Append  public  keys  to	user .ssh/authorized_keys on Unix systems (not
       implemented for other systems).

   Arguments
       username: string
	      the user account to add the authorized keys

       keys: array of string
	      the public keys to add (in OpenSSH/sshd(8) authorized_keys  for-
	      mat)

       reset: boolean (optional)
	      ignore the existing content, set it with the given keys only

   Since
       5.2

   guest-ssh-remove-authorized-keys (Command)
       Remove  public  keys from the user .ssh/authorized_keys on Unix systems
       (not implemented	for other systems). It's not an	error if  the  key  is
       already missing.

   Arguments
       username: string
	      the user account to remove the authorized	keys

       keys: array of string
	      the  public  keys	 to remove (in OpenSSH/sshd(8) authorized_keys
	      format)

   Since
       5.2

   GuestDiskStats (Object)
   Members
       read-sectors: int (optional)
	      sectors read

       read-ios: int (optional)
	      reads completed successfully

       read-merges: int	(optional)
	      read requests merged

       write-sectors: int (optional)
	      sectors written

       write-ios: int (optional)
	      writes completed

       write-merges: int (optional)
	      write requests merged

       discard-sectors:	int (optional)
	      sectors discarded

       discard-ios: int	(optional)
	      discards completed successfully

       discard-merges: int (optional)
	      discard requests merged

       flush-ios: int (optional)
	      flush requests completed successfully

       read-ticks: int (optional)
	      time spent reading(ms)

       write-ticks: int	(optional)
	      time spent writing(ms)

       discard-ticks: int (optional)
	      time spent discarding(ms)

       flush-ticks: int	(optional)
	      time spent flushing(ms)

       ios-pgr:	int (optional)
	      number of	I/Os currently in flight

       total-ticks: int	(optional)
	      time spent doing I/Os (ms)

       weight-ticks: int (optional)
	      weighted time spent doing	I/Os since the	last  update  of  this
	      field(ms)

   Since
       7.1

   If
       CONFIG_LINUX

   GuestDiskStatsInfo (Object)
   Members
       name: string
	      disk name

       major: int
	      major device number of disk

       minor: int
	      minor device number of disk

       stats: GuestDiskStats
	      I/O statistics

   If
       CONFIG_LINUX

   guest-get-diskstats (Command)
       Retrieve	information about disk stats.

   Returns
       List of disk stats of guest.

   Since
       7.1

   If
       CONFIG_LINUX

   GuestCpuStatsType (Enum)
       Guest operating systems supporting CPU statistics

   Values
       linux  Linux

   Since
       7.1

   If
       CONFIG_LINUX

   GuestLinuxCpuStats (Object)
       CPU statistics of Linux

   Members
       cpu: int
	      CPU index	in guest OS

       user: int
	      Time spent in user mode

       nice: int
	      Time spent in user mode with low priority	(nice)

       system: int
	      Time spent in system mode

       idle: int
	      Time spent in the	idle task

       iowait: int (optional)
	      Time waiting for I/O to complete (since Linux 2.5.41)

       irq: int	(optional)
	      Time servicing interrupts	(since Linux 2.6.0-test4)

       softirq:	int (optional)
	      Time servicing softirqs (since Linux 2.6.0-test4)

       steal: int (optional)
	      Stolen time by host (since Linux 2.6.11)

       guest: int (optional)
	      ime  spent running a virtual CPU for guest operating systems un-
	      der the  control of the Linux kernel (since Linux	2.6.24)

       guestnice: int (optional)
	      Time spent running a niced guest (since Linux 2.6.33)

   Since
       7.1

   If
       CONFIG_LINUX

   GuestCpuStats (Object)
       Get statistics of each CPU in millisecond.

   Members
       type: GuestCpuStatsType
	      guest operating system

       The members of GuestLinuxCpuStats when type is "linux"

   Since
       7.1

   If
       CONFIG_LINUX

   guest-get-cpustats (Command)
       Retrieve	information about CPU stats.

   Returns
       List of CPU stats of guest.

   Since
       7.1

   If
       CONFIG_LINUX

   GuestNetworkRoute (Object)
       Route information, currently, only linux	supported.

   Members
       iface: string
	      The destination network or host's	egress	network	 interface  in
	      the routing table

       destination: string
	      The IP address of	the target network or host, The	final destina-
	      tion of the packet

       metric: int
	      Route metric

       gateway:	string (optional)
	      The IP address of	the next hop router

       mask: string (optional)
	      Subnet Mask (IPv4	only)

       irtt: int (optional)
	      Initial round-trip delay (not for	windows, IPv4 only)

       flags: int (optional)
	      Route flags (not for windows)

       refcnt: int (optional)
	      The route's reference count (not for windows)

       use: int	(optional)
	      Route usage count	(not for windows)

       window: int (optional)
	      TCP  window  size,  used for flow	control	(not for windows, IPv4
	      only)

       mtu: int	(optional)
	      Data link	layer maximum packet size (not for windows)

       desprefixlen: string (optional)
	      Destination prefix length	(for IPv6)

       source: string (optional)
	      Source IP	address	(for IPv6)

       srcprefixlen: string (optional)
	      Source prefix length (for	IPv6)

       nexthop:	string (optional)
	      Next hop IP address (for IPv6)

       version:	int
	      IP version (4 or 6)

   Since
       9.1

   If
       CONFIG_LINUX

   guest-network-get-route (Command)
       Retrieve	information about route	of network.  Returns:  List  of	 route
       info of guest.

   Since
       9.1

   If
       CONFIG_LINUX

COPYRIGHT
       2024, The QEMU Project Developers

9.2.0				 Apr 14, 2025			QEMU-GA-REF(7)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=qemu-ga-ref&sektion=7&manpath=FreeBSD+Ports+14.3.quarterly>

home | help