天天看點

KVM虛拟機和QEMU(指令行選項)

bridge-utils是網卡橋接工具,

配置 <code>/etc/sysconfig/network-scripts</code>

下面的網絡腳本

增加一個橋接網絡接口,并把剛才配置的eth0添加到橋接口

使用一個下面的腳本:

可以使用橋接網卡啟動qemu-kvm,并使用gtes10.5.5的兩個檔案通過

nfs安裝系統:

也可以使用iso安裝,這樣對于多張iso發行版的linux需要在qemu的控制

台換盤:

進入qemu的控制台,在滑鼠聚焦到qemu界面時候,按住 ctrl+alt+2

入控制台:

上面指令如果提示:"device not found"。可能是裝置映射出錯,可以這樣:

上面讓kvm虛拟機在背景運作,并啟動vnc伺服器,這樣我們可以用vnc客

戶端連結172.16.70.30:5092這個位址。

-m machine

選擇模拟的機器(我們可以輸入-m?提到一個模拟的機器清單)

-fda file

-fdb file

使用file作為軟碟鏡像.我們也可以通過将/dev/fd0作為檔案名來使用主機軟碟.

-hda file

-hdb file

-hdc file

-hdd file

使用file作為硬碟0,1,2,3的鏡像.

-cdrom file

使用檔案作為cd-rom鏡像(但是我們不可以同時使

用'-hdc'和'-cdrom').我們可以通過使用'/dev/cdrom'作為檔案名來

使用主機的cd-rom.

-boot [a|c|d]

由軟碟(a),硬碟(c)或是cd-rom(d).在預設的情況下由硬碟啟動.

-snapshot

寫入臨時檔案而不是寫入磁盤鏡像檔案.在這樣的情況下,并沒有寫回

我們所使用的磁盤鏡像檔案.然而我們卻可以通過按下c-a s來強制寫

回磁盤鏡像檔案.

-m megs

設定虛拟記憶體尺寸為megs m位元組.在預設的情況下為128m.

-smp n

模拟一個有n個cpu的smp系統.為pc機為目标,最多可以支援255個cpu.

-nographic

在通常情況下,qemu使用sdl來顯示vga輸出.使用這個選項,我們可以

禁止所有的圖形輸出,這樣qemu隻是一個簡單的指令行程式.模拟的串

口将會重定向到指令行.是以,我們仍然可以在qemu平台上使用序列槽命

令來調試linux核心.

-k language

使用鍵盤布局語言(例如fr為法語).這個選項隻有在不易得到pc鍵盤

的情況下使用.我們在pc/linux或是pc/windows主機不需要使用這個

選項.預設的為en-us,可用的布局如下:

-audio-help

這個選項将會顯示聲音子系統的幫助:驅動清單以及可調用的參數.

-soundhw card1,card2 ....  or -soundhw all

允許聲音并選擇聲音硬體.使用?可以列出所有可用的聲音硬體

-localtime

設定時鐘為本地時間(預設為utc時間).如果在ms-dos或是windows上

這個選項則需要正确的日期.

-full-screen

以全屏方式啟動.

-pidfile file

在file檔案中存許qemu的程序pid.如果我們是由腳本啟動的,這個選

項是相當有用的.

-win2k-hack

當安裝windows 2000時可以使用這個選項來避免磁盤錯誤.在安裝上

windows 2000系統,我們就不再需要這個選項(這個選項降低ide的傳

輸速度).

-usb

允許usb驅動(很快就将成為預設的選項)

-usbdevice devname

添加usb裝置名.我們可以檢視螢幕指令usb_add來得到更為詳細的資訊.

-net nic[,vlan=n][,macaddr=addr]

建立一個新的網卡并與vlan n(在預設的情況下n=0)進行連接配接.在pc機

上,nic目前為ne2000.作為可選項的項目,mac位址可以進行改變.如果

沒有指定-net選項,則會建立一個單一的nic.

-net user[,vlan=n]

