Contents
When QEMU is running, a monitor console is provided for performing interaction with the user. Using the commands available in the monitor console, it is possible to inspect the running operating system, change removable media, take screenshots or audio grabs and control several other aspects of the virtual machine.
To access the monitor console from QEMU, press Ctrl+Alt+2. To return back to QEMU from the monitor console, press Ctrl+Alt+1.
   To get help while using the console, use help or
   ?. To get help for a specific command, use
   help command.
  
   To get information about the guest system, use the info
   option command. If used without any option,
   the list of possible options is printed. Options determine which of the
   system will be analyzed:
  
Shows the version of QEMU
Lists available QMP commands
Shows the network state
Shows the character devices
Information about block devices, such as hard drives, floppy drives, or CD-ROMs
Read and write statistics on block devices
Shows the CPU registers
Shows information about available CPUs
Shows the command line history
Shows the interrupts statistics
Shows the i8259 (PIC) state
Shows the PCI information
Shows virtual to physical memory mappings
Shows the active virtual memory mappings
Shows state of HPET
Shows dynamic compiler information
Shows the KVM information
Shows the NUMA information
Shows the guest USB devices
Shows the host USB devices
Shows the profiling information
Shows the capture (audio grab) information
Shows the currently saved virtual machine snapshots
Shows the current virtual machine status
Shows the guest PCMCIA status
Shows which guest mice is receiving events
Shows the VNC server status
Shows the current virtual machine name
Shows the current virtual machine UUID
Shows the user network stack connection states
Shows the migration status
Shows the balloon device information
Shows the device tree
Shows the qdev device model list
Shows the ROMs
To change the VNC password, use the change vnc password command and enter the new password:
(qemu) change vnc password
Password: ********
(qemu)
    
   To release the device or file connected to the removable media device,
   use the eject device
   command. Use the optional -f to force ejection.
  
   To change removable media (like CD-ROMs), use the change
   device command. The name of the
   removable media can be determined using the info block
   command:
  
(qemu) info block
ide1-cd0: type=cdrom removable=1 locked=0 file=/dev/sr0 ro=1 drv=host_device
(qemu) change ide1-cd0 /path/to/image
     
   It is possible to use the monitor console to emulate keyboard and mouse
   input if necessary. For example, if your graphical user interface
   intercepts some key combinations at low level (such as
   Ctrl+Alt+F1
   in X Window), you can still enter them using the sendkey
   keys:
  
sendkey ctrl-alt-f1
   To list the key names used in the keys option,
   enter sendkey and press Tab.
  
To control the mouse, the following commands can be used:
dxdy [dz]
    Move the active mouse pointer to the specified coordinates dx, dy with the optional scroll axis dz.
val
    Change the state of the mouse buttons (1=left, 2=middle, 4=right).
index
    Set which mouse device receives events. Device index numbers can be obtained with the info mice command.
   If the virtual machine was started with the -balloon
   virtio option and the paravirtualized balloon device that allows
   to dynamically change the amount of memory available is therefore
   enabled, it is possible to change the available memory dynamically. For
   more information about enabling the baloon device, see
   Section 12.1, “Basic Installation with qemu-kvm”.
  
To get information about the balloon device in the monitor console and to determine whether the device is enabled, use the info balloon command:
(qemu) info balloon
   If the balloon device is enabled, use the balloon
   memory_in_MB command to set the
   requested amount of memory:
  
(qemu) balloon 400
To save the content of the virtual machine memory to a disk or console output, use the following commands:
addrsizefilename
    
      Saves virtual memory dump starting at addr
      of size size to file
      filename
     
addrsizefilename
    
      Saves physical memory dump starting at addr
      of size size to file
      filename-
     
fmtaddr
    
      Makes a virtual memory dump starting at address
      addr and formatted according to the
      fmt string. The
      fmt string consists of three parameters
      countformatsize
      The count parameter is the number of the
      items to be dumped.
     
      The format can be x
      (hex), d (signed decimal), u
      (unsigned decimal), o (octal), c
      (char) or i (assembly instruction).
     
      The size parameter can be
      b (8 bits), h (16 bits),
      w (32 bits) or g (64 bits). On
      x86, h or w can be specified
      with the i format to respectively select 16 or
      32-bit code instruction size. is the number of the items to be dumped.
      
     
