qemu作為一個十分重要的虛擬化工具,提供了豐富的功能/參數來支持虛擬化的各種操作。
下面僅就monitor這個參數或者說是功能來結合自己的實際體驗來做個簡要介紹。
如何進入qemu的monitor模式的console?兩條路:
1, ctrl+alt+1或者ctrl+alt+2來進入和切換,但是我好像沒有成功過。。。。我用的是下面第二種辦法:
2, 直接在qemu啟動的時候加上 -monitor參數,一般來個 -monitor stdio 就很方便了,這樣就可以來個很方便的shell腳本來操作monitor狀態下的qemu虛擬機。
那么qemu的monitor都有什么比較有用的功能呢?或者說就是它提供或者說支持了哪些有用的參數?
大致分為以下四大類:
1,help和info
help, 這個基本上每個支持命令行的程序的usage都會提供一個help的parameter來顯示參數用法
info, 顯示一些例如cpu ,block, vnc等等信息和狀態,具體支持哪些參數,在qemu的monitor的console里面輸入help info看看吧,挺多的,就不一一列舉了。
2,device相關操作
change,The change command allows you to change removable media (like CD-ROMs), change the display options for a VNC, and change the password used on a VNC.
eject, release the device or file connected to the removable media device specified
usb_add, Add a host file as USB flash device ( you need to create in advance the host file: dd if=/dev/zero of=/tmp/disk.usb bs=1024k count=32 )
usb_del, use info usb to get the usb device list and then delete it
mouse_move, 移動鼠標光標到指定坐標,例如 mouse_move 500 500
mouse_button, 鼠標的左中右鍵, 1=L, 2=M, 4=R
mouse_set index, 先用info mice查看然后再操作
sendkey keys, 輸入鍵盤上各個按鍵的,比如說:
- sendkey a
- sendkey shift-a
- sendkey ctrl-u
- sendkey ctrl-alt-f1
我曾經嘗試過使用sendkey來登錄guest,發現必須輸入的時間足夠短,不然登錄會失敗。
基本上能夠支持目前鍵盤上的大部分按鍵,不過有些特殊按鍵是被轉義了的:
| shift | shift_r | alt | alt_r | altgr | altgr_r |
| ctrl | ctrl_r | menu | esc | 1 | 2 |
| 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 0 | minus | equal | backspace | tab |
| q | w | e | r | t | y |
| u | i | o | p | ret | a |
| s | d | f | g | h | j |
| k | l | z | x | c | v |
| b | n | m | comma | dot | slash |
| asterisk | spc | caps_lock | f1 | f2 | f3 |
| f4 | f5 | f6 | f7 | f8 | f9 |
| f10 | num_lock | scroll_lock | kp_divide | kp_multiply | kp_subtract |
| kp_add | kp_enter | kp_decimal | sysrq | kp_0 | kp_1 |
| kp_2 | kp_3 | kp_4 | kp_5 | kp_6 | kp_7 |
| kp_8 | kp_9 | < | f11 | f12 | |
| home | pgup | pgdn | end | left | up |
| down | right | insert | delete |
3, 屏幕和音頻的捕獲:
screendump
wavcapture
stopcapture
4, 關於虛擬機的一些操作:
commit, 顧名思義,實際上就是將操作和修改寫入到鏡像,至於寫入到什么位置,看你是否用了snapshot,這個有待試驗。
quit, 退出qemu,這時候虛擬機也完犢子了。
savevm, 保存虛擬機快照。
loadvm, 加載虛擬機快照,或者說是恢復到虛擬機的某個時間點。
delvm, 刪除。
stop, 即suspend,掛起。
cont, 即resume,恢復。
system_reset, 類似物理機上的reset強制重啟。
system_powerdown, 關機。
log,
logfile, 指定logfile路徑
gdbserver, 開啟端口方便host端用gdb來進行調試,這個還沒玩過,有機會試試。
x, 據說和gdb里面的x差不多
xp, 據說和gdb里面的xp差不多。
print, 同上。
sum, 據說是計算校驗和,沒玩過,有機會試試。
memsave, 顧名思義,保存內存的內容。
以上,是qemu的monitor參數的主要功能,就我自己的使用經歷來說,僅僅使用過里面的部分功能,
比如說常用的help和info,mouse族命令,sendkey以及其他一些命令,還沒有全部使用到所有參數。
還有待學習。
QUOTE:
2,使用 monitor command 監控 QEMU 運行狀態