使用使用者模式網絡堆棧,這樣就不需要管理者權限來運作.如果沒有指

定-net選項,這将是預設的情況.

-net tap[,vlan=n][,fd=h][,ifname=name][,script=file]

将tap網絡接口name與vlan n進行連接配接,并使用網絡配置腳本file進行

配置.預設的網絡配置腳本為/etc/qemu-ifup.如果沒有指定name,os

将會自動指定一個.fd=h可以用來指定一個已經打開的tap主機接口的

句柄.例如:

下面的是一個更為複雜的例子(兩個nic,每一個連接配接到一個tap裝置):

-net

socket[,vlan=n][,fd=h][,listen=[host]:port][,connect=host:port]

使用tcp socket 将vlan n與遠端的另一個qemu虛拟機的vlan進行連

接.如果指定了listen,qemu将在port端口監聽連入請求(host是可選

的), connect可以用來使用listen選項與另一個qemu執行個體進行連

接.fd=h指定了一個已經打開的tcp socket.例如:

-net socket[,vlan=n][,fd=h][,mcast=maddr:port]

建立一個vlan n,并使用udp 多址通信套掊口與其他的qemu虛拟機進

行共享,尤其是對于每一個使用多址通信位址和端口的qemu使用同一

個總線. 在這裡我們要注意以下幾點:

幾個qemu可以運作在不同的主機上但卻使用同一個總線(在這裡假設

為這些主機設定了正确的多址通信)

mcast支援是與使用者模式linux相相容的.

使用fd=h指定一個已經打開的udp 多址通信套接口.

例如:

下面的為使用者模式linux的例子:

-net none

表明沒有網絡裝置需要進行配置.如果沒有指定-net選項,則會用來覆

蓋活躍的預設配置.

-tftp prefix

當使用使用者模式網絡堆棧,激活一個内置的tftp伺服器.所有的以

prefix開始的檔案将會使用一個tftp用戶端從主機下載下傳到本地.在本

地的tftp用戶端必須以二進制模式進行配置(使用unix的tftp用戶端

的bin指令).在客戶機上的主機ip位址如通常的10.0.2.2.

-smb dir

-redir [tcp|udp]:host-port:[guest-host]:guest-port

當使用使用者模式網格棧,将連接配接到主機端口host-port的tcp或是udp

連接配接重定向到客戶機端口guest-port上。如果沒有指定客戶機端口,

他的值為10.0.2.15(由内建的dhcp伺服器指定預設位址)。例如:

要重定向從screen 1到客戶機screen 0的x11連接配接,我們可以使用下

面的方法:

然後當我們在主機telnet localhost 5555上使用時,我們連接配接到了 客戶機的telnet伺服器上。
當我們使用這些選項時,我們可以使用一個指定的核心,而沒有将他 安裝在磁盤鏡像中。這對于簡單的測試各種核心是相當有用的。

`-kernel bzimage'

使用bzimage作為核心映像。

`-append cmdline'

使用cmdline作為核心的指令行。

`-initrd file'

使用file作為初始的ram磁盤。

`-serial dev'

重定向虛拟串到主機的裝置dev。可用的裝置如下:

vc

虛拟終端

pty

(linux)僞tty(自動配置設定一個新的tty)

null

空裝置

/dev/xxx"

(linux)使用主機的tty。例如,'/dev/ttys0'。主機的序列槽參數通過模拟進行設定。

/dev/parportn

(linux)使用主機的并口n。目前隻可以使用spp的并口特征。

file:filename

将輸出寫入到檔案filename中。沒有字元可讀。

stdio

(unix)标準輸入/輸出

pipe:filename

(unix)有名管道filename

在圖形模式下的預設裝置為vc,而在非圖形模式下為stdio.這個選項 可以被多次使用,最多可以模拟4個序列槽。

'-parallel dev'

重定向虛拟并口到主機的裝置dev(與序列槽相同的裝置)。在linux主