fmtaddr
    
      Makes a physical memory dump starting at address
      addr and formatted according to the
      fmt string. The
      fmt string consists of three parameters
      countformatsize
      The count parameter is the number of the
      items to be dumped.
     
      The format can be x
      (hex), d (signed decimal), u
      (unsigned decimal), o (octal), c
      (char) or i (asm instruction).
     
      The size parameter can be
      b (8 bits), h (16 bits),
      w (32 bits) or g (64 bits). On
      x86, h or w can be specified
      with thei format to respectively select 16 or
      32-bit code instruction size. is the number of the items to be dumped.
     
   Virtual machine snapshots are snapshots of the complete virtual machine
   including the state of CPU, RAM, and the content of all writable disks.
   To use virtual machine snapshots, you must have at least one
   non-removable and writable block device using the
   qcow2 disk image format.
  
| ![[Note]](admon/note.png) | |
| 
    Currently, only the  | |
Snapshots are helpful when you need to save your virtual machine in a particular state. For example, after you configured network services on a virtualized server and want to quickly start the virtual machine in the same state that has been saved last. You can also create a snapshot after the virtual machine has been powered off to create a backup state before you try something experimental and possibly make VM Guest unstable. This section introduces the former case, while the latter is described in Section 12.2.3, “Managing Snapshots of Virtual Machines with qemu-img Snapshot”.
The following commands are available for managing snapshosts in QEMU monitor:
name
    
      Creates a new virtual machine snapshot under the tag
      name or replaces an existing snapshot.
     
name
    
      Loads a virtual machine snapshot tagged
      name.
     
Deletes a virtual machine snapshot.
Prints information about available snapshots.
(qemu) info snapshots Snapshot list: IDTAG
VM SIZE
DATE
VM CLOCK
1 booting 4.4M 2010-11-22 10:51:10 00:00:20.476 2 booted 184M 2010-11-22 10:53:03 00:02:05.394 3 logged_in 273M 2010-11-22 11:00:25 00:04:34.843 4 ff_and_term_running 372M 2010-11-22 11:12:27 00:08:44.965
| Unique identification number of the snapshot. Usually auto-incremented. | |
| Unique description string of the snapshot. It is meant as a human readable version of the ID. | |
| The disk space occupied by the snapshot. Note that the more memory is consumed by running applications, the bigger the snapshot is. | |
| Time and date the snapshot was created. | |
| The current state of the virtual machine's clock. | 
The following commands are available for suspending and resuming virtual machines:
Suspends the execution of the virtual machine.
Resumes the execution of the virtual machine.
Resets the virtual machine. The effect is similar to the reset button on a physical machine. This may leave the filesystem in an unclean state.
Sends an ACPI shutdown request to the machine. The efect is similar to the power button on a physical machine.
Terminates QEMU immediately.
The live migration process allows to transmite any virtual machine from one host system to another host system without any interruption in availability. It is possible to change hosts permanently or just during a maintenance. It is recommended that the source and destination systems have the same architecture, however it is possible to migrate between hosts with AMD and Intel architecture or even between Linux and Windows hosts.
The requirements for the live migration:
The virtual machine image must be accessible on both source and destination hosts. For example, it can be located on a shared NFS disk.
The image directory should be located in the same path on both hosts.
Both hosts must be located in the same subnet.
The guest on the source and destination hosts must be started in the same way.
The live migration process has the following steps:
The virtual machine instance is running on the source host.
     The virtual machine is started on the destination host in the frozen
     listening mode. The parameters used are the same as on the source host
     plus the -incoming
     tcp:
     parameter, where ip:portip specifies the IP address
     and port specifies the port for listening to
     the incoming migration. If 0 is set as IP address, the virtual machine
     listens on all interfaces.
    
     On the source host, switch to the monitor console and use the
     migrate -d
     tcp:destination_ip:port
     command to initiate the migration.
    
To determine the state of the migration, use the info migrate command in the monitor console on the source host.
To cancel the migration, use the migrate_cancel command in the monitor console on the source host.
     To set the maximum tolerable downtime for migration in seconds, use the
     migrate_set_downtime
     number_of_seconds command.
    
     To set the maximum speed for migration in bytes per second, use the
     migrate_set_speed
     bytes_per_second command.