qemu-img命令
例1:查看QEMU支持的鏡像文件格式。
常用的虛擬機及其支持的鏡像格式如下:
例2:通過創建qcow2和raw文件來對比這兩種鏡像。
對比兩種格式的文件的實際大小以及佔用空間大小如下:
從上述輸出可以看出:
- 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不支持。
創建磁盤快照時客戶機需要處於關閉的狀態。
例6:針對qcow2格式的文件,增加和減少鏡像文件的大小。(raw格式不支持)
resize filename [+ | -]size
resize命令主要用來改變鏡像文件的大小。
參數說明:
“+”用於增加鏡像文件的大小;
“-”用於減少鏡像文件的大小;
size也支持K、M、G、T等單位;
注意:
在縮小鏡像的大小之前,需要確保客戶機中的文件系統有空餘空間,否則會丟失數據。
在增加了鏡像文件大小後,也需啓動客戶機到裏面去應用分區工具進行相應的操作,
才能真正讓客戶機使用到增加後的鏡像空間。不過使用resize命令之前最好做好備份,
否則失敗的話,可能會導致鏡像文件無法正常使用而造成數據丟失。
另外,qcow2格式文件不支持縮小鏡像的操作。
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文件)