1. <var id="fe6gj"></var>

    <rp id="fe6gj"><nav id="fe6gj"></nav></rp>

    <noframes id="fe6gj"><cite id="fe6gj"></cite>

    <ins id="fe6gj"><button id="fe6gj"><p id="fe6gj"></p></button></ins>
    1. <tt id="fe6gj"><i id="fe6gj"><sub id="fe6gj"></sub></i></tt>
        始創于2000年 股票代碼:831685
        咨詢熱線:0371-60135900 注冊有禮 登錄
        • 掛牌上市企業
        • 60秒人工響應
        • 99.99%連通率
        • 7*24h人工
        • 故障100倍補償
        您的位置: 網站首頁 > 幫助中心>文章內容

        KVM虛擬機和QEMU

        發布時間:  2012/8/28 18:10:42
        安裝 kvm 和 網卡橋接工具:
        sudo aptitude install kvm qemu bridge-utils uml-utilities
        
        配置橋接網絡

        先創建 br0 設備:

        brctl addbr br0      # 創建一個橋接口
        

        以后要添加網卡到這個橋接接口只需:

        brctl addif br0 eth0 # 添加eth0到br0,重要
        

        我的網絡配置文件 /etc/network/interfaces 內容如下:

        auto lo
        iface lo inet loopback
        
        #auto eth0
        #iface eth0 inet dhcp
        
        auto br0
        iface br0 inet dhcp
        bridge_ports eth0
        

        主要思路:把 br0 接口配置成和以前正常工作的網口一樣(我這里是 eth0), 然后禁用以前網口的配置(我把 eth0 的配置注釋掉了),最后在 br0 配置里面 加上一句 "bridge_ports eth0" 。

        說明: 如果是靜態地址,可參照相應設置更改。

        啟動虛擬機

        配置好虛擬機,怎么使用就因人而異了,我的使用方式是,后臺執行,使用 vnc 遠程連接虛擬機。因此我用下面的小腳本啟動 uqkvm (如果你不了解 vnc ,或 者不太明白 shell 腳本,可能下面的說明對你無用。由于精力和能力有限,下面 僅給出腳本,無法一一闡述明了。):

        #!/bin/sh
        
        # 簡介:快速試用 KVM
        
        # KVM 程序地址
        KVM_CMD=/usr/bin/kvm
        QEMU_IFUP=/etc/init.d/qemu-ifup
        HOST=172.16.70.3
        
        # 默認值
        MEM=512 # 內存
        TAP=2 # 第幾塊網卡(0<TAP<10)
        
        # 您的磁盤映像
        DISK=
        
        # 所有其他的 KVM 參數
        OTHER=
        
        test -n "$1" && TAP=$1
        test -n "$DISK" && HDA="-hda $DISK" || HDA="-hda $2"
        shift 2
        OTHER=$@
        
        # 以來其他變量的變量要最后指明
        
        NET="-net nic,macaddr=32:32:32:32:32:3$TAP -net tap,ifname=tap$TAP,script=$QEMU_IFUP"
        VNC="-vnc $HOST:$TAP"
        RUN_CMD="$KVM_CMD -m $MEM $HDA $NET $VNC -localtime --daemonize $OTHER"
        
        
        echo "運行命令:$RUN_CMD"
        $RUN_CMD
        
        if test $? = 0; then
            echo "KVM 運行成功,請用 VNC 鏈接 $HOST:$TAP ..."
            exit 0
        else
            echo "KVM 運行失敗,請檢查命令行是否有錯誤!"
            exit 1
        fi
        

        其中用到的 /etc/init.d/qemu-ifup 文件如下:

        #!/bin/bash
        
        switch=br0
        
        if [ -n "$1" ];then
                /sbin/ip link set $1 up
                sleep 0.5s
                /usr/sbin/brctl addif $switch $1
                exit 0
        else
                echo "Error: no interface specified"
                exit 1
        fi
        

        uqkvm 腳本使用方法如下:

        ./uqkvm 3 GreenOS.img -cdrom  /data/lab/LessWatts/GTGS-lesswatts_xfce-201004201555.iso -boot d
        

        如果僅僅需要啟動系統:

        # ./uqkvm 3 GreenOS.img
        運行命令:/usr/bin/kvm -m 512 -hda GreenOS.img -net nic,macaddr=32:32:32:32:32:33 -net tap,ifname=tap3,script=/etc/init.d/qemu-ifup -vnc 172.16.70.3:3 -localtime --daemonize
        pci_add_option_rom: failed to find romfile "pxe-rtl8139.bin"
        KVM 運行成功,請用 VNC 鏈接 172.16.70.3:3 ...
        

        現在查看橋接設備情況:

        $ sudo brctl show
        bridge name     bridge id               STP enabled     interfaces
        br0             8000.0001028c5009       no              eth0
                                                                tap3
        

        可見 tap2 和 eth0 都在 br0 上。

        RHEL/Fedora/CentOS

        yum install bridge-utils kvm
        

        bridge-utils是網卡橋接工具,

        示例1:Redhat系統KVM

        創建磁盤

        # qemu-img create -f qcow2 turbo-10.5.5-rc2.img 20G
        Formatting 'turbo-10.5.5-rc2.img', fmt=qcow2, size=20971520 kB
        # file turbo-10.5.5-rc2.img
        turbo-10.5.5-rc2.img: QEMU Copy-On-Write disk image version 2, size 5 + 0
        

        配置橋接

        配置 /etc/sysconfig/network-scripts 下面的網絡腳本

        # cat /etc/sysconfig/network-scripts/ifcfg-br0
        DEVICE=br0
        ONBOOT=yes
        BOOTPROTO=static
        IPADDR=172.16.70.30
        NETMASK=255.255.252.0
        GATEWAY=172.16.68.1
        TYPE=Bridge
        # cat /etc/sysconfig/network-scripts/ifcfg-eth0
        # 3Com Corporation 3c905B 100BaseTX [Cyclone]
        DEVICE=eth0
        #BOOTPROTO=dhcp
        #HWADDR=00:01:02:8C:50:09
        ONBOOT=yes
        BRIDGE=br0
        

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

        brctl addbr br0      # 創建一個橋接口
        brctl addif br0 eth0 # 添加eth0到br0,重要
        

        使用一個下面的腳本:

        # cat /etc/init.d/qemu-ifup
        #!/bin/bash
        
        switch=br0
        
        if [ -n "$1" ];then
                /sbin/ip link set $1 up
                sleep 0.5s
                /usr/sbin/brctl addif $switch $1
                exit 0
        else
                echo "Error: no interface specified"
                exit 1
        fi
        

        使用橋接網卡

        可以使用橋接網卡啟動qemu-kvm,并使用GTES10.5.5的兩個文件通過 NFS安裝系統:

        # qemu-kvm -m 512 -hda turbo-10.5.5-rc2.img -kernel vmlinuz \
        -initrd initrd.img -net nic -net tap,script=/etc/init.d/qemu-ifup --daemonize
        

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

        # qemu-kvm -m 512 -hda turbo-10.5.5-rc2.img -cdrom 你的iso路徑 \
        -net nic -net tap,script=/etc/init.d/qemu-ifup -boot d --daemonize
        

        進入qemu的控制臺,在鼠標聚焦到qemu界面時候,按住 Ctrl+Alt+2 進 入控制臺:

        (qemu) change cdrom 你的另外一張iso
        

        上面命令如果提示:"device not found"?赡苁窃O備映射出錯,可以這樣:

        (qemu) info block
        ...
        (qemu) change ide1-cd0 iso文件
        

        QEMU常見使用

        使用vnc

        # qemu-kvm -m 512 -hda xp.img -net nic,macaddr=00:00:11:33:02:02 \
                 -net tap,ifname=tap2,script=/etc/init.d/qemu-ifup \
                 -localtime -vnc 172.16.70.30:2 --daemonize
        

        上面讓kvm虛擬機在后臺運行,并啟動vnc服務器,這樣我們可以用vnc客 戶端鏈接172.16.70.30:5092這個地址。

        QEMU選項:

        一般選項

        -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,可用的布局如下:
        ar  de-ch  es  fo    fr-ca  hu  ja  mk    no  pt-br  sv
        da  en-gb  et  fr    fr-ch  is  lt  nl    pl  ru     th
        de  en-us  fi  fr-be  hr    it  lv  nl-be  pt  sl    tr
        
        -audio-help
        這個選項將會顯示聲音子系統的幫助:驅動列表以及可調用的參數.
        -soundhw card1,card2 .... or -soundhw all
        允許聲音并選擇聲音硬件.使用?可以列出所有可用的聲音硬件
        qemu -soundhw sb16,adlib hda
        qemu -soundhw es1370 hda
        qemu -soundhw all hda
        qemu -soundhw ?
        
        -localtime
        設置時鐘為本地時間(默認為UTC時間).如果在MS-DOS或是Windows上 這個選項則需要正確的日期.
        -full-screen
        以全屏方式啟動.
        -pidfile file
        在file文件中存許Qemu的進程PID.如果我們是由腳本啟動的,這個選 項是相當有用的.
        -win2k-hack
        當安裝Windows 2000時可以使用這個選項來避免磁盤錯誤.在安裝上 Windows 2000系統,我們就不再需要這個選項(這個選項降低IDE的傳 輸速度).

        USB選項

        -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主機接口的 句柄.例如:
        qemu linux.img -net nic -net tap
        

        下面的是一個更為復雜的例子(兩個NIC,每一個連接到一個TAP設備):

        qemu linux.img -net nic,vlan=0 -net tap,vlan=0,ifname=tap0 \
                      -net nic,vlan=1 -net tap,vlan=1,ifname=tap1
        
        -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.例如:
        # launch a first QEMU instance
        qemu linux.img -net nic,macaddr=52:54:00:12:34:56 -net socket,listen=:1234
        # connect the VLAN 0 of this instance to the VLAN 0 of the first instance
        qemu linux.img -net nic,macaddr=52:54:00:12:34:57 -net
        socket,connect=127.0.0.1:1234
        
        -net socket[,vlan=n][,fd=h][,mcast=maddr:port]
        創建一個VLAN n,并使用UDP 多址通信套掊口與其他的QEMU虛擬機進 行共享,尤其是對于每一個使用多址通信地址和端口的QEMU使用同一 個總線. 在這里我們要注意以下幾點:
        • 幾個QEMU可以運行在不同的主機上但卻使用同一個總線(在這里假設 為這些主機設置了正確的多址通信)
        • mcast支持是與用戶模式Linux相兼容的.
        • 使用fd=h指定一個已經打開的UDP 多址通信套接口.

          例如:

        # launch one QEMU instance
        qemu linux.img -net nic,macaddr=52:54:00:12:34:56 -net
        socket,mcast=230.0.0.1:1234
        # launch another QEMU instance on same "bus"
        qemu linux.img -net nic,macaddr=52:54:00:12:34:57 -net
        socket,mcast=230.0.0.1:1234
        # launch yet another QEMU instance on same "bus"
        qemu linux.img -net nic,macaddr=52:54:00:12:34:58 -net
        socket,mcast=230.0.0.1:1234
        

        下面的為用戶模式Linux的例子:

        # launch QEMU instance (note mcast address selected is UML's default)
        qemu linux.img -net nic,macaddr=52:54:00:12:34:56 -net
        socket,mcast=239.192.168.1:1102
        # launch UML
        /path/to/linux ubd0=/path/to/root_fs eth0=mcast
        
        -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連接,我們可以使用下 面的方法:
        # on the host
        qemu -redir tcp:6001::6000 [...]
        # this host xterm should open in the guest X11 server
        xterm -display :1
        To redirect telnet connections from host port 5555 to telnet port on
        the guest, use the following:
        
        # on the host
        qemu -redir tcp:5555::23 [...]
        telnet localhost 5555
        

        然后當我們在主機telnet localhost 5555上使用時,我們連接到了 客戶機的telnet服務器上。

        Linux啟動選項

        當我們使用這些選項時,我們可以使用一個指定的內核,而沒有將他 安裝在磁盤鏡像中。這對于簡單的測試各種內核是相當有用的。

        `-kernel bzImage'
        使用bzImage作為內核映像。
        `-append cmdline'
        使用cmdline作為內核的命令行。
        `-initrd file'
        使用file作為初始的ram磁盤。

        調試選項

        `-serial dev'
        重定向虛擬串到主機的設備dev?捎玫脑O備如下:
        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 <= c <= 16383, 1 <= h <= 16, 1 <= s <=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支持多種磁盤映像格式,包括增長的磁盤映像,壓縮與加 密的磁盤映像.

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

        qemu-img create myimage.img mysize
        

        這里myimage.img是磁盤映像的文件名,而mysize是以K表示的尺寸.我們 可以使用M前綴來使用M表示尺寸或是G作為前綴使用G表示尺寸.

        qemu-img選項

        可以支持下面的一些命令:

        `create [-e] [-b base_image] [-f fmt] filename [size]'
        `commit [-f fmt] filename'
        `convert [-c] [-e] [-f fmt] filename [-O output_fmt] output_filename'
        `info [-f fmt] filename
        

        命令參數

        filename
        磁盤映像文件名.
        base_image
        只讀的磁盤映像,可以作為拷貝到寫映像的基礎.寫映像 上的拷貝只存儲修改的數據.
        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格式)


        本文出自:億恩科技【www.endtimedelusion.com】

        服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

      1. 您可能在找
      2. 億恩北京公司:
      3. 經營性ICP/ISP證:京B2-20150015
      4. 億恩鄭州公司:
      5. 經營性ICP/ISP/IDC證:豫B1.B2-20060070
      6. 億恩南昌公司:
      7. 經營性ICP/ISP證:贛B2-20080012
      8. 服務器/云主機 24小時售后服務電話:0371-60135900
      9. 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
      10. 專注服務器托管17年
        掃掃關注-微信公眾號
        0371-60135900
        Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區翠竹街1號總部企業基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
          0
         
         
         
         

        0371-60135900
        7*24小時客服服務熱線

         
         
        av不卡不卡在线观看_最近2018年中文字幕_亚洲欧美一区二区三区_一级A爱做片免费观看国产_日韩在线中文天天更新_伊人中文无码在线