qemu-img命令
例1:查看QEMU支持的镜像文件格式。 常用的虚拟机及其支持的镜像格式如下: 例2:通过创建qcow2和raw文件来对比这两种镜像。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200611172109274.png) 对比两种格式的文件的实际大小以及占用空间大小如下: 从上述输出可以看出:
qcow2格式的镜像文件大小为196768字节,占用392块Blocks。而raw格式的文件是一个稀疏文件,没有占用磁盘空间。qcow2镜像格式是QEMU模拟器支持的一种磁盘镜像。它也是可以用一个文件的形式来表示一块固定大小的块设备磁盘。与普通的raw格式的镜像相比,有以下特性: 更小的空间占用,即使文件系统不支持空洞(holes); 支持写时拷贝(COW,copy-on-write),镜像文件只反映底层磁盘的变化; 支持快照(snapshot),镜像文件能够包含多个快照的历史;
例3:对镜像文件进行一致性检查。
check [-f fmt] filename
check命令用来对磁盘镜像文件进行一致性检查,查找镜像文件中的错误。
参数说明:
“-f fmt“参数是指定文件的格式,如果不指定格式,qemu-img会自动检测;
filename是磁盘镜像文件的名称(包括路径);
注意:
目前仅支持对“qcow2”、“qed”、“vdi”格式文件的检查。
例4:针对qcow2格式的文件,先创建一个快照,使用它,最后删除这个快照。(raw格式不支持)
snapshot [-l | -a snapshot | -c snapshot | -d snapshot] filename
snapshot命令主要用来操作镜像文件中的快照。
参数说明:
“-l”参数是查询并列出镜像文件中的所有快照;
“-a snapshot”参数是让镜像文件使用某个快照;
“-c snapshot”参数是创建一个快照;
“-d”参数是删除一个快照;
注意:
快照这个功能只支持qcow2格式,raw不支持。
创建磁盘快照时客户机需要处于关闭的状态。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200611172717811.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzOTcxNTA0,size_16,color_FFFFFF,t_70) 例6:针对qcow2格式的文件,增加和减少镜像文件的大小。(raw格式不支持)
resize filename [+ | -]size
resize命令主要用来改变镜像文件的大小。
参数说明:
“+”用于增加镜像文件的大小;
“-”用于减少镜像文件的大小;
size也支持K、M、G、T等单位;
注意:
在缩小镜像的大小之前,需要确保客户机中的文件系统有空余空间,否则会丢失数据。
在增加了镜像文件大小后,也需启动客户机到里面去应用分区工具进行相应的操作,
才能真正让客户机使用到增加后的镜像空间。不过使用resize命令之前最好做好备份,
否则失败的话,可能会导致镜像文件无法正常使用而造成数据丢失。
另外,qcow2格式文件不支持缩小镜像的操作。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200611173038992.png)
qemu-monitor命令
在启动QEMU的时候,同时也会启动monitor的控制台,通过这个控制台,可以与QEMU或者运行状态的虚拟机进行交互。虽然现在有诸如virt-manager之类的图形界面的虚拟机管理工具,但是在monitor的控制台窗口输入命令似乎更符合Linux程序员的开发习惯,而且还能完成一些图形化管理工具所不具备的功能。在monitor控制台中,可以完成很多常规操作,比如添加删除设备、虚拟机音视频截取、获取虚拟机运行状态、更改虚拟机运行时配置等等。
使用qemu-monitor前需要进入虚拟机,命令如下:
qemu-system-x86_64 -enable-kvm -m 512 -smp 2 -hda ubuntu14.04.img -boot c -vnc :1 -monitor stdio
辅助类命令 例1:help命令显示moniter命令中的帮助信息。 例2:info命令主要用来显示虚拟机的运行信息。
info block – show info of one block device or all block devices info cpus – show infos for each CPU info kvm – show KVM information 启动虚拟机时未添加-enable-kvm参数:
(qemu) info kvm
kvm support: disabled
启动虚拟机时添加-enable-kvm参数:
(qemu) info kvm
kvm support: enabled
info status – show the current VM status (running|paused) info snapshots – show the currently saved VM snapshots info vnc – show the vnc server status 未开启vnc客户端时:
(qemu) info vnc
Server:
address: 0.0.0.0:5901
auth: none
Client: none已开启vnc客户端时:
(qemu) info vnc
Server:
address: 0.0.0.0:5901
auth: none
Client:
address: 192.168.3.67:60305
x509_dname: none
username: none
info version – show the version of QEMU 例3:snapshot命令 QEMU运行的时候,如果指定-snapshot参数,则会允许虚拟机在运行的时候创建快照。
file1----------file2----------file3----------
快照1 快照2 当前状态
snapshot1 snapshot2 当前状态
1.首先用info snapshots查看当前已经存在的快照信息。 2.(ubuntu14.04 server虚拟机内操作)进入虚拟机,在“/home/dmg”目录下,用“touch file1”命令创建一个名称为“file1”的文件。 3.用savevm命令创建一个名称为“snapshot1”的快照。 4.(ubuntu14.04 server虚拟机内操作)进入虚拟机,在“/home/dmg”目录下,使用“touch file2”命令创建一个名称为“file2”的文件。 5.用savevm命令创建一个名称为“snapshot2”的快照。 6.(ubuntu14.04 server虚拟机内操作)进入虚拟机,在“/home/dmg”目录下,使用“touch file3”命令创建一个名称为“file3”的文件。 7.使用命令“loadvm snapshot2”还原到快照snapshot2,进入虚拟机进行查看。 8.使用命令“loadvm snapshot1”还原到快照snapshot1,进入虚拟机进行查看。 9.使用命令“delvm snapshot1”删除快照1,使用命令“delvm snapshot2”删除快照2,然后使用命令“info snapshots”查看当前已经存在的快照信息。 其它命令
commit:由于块设备允许使用缓存,所以会有在虚拟机运行的时候可能会有某些写操作未实际写到设备上。commit命令将对块设备执行强制刷新操作。对于仍然在缓存中的数据,将会立即写入到块设备上。system_reset/system_powerdown:对于虚拟机的开关控制,system_reset/system_powerdown 则相当于在电脑上的reset和powerdown按钮,将强制虚拟机进行重启和关机操作。stop/cont:使得虚拟机进入/退出挂起状态。quit:直接退出qemu。
设备类命令 change命令用的比较广泛,在虚拟机运行的时候动态更改虚拟机的配置。 例4:change命令更改系统配置。 1.使用命令“change vnc :2 ”将启动QEMU时指定的vnc :1端口更改为:2。 修改完毕后可以ctrl+c关闭vncviewer窗口,再次打开时需要指定修改后的2端口。 2.将ubuntu-11.04-desktop-i386.iso作为虚拟CD插入到ide1-cd0中,最后将其弹出。可以通过info block来查看每步块设备的变化情况。(通过观察ide1-cd0可以发现,插入光盘后,能够看到光盘的iso文件) ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200611180920986.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzOTcxNTA0,size_16,color_FFFFFF,t_70)
|