機上,`/dev/parportn'可以被用來使用與相應的并口相連的硬體設

備。這個選項可以使用多次,最多可以模拟3個并口。

`-monitor dev'

重定向臨視器到主機的裝置dev(與序列槽相同的裝置)。在圖形模式

下的預設裝置為vc,而在非圖形模式下為stdio。

'-s'

等待gdb連接配接到端口1234.

`-p port'

改變gdb連接配接端口。

`-s'

在啟動時并不啟動cpu(我們必須在螢幕中輸入'c')

'-d'

輸出日志到/tmp/qemu.log

`-hdachs c,h,s,[,t]'

強制硬碟0的實體參數(1 &lt;= c &lt;= 16383, 1 &lt;= h &lt;= 16, 1 &lt;= s

&lt;=63),并且可以選擇強制bios的轉換模式(t=none, lba or auto).通

常qemu可以檢測這些參數.這個選項對于老的ms-dos磁盤映像是相當

有用的.

`-std-vga'

模拟一個bochs vbe擴充的标準vga顯示卡(預設情況下為cirrus logic

gd5446 pci vga)

`-loadvm file'

從一個儲存狀态啟動.

在圖形模拟時,我們可以使用下面的這些組合鍵:

ctrl-alt-f

全屏

ctrl-alt-n

切換虛拟終端'n'.标準的終端映射如下:

n=1 : 目标系統顯示

n=2 : 臨視器

n=3 : 序列槽

ctrl-alt

抓取滑鼠和鍵盤

在虛拟控制台中,我們可以使用ctrl-up, ctrl-down, ctrl-pageup

和 ctrl-pagedown在螢幕中進行移動.

在模拟時,如果我們使用`-nographic'選項,我們可以使用ctrl-a h來得到終端指令:

ctrl-a h

列印幫助資訊

ctrl-a x

退出模拟

ctrl-a s

将磁盤資訊儲存入檔案(如果為-snapshot)

ctrl-a b

發出中斷

ctrl-a c

在控制台與螢幕進行切換

ctrl-a ctrl-a

發送ctrl-a

從0.6.1起,qemu支援多種磁盤映像格式,包括增長的磁盤映像,壓縮與加

密的磁盤映像.

我們可以用下面的指令來建立一個磁盤映像:

這裡myp_w_picpath.img是磁盤映像的檔案名,而mysize是以k表示的尺寸.我們

可以使用m字首來使用m表示尺寸或是g作為字首使用g表示尺寸.

qemu-img選項

可以支援下面的一些指令:

指令參數

filename

磁盤映像檔案名.

base_p_w_picpath

隻讀的磁盤映像,可以作為拷貝到寫映像的基礎.寫映像

上的拷貝隻存儲修改的資料.

fmt

磁盤映像格式.在大多數情況下可以自動檢測.可以支援下面的格式:

raw

raw 磁盤格式(預設).這種格式有簡單并且易于移植到其他模拟器的

優點.如果我們的檔案系統支援holes(例如在linux上的ext2或是

ext3),然後隻有寫入的部分保持空白.使用qemu-img info來得到映

像使用的實際的大小或是在unix/linux上使用 ls -ls.

qcow

qemu映像格式.最通用的格式.使用他可以獲得較小的映像(如果我們

的檔案系統不支援holes,例如在windows上,這是相當有用的),可以

選用aes加密或是基于zlib的壓縮.

cow

在寫映像格式上的使用者模式的linux拷貝.在qemu中作為增長的映像

格式使用.這個選項隻是為了與以前版本的相容,并不能在win32上使

用.

vmdk

vmware 3 或是 4 相容的映像格式.

cloop

linux壓縮的循環映像,重用直接壓縮的cd-rom映像.

size

以k表示的磁盤映像的尺寸.同時可以支援m或是g作為字首.

output_filename

目的磁盤映像檔案名

output_fmt

目标格式

-c

表明目标映像必須是壓縮的(隻是qcow格式)

-e

表明目标映像必須是加密的(隻是qcow格式)