當前位置:首頁 » 服務存儲 » qemu虛擬存儲命令
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

qemu虛擬存儲命令

發布時間: 2022-05-15 14:38:25

1. kvm 創建虛擬機qemu-kvm 和virt-install的區別

首先要了解qemu和libvirt。
QEMU(Quick Emulator) 是一個廣泛使用的開源計算機 模擬器和虛擬機。是一款免費的、開源的、純軟體實現的、可執行硬體虛擬化的 VMM。
libvirt是目前使用最為廣泛的對KVM虛擬機進行管理的工具和API,本質上是一些被提供的庫函數(C語言), 它引用了面向驅動的架構設計, 對所有的虛擬化技術都提供了相應的驅動和統一的介面, 用於管理物理機的虛擬機。 Libvirt 具有非常強的可擴展性, 可供本地或遠程的 virsh 調用。
qemu-kvm 命令屬於QEMU,virt-install命令屬於libvirt。libvirt調用qemu-kvm來管理虛擬機。如果Hypervisor是KVM,命令參數不一樣而已,沒區別。

2. 如何在VMware workstations的虛擬機上運行qemu

虛擬機通常只VMware、MicrosoftVirtualPC等工具,可以用他們來模擬PC,你可以在虛擬機裡面裝上WindowsXP來研究各種病毒而不必擔心會感染真正的系統,也常用來學習Linux。虛擬機的硬碟在你真正的系統上是一個或者幾個文件,備份還原轉移都很方便。模擬器通常指模擬以前的游戲機的程序,用它們可以玩很多以前經典的游戲,比如紅白機模擬器、PS模擬器、GBA模擬器,這樣我們就可以在電腦上玩一些經典的游戲了。比如街霸啊超級瑪麗啊拳皇啊合金彈頭啊寵物小精靈之類的從本質上講,虛擬機和模擬器沒有區別,他們都是用PC的CPU內存和硬碟空間來模擬出一個新的環境,只是他們模擬的環境不一樣而已。在實際的使用中,因為模擬器僅僅用於玩游戲,而虛擬機可以很方便的讓你在一個WindowsXP中體驗諸多其它的系統,所以很多人就覺得虛擬機比模擬器強大。殊不知模擬一個PS2/PSP的環境比模擬一個XP難上千倍,因為要模擬出不同架構的環境,虛擬的效率極低,目前的電腦尚達不到性能上的要求。

3. kvm和qemu的關系 kvm為什麼沒有做io虛擬化 半虛擬化和全虛擬化的區別 kvm是否在內

不同的基於KVM的虛擬化平台,可能會採用不同的虛擬化組件,目前主流的採用QEMU-KVM組件,但在不同的產品里版本有所不同,功能也有差異,下面就幾個概念進行梳理下


KVM:Kernel-Based Virtual Machine 基於內核的虛擬機,是Linux內核的一個可載入模塊,通過調用Linux本身內核功能,實現對CPU的底層虛擬化和內存的虛擬化,使Linux內核成為虛擬化層,需要x86架構的,支持虛擬化功能的硬體支持(比如Intel VT,AMD-V),是一種全虛擬化架構。KVM在2007年年2月被導入Linux 2.6.20內核中。從存在形式來看,它包括兩個內核模塊:kvm.ko 和 kvm_intel.ko(或kvm_amd.ko),本質上,KVM是管理虛擬硬體設備的驅動,該驅動使用字元設備/dev/kvm(由KVM本身創建)作為管理介面,主要負責vCPU的創建,虛擬內存的分配,vCPU寄存器的讀寫以及vCPU的運行。


QEMU:是一套由Fabrice Bellard編寫的模擬處理器的自由軟體,它是一個完整的可以單獨運行的軟體,可以獨立模擬出整台計算機,包括CPU,內存,IO設備,通過一個特殊的「重編譯器」對特定的處理器的二進制代碼進行翻譯,從而具有了跨平台的通用性。QEMU有兩種工作模式:系統模式,可以模擬出整個電腦系統,另一種是用戶模式,可以運行不同與當前硬體平台的其他平台上的程序(比如在x86平台上運行跑在ARM平台上的程序);其代碼地址 http://git.qemu.org/qemu.git ,有興趣的同學可以自己去看看,目前最新的版本是2.7.0,在0.9.1及之前版本還可以使用kqemu加速器(可以理解為QEMU的一個插件,用來提高QEMU的翻譯性能,支持Windows平台),但1.0以後版本就只能使用qemu-kvm(只支持Linux)進行加速了,1.3版本後QEMU和QEMU-KVM合二為一了。


QEMU-KVM:從前面對KVM內核模塊的介紹知道,它只負責CPU和內存的虛擬化,載入了它以後,用戶就可以進一步通過工具創建虛擬機(KVM提供介面),但僅有KVM還是不夠的,用戶無法直接控制內核去做事情(KVM只提供介面,怎麼創建虛擬機,分配vCPU等並不在它上面進行),還必須有個運行在用戶空間的工具才行,KVM的開發者選擇了比較成熟的開源虛擬化軟體QEMU來作為這個工具,並對其進行了修改,最後形成了QEMU-KVM。

在QEMU-KVM中,KVM運行在內核空間,QEMU運行在用戶空間,實際模擬創建,管理各種虛擬硬體,QEMU將KVM整合了進來,通過/ioctl 調用 /dev/kvm,從而將CPU指令的部分交給內核模塊來做,KVM實現了CPU和內存的虛擬化,但kvm不能虛擬其他硬體設備,因此qemu還有模擬IO設備(磁碟,網卡,顯卡等)的作用,KVM加上QEMU後就是完整意義上的伺服器虛擬化

當然,由於qemu模擬io設備效率不高的原因,現在常常採用半虛擬化的virtio方式來虛擬IO設備,另文再談

綜上所述,QEMU-KVM具有兩大作用:

1.提供對cpu,內存(KVM負責),IO設備(QEMU負責)的虛擬

2.對各種虛擬設備的創建,調用進行管理(QEMU負責)


libvirt

順帶提一提libvirt,這是RedHat開始支持KVM後,大概是覺得QEMU+KVM方案中的用戶空間虛擬機管理工具不太好用或者通用性不強,所以乾脆搞了個libvirt出來,一個針對各種虛擬化平台的虛擬機管理的API庫,一些常用的虛擬機管理工具如virsh(類似vim編輯器),virt-install,virt-manager等和雲計算框架平台(如OpenStack,OpenNebula,Eucalyptus等)都在底層使用libvirt提供的應用程序介面。

libvirt主要由三個部分組成:API庫,一個守護進程 libvirtd 和一個默認命令行管理工具 virsh。


總結:

目前來說,QEMU是一個獨立的虛擬化解決方案,並不依賴KVM(它本身自己可以做CPU和內存的模擬,只不過效率較低),而KVM是另一套虛擬化解決方案,對CPU進行虛擬效率較高(採用了硬體輔助虛擬化),但本身不提供其他設備的虛擬化,借用了QEMU的代碼進行了定製,所以KVM方案一定要依賴QEMU

即使後來RedHat後來開發了libvirt,也只能簡單的認為是個虛擬機管理工具,仍然需要通過用戶空間QEMU來與KVM進行交互


4. 最新windows版qemu虛擬機使用技巧

RedflagWorkstation下已經帶了QEMU
#QEMU-imgcreatewindows.img2G#這個就是創建虛擬機磁碟,2G大小
#QEMU-hdawindows.img-cdrom/dev/acd0-bootd-m512-enable-audio-localtime
-hda是指定硬碟
-cdrom指定使用光碟機,這個參數後面必須要跟個文件名,可以是物理光碟機/dev/hda,可以使用ISO文件,為文件的路徑
-m是指定虛擬機使用的內存大小,如512M
-boot指定虛擬機啟動用的設備,-boot後可以選擇的參數是a,c,d.其中a是指從軟盤啟動,c就是用硬碟啟動,d是光碟機啟動。
-enable-audio
-localtime使用實際主板bios上的時間。
應該可以順利的進入虛擬機了,並開始安裝了。
RedflagWorkstation下已經帶了QEMU
#QEMU-imgcreatewindows.img2G#這個就是創建虛擬機磁碟,2G大小
#QEMU-hdawindows.img-cdrom/dev/acd0-bootd-m512-enable-audio-localtime
-hda是指定硬碟
-cdrom指定使用光碟機,這個參數後面必須要跟個文件名,可以是物理光碟機/dev/hda,可以使用ISO文件,為文件的路徑
-m是指定虛擬機使用的內存大小,如512M
-boot指定虛擬機啟動用的設備,-boot後可以選擇的參數是a,c,d.其中a是指從軟盤啟動,c就是用硬碟啟動,d當然就是光碟機啟動了。
-enable-audio
-localtime使用實際主板bios上的時間。
應該可以順利的進入虛擬機了,並開始安裝了。
安裝過程中,要求換盤:在QEMU中按ctrl alt 2切換到QEMUmonitor模式輸入?或help可以查看可用命令及使用說明。(在其他版本的QEMU中,運行QEMU載入OS後,這個shell就會自動變成QEMUmonitor模式)
changedevicefilename—changearemovablemedia
如changecdrom/tmp/xp1.iso
常用的快捷鍵:
ctrl alt F全屏切換
ctrl alt滑鼠在虛擬機和主機間切換
虛擬機上網設置兩種方式:
1.usermodenetwork:
這種方式實現虛擬機上網很簡單,類似vmware里的nat,QEMU啟動時加入-user-net參數,虛擬機里使用dhcp方式,即可與互聯網通信,但是這種方式虛擬機與主機的通信不方便。
2.tap/tunnetwork:
這種方式要比usermode復雜一些,但是設置好後虛擬機互聯網虛擬機主機通信都很容易
這種方式設置上類似vmware的host-only,QEMU使用tun/tap設備在主機上增加一塊虛擬網路設備(tun0),然後就可以象真實網卡一樣配置它.

dora 5 下的qemu安裝使用qemu是最近出現的一種新的虛擬機,本身小巧的系 統和linux的加速器,使它一經面世就受到了熱烈的歡迎,國內也有不少用戶,但沒有一篇完整的文章介 紹,使許多人走了不少彎路,其實,安裝是比較簡單的,較為復雜的部分是在網路部分,下面,就以 Fedora 5加kernel 2.6.17.4做為主機詳細介紹qemu的安裝和使用
一.安裝
下載
qemu最新版是0.81,同時下載加速器kmenu,最新版是1.3
http://fabrice.bellard.free.fr/qemu/download.html
先安裝Kqemu
$ tar zxvf kqemu-1.3.0pre9.tar.gz
$ cd kqemu-1.3.0pre9
$ su root
# ./configure
# make
# make install

然後安裝qemu
# tar zxvf qemu-0.8.1.tar.gz
# cd qemu-0.8.1
#./configure --prefix=/usr/local --enable-kqemu --enable-user --enable-alsa --disable-gcc-check
說明:
--enable-user 可以允許系統下的所有用戶使用Qemu
--enable-alas 可以允許系統共享系統的聲音系統
--disable-gcc-check 因為wqemu默認是使用gcc3.2,我的系統gcc已經升級到了4.1,所有禁止了qemu對gcc的檢查
#make
#make install
經過以上的操作,加速器和qemu都已經安裝完成了。

二.創建新的img
用戶可以將img文件創建到任意位置,只要有足夠的空間就行。
# mkdir win2kp
# cd win2k
# qemu-img create win2k.img 2G
Formating 'win2k.img', fmt=raw, size=2097152 kB
2G是指定虛擬機的硬碟大小的
三.網路的設置
國 內的很多人都講加參數就如何可以使用網路,但實際遠沒那麼簡單,我就是一開始看了網路上某人的貼子,結果是反反復復,網路一直不能正常工作,後來從 qemu的網站上下了所有的doc才搞定(比如有人發的貼都是使用-user-net就可以上網了,不但把語法寫錯了,而且只有這個參數根本就上不了 網!),在此我只說最復雜的部分,就是主機<->虛擬機<->internet全通的模式。
這種方式是使用tun/tap模式,必須崾內核的支持,主機上會增加一塊虛擬網路設備(tun0),然後就可以象真實網卡一樣配置它.
首先查看你的內核是否支持tun設備:
#ls -l /lib/moles/2.6.17.4/kernel/drivers/net/tun.ko
如果存在,則執行下面的命令,否則重新編譯模塊。
#modprobe tun

這時檢查moles:
#lsmod |grep tun
tun 10240 1
tun 載入成功以後,要手工編輯一個shell.而且必須放在/etc下,文件名必須是qemu-ifup.最後要記得給腳本加上執行許可權,如果要允許系 統下的所有用戶使用,還必須更改腳本的許可權,並在腳本中的命令前加上sudo,下面是是個完整的,給所有用戶使用的腳本。

#vi /etc/qemu-ifup :
#!/bin/sh
sudo /sbin/ifconfig $1 192.168.10.1
sudo route add -host 192.168.10.100 dev $1
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
sudo iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE

#chmod a+x /etc/qemu-ifup

四.安裝虛擬系統
虛擬機的啟動有很多選項,下面我就以我安裝好的win2k來說明
如果要使用shm,必須進行以下的操作
# umount /dev/shm
# mount -t tmpfs -o size=528m none /dev/shm
別忘了啟動加速器
#modprobe kqemu
shm的容量必須比你將要分配給虛擬機的內存大16m,否則無法使用,上面是准備給虛擬機512m的內存,所以,shm被設置成了528,如果你只給虛擬機256m的內存,上面的size應該是272.
好了,下面准備開始給上面創建的win2k.img裝入系統
# qemu -hda /usr/local/win2k/win2k.img -cdrom /dev/hdc -boot d -m 512 -win2k-hack
對於win2k的安裝必須指定-win2k-hack參數,否則安裝會中途出錯退出,這個參數只需要在安裝的時候使用,在運行的時候是不需要的。
-hda是指定將要使用的image文件,也就是windows的C盤
-cdrom 是准備給cdrom的驅動器,也就是windows的D盤,有人說這個參數是-cdrom /dev/cdrom,是指定你的主機的cdrom的位置,這是一個天大的錯誤,這里指的是啟動後的虛擬機,和主機的cdrom在哪裡沒關系,當然,你的 系統必須有cdrom,如果沒有cdrom,我想在linux下虛擬mount一個還是很容易的。
-boot d ,就是指定系統從D啟動,各上面一項相關的
-m 512,指定分配組虛擬機的內存
如果一切順利,安裝完成以後,你就可以啟動系統了

五.啟動虛擬機
首先,按前面的介紹,載入好加速器和tun的模塊,如果前面已經載入了,這里就不再需要了,只在主機重啟了以後需要,如果經常使用虛擬機,也可以將它們直接添加進/etc/rc.d/rc.local讓系統自動載入。
#modprobe kqemu
#modprobe tun
#qemu -hda /usr/local/win2k/win2k.img -cdrom /dev/hdc -hdb fat:/home/seabird/work -m 512 -localtime -net nic -net tun
參數:
-hdb fat:/home/seabird/work
這是一個非常有用的參數,它的意思是把主機的/home/seabird/work目錄直接以fat的格式載入到虛擬機,當然,它是只讀的
-localtime,指定虛擬機使用當前的系統時間
-net nic -net tun
這兩個參數必須同時使用,否則,你還是上不了網,它的意思是啟動虛擬機的網卡同時和主機以及internet通訊,只有這個參數載入的時候,系統才會去讀取/etc/qemu-ifup文件,其它的模式是不會讀取這個文件的。
啟 動完成以後,將win2k的網卡地址指定為192.168.10.100,網關設為1921.68.10.1還記得/etc/qemu- ifup文件嗎,這個文件中的地址和你的虛擬機的地址是相關的,並不像有些人說的你可以像主機一樣隨便指定地址去上網,它是把主機作為一個NAT設備來使 用的。當然,你別忘記指定一個虛擬機可以到達的DNS伺服器
六.後記
1.指定虛擬機的網路地址的時候。千萬別指一個和你的主機相同網段的,那樣,你是不可能上網的。
2.可以去安裝98,但到目前的最新版為止,winxp在大多情況下安裝是不成功的,這個在qemu的網站上說的很清楚,只有等以後的版本了,所以,你看到的安裝winxp的貼子是沒有實踐的,我在三台配置不同的機器上安裝都以失敗告終了。
3.win2k運行的時候,如果用它自己的關機是關不掉虛擬機的,原因是不支持電源管理, 教你一個方法,使用win2k的安裝/卸載硬體,一步步往下走, 在windows搜索完硬體後出現的對話窗中選擇添加新硬體(白痴的windows,我竟然不能讓它跳過搜索), ->下一步,選擇「否,我想從列表選擇硬體」->下一步->NT Apm/legacy支持->下一步,安裝完成後你就可以正常關機了。
4.qemu還有一個最大的優點是可以啟動你的硬碟上的雙系統,如果現在就是雙系統,你可以像下面一樣直接啟動:
#qemu -hda /dev/hda1 -m 512 -net nic -net tun
/hda1是你的另一個系統的硬碟分區,如果你是grub啟動,這里就是你的grub所在的位置,等grub菜單出現後,選擇想啟動的系統就可以了(天啊,別選你現在正在運行的系統啊). Linux聯盟收集整理

5. qemu如何使用

qemu常用網路模式是user、tap。
user使用有局限性,
1) 由於其在QEMU內部實現所有網路協議棧,因此其性能較差。
2) 不支持部分網路功能(如ICMP),所以不能在客戶機中使用ping命令測試外網連通性。
3) 不能從宿主機或外部網路直接訪問客戶機。需要作地址重定向。
tap方式網路沒有這些限制。
通過tap又可以實現bridge和nat方式的網路連接。

6. QEMU是什麼軟體它有什麼作用.用來干什麼

QEMU是一套可以在Windows操作系統中模擬出另一套操作系統的模擬軟體。因為它可以在系統中模擬出一顆虛擬的CPU,然後將要模擬的操作系統交給這顆虛擬CPU去處理,所以能夠達到同一平台卻能同時執行兩種操作系統的目的。

QEMU的使用非常簡單,因為它不用安裝,只要使用文字指令和參數就可以操作。而它可以模擬的操作系統類型也非常多元,包括Linux系列、Mac OS系列、FreeBSD系列、Windows系列等等操作系統通通都沒問題。

一般的操作系統模擬程序的執行速度都非常慢,但是QEMU的速度居然可以達到正常的四分之一以上,在模擬程序中算是快的了。對於有需要在同一台計算機上安裝多個操作系統的人來說,QEMU一定可以幫的上很大的忙。

7. 手機如何用qemu模擬windows

QEMU是一套開源的跨平台模擬器,該文主要介紹QEMU的常用命令以及使用QEMU模擬運行Windows98CE的方法和步驟。

關鍵詞:QEMU;模擬器;Windows

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2010)26-7263-02

計算機模擬器(computersimulator)指的是「用計算機模擬計算機的模擬器」。計算機模擬器已被用於在實際發行前調試微程序或者商業應用程序。由於該計算機上的操作都是模擬的,所有信息都可被程序員獲取,而模擬的速度、執行等都可以控制。

在最近為某銀行開發軟體的過程中,由於客戶工作環境比較復雜,需要在不同環境和硬體條件下對項目進行測試和部署,由於在一台電腦上反復安裝不同的測試環境是一件非常繁瑣費時的工作,所以這里選用QEMU模擬不同的軟硬體環境來完成不同環境下軟體的部署和調試測試。下面以使用QEMU模擬Windows98CE環境為例,介紹QEMU的使用方法。

1QEMU簡介

QEMU是一套由FabriceBellard所編寫的開源跨平台模擬器。它具備高速度及跨平台的特性。QEMU有兩種主要運作模式:1)Usermode模擬模式,亦即是使用者模式。QEMU能啟動那些為不同中央處理器編譯的Linux程序。而Wine及Dosemu是其主要目標。

2)Systemmode模擬模式,亦即是系統模式。QEMU能模擬整個電腦系統,包括中央處理器及其他周邊設備。它使得為系統源代碼進行測試及除錯工作變得容易。其亦能用來在一部主機上虛擬數部不同虛擬電腦。

QEMU可以模擬IA-32(x86)個人電腦,AMD64個人電腦,MIPSR4000,升陽的SPARCsun3與PowerPC等硬體架構,同時在支持硬體虛擬化的x86構架上可以使用KVM加速配合內核ksm大頁面備份內存,速度穩定遠超過VMwareESX。QEMU增加了模擬速度,某些程序甚至可以實時運行,同時可以在其他平台上運行Linux的程序,可以儲存及還原運行狀態(如運行中的程序),也可以虛擬網路卡,使虛擬機可以與真實網路及宿主機進行通信。

2使用QEMU模擬運行Windows98CE

首先介紹一些QEMU的常用命令,這些命令在模擬運行Windows的時候經常用到:

-fdbfile,使用file作為軟盤鏡像.,這里的file可以是軟盤鏡像文件名也可以是真實的軟盤設備,比如/dev/fd0。

-hdafile-hdbfile-hdcfile,這里的file是指硬碟的鏡像文件名。

-bootadc,用於指定系統啟動優先使用的設備,a指軟盤,c指硬碟,d指光碟機。

-mmegs,指定虛擬系統的內存大小,這里的單位是MB,QEMU默認的是128M。

-enable-audio,由於sb16的虛擬音效卡驅動在Windows下使用有些問題,默認QEMU是關閉這個選項。

-localetime,QEMU默認使用的是UTC時區

-user-net,使用UserMode網路設備來建立網路連接,這是默認的

虛擬網路模式,相當於VMware的NAT。

在安裝之前,首先准備好Windows98CE的安裝鏡像,然後使用

QEMU來製作磁碟鏡像,也就是為即將安裝的Windows98CE分配磁碟

空間,命令如下:

>cdc:/qemu/qemu-0.9.0-Windows(假設QEMU安裝在c:/qemu/qe-

mu-0.9.0-Windows目錄下)

>qemu-img.execreatewince.img10G

下面,開始在製作好的磁碟鏡像中安裝Windows98,步驟如下:

1)運行命令qemu-bootd-cdromWindows98.iso-hdawin98se.img

,用於啟動到DOS,分區和格式化,開始安裝。在DOS環境下,對磁碟進

行格式化等處理,,然後運行setup命令開始安裝windwos98CE,安裝過

程不再詳細描述

8. qemu如何使用

qemu從某種意義上功能類似於vmware/virtual box之類的軟體,可以讓你在當前OS中運行其它的操作系統,但是這僅僅是qemu的一種功能

qemu還可以模擬不同的cpu架構下的系統,比如在普通的個人pc上運行 arm linux之類,這個vmware之類的可能沒有

關於qemu的使用
先到官網上下載qemu的源代碼,目前是 1.2,如果使用的是linux系統,這個好辦,直接編譯安裝,網上有不少說明的文檔

使用的過程一般分為三步
1. 創建虛擬機文件系統
qemu-img create /f qcow2 xxx.img 10G

2. 在虛擬機文件系統中安裝操作系統
qemu-system-i386 -hda xxx.img -cdrom xxx.iso -boot d 以xxx.img為文件系統,xxx.iso是系統安裝ISO文件

3. 運行安裝好的操作系統
qemu-system-i386 -hda xxx.img 運行xxx.img中的系統

以上的命令參數都比較簡單,實際使用中需根據具體情況自己配置

9. qemu能模擬全部x86指令嗎

qemu能模擬全部x86指令。也可以模擬各種ARM板子還可以模擬各種外設,百問網對QEMU做了很多改進支持更多硬體支持更多GUI現實,讓用戶可以更有真實感地使用QEMU來模擬IMX6ULL板子。

qemu模擬全部x86指令的原理

首先Qemu本身並不是KVM的一部分,而是一整套完整的虛擬化解決方案,它是純軟體實現的,包括處理器虛擬化內存虛擬化以及各種虛擬設備的模擬,但因為是純軟體模擬,所以性能相對比較低,而廣義的KVM實際上包含兩部分。

一部分是基於LINUX內核支持的KVM內核模塊,另一部分就是經過簡化和修改Qemu,KVM內核模塊模擬處理器和內存以支持虛擬機的運行,Qemu主要處理I或O以及為用戶提供一個用戶空間工具來進行虛擬機的管理,兩者相互結合相輔相成,構成了一個完整的虛擬化平台。

10. ubuntu qemu怎麼聯網

一、虛擬機的創建: 1.ubuntu下安裝好qemu後,使用如下命令創建虛擬機:

qemu-img create -f qcow2 voltdb.img 10g

-f qcow2是指:qemu採取的鏡像格式,qcow2是qemu最常使用的格式,該格式下可以採用來寫時復制技術來優化性能;

voltdb.img是指:鏡像名稱

10g是指:鏡像文件大小

2.之後需要為該鏡像文件安裝操作系統:

qemu-system-x86_64-enable-kvm-hdavoltdb.img-bootd-cdrom./ubuntu-16.04-desktop-amd64.iso-m2048-vnc:1

-enable-kvm:使用KVM進行加速(確保在BIOS中開啟CPU對虛擬化的支持,若未加此項,則鏡像安裝會很慢)

-hda: 指定要安裝虛擬機要使用的虛擬磁碟

-boot d:指定啟動位置,d表示從光碟啟動

-cdrom:指定cdrom為iso文件

-m:指定虛擬機內存大小,默認單位是MB

-vnc:1:通過vnc創建虛擬桌面。(筆者在這里未加-vnc:1時,會提示:CouldnotinitializeSDL(Noavailablevideodevice)-exiting)

3.此時,ubuntu的命令行會阻塞,我們可以通過在windows下通過TigerVNC去遠程連接

(下載地址:https://github.com/TigerVNC/tigervnc/releases)

在TigerVNC中,我們輸入ip:1(注意圓角半形的:)連接即可連接到voltdb.img虛擬鏡像的安裝界面,在那裡完成虛擬機操作系統的安裝即可。

二、配置橋接網路

qemu採用兩種方式配置上網:

其一,默認方式為用戶模式網路(Usermode Networking),數據包由NAT方式通過主機的介面進行傳送。

其二,使用橋接方式(Bridged Networking),外部的機器可以直接聯通到虛擬機,就像聯通到你的主機一樣。

第一,用戶模式
虛擬機可以使用網路服務,但區域網中其他機器包括宿主機無法連接它。比如,它可以瀏覽網頁,但外部機器不能訪問架設在它裡面的web伺服器。
默認的,虛擬機得到的ip空間為10.0.2.0/24,主機ip為10.0.2.2供虛擬機訪問。可以ssh到主機(10.0.2.2),用scp來拷貝文件。
第二,橋接模式
這種模式允許虛擬機就像一台獨立的主機一樣擁有網路。這種模式需要網卡支持,一般的有線網卡都支持,絕大部分的無線網卡都不支持

1.配置host

橋接就是把一台機器上的若干個網路介面「連接」起來。其結果是,其中一個網口收到的報文會被復制給其他網口並發送出去。以使得網口之間的報文能夠互相轉發。

目的:使得區域網內可以通過ssh登陸虛擬機

1.1首先,安裝兩個配置網路所需軟體包:

apt-get install bridge-utils # 虛擬網橋工具

apt-get install uml-utilities # UML(User-mode linux)工具

1.2創建網橋,並添加埠,如下顯示的是/etc/network/interface配置文件下的設置

[plain]view plain


  • source/etc/network/interfaces.d/*

  • #Theloopbacknetworkinterface

  • autolo

  • ifaceloinetloopback

  • #以下是之前未添加網橋時的配置

  • #Theprimarynetworkinterface

  • #autoenp3s0

  • #ifaceenp3s0inetstatic

  • #address192.168.66.149

  • #netmask255.255.255.0

  • #network192.168.66.0

  • #broadcast192.168.66.255

  • #gateway192.168.66.1

  • #dns-nameservers114.114.114.114

  • #dns-searchfoolsky

  • #添加網橋br0

  • autobr0

  • ifacebr0inetstatic#之前上網時採用靜態IP,所以這里依然使用此

  • address192.168.66.149#將之前上網的ip地址分配給網橋。

  • network192.168.66.0

  • netmask255.255.255.0

  • broadcast192.168.66.255

  • gateway192.168.66.1

  • bridge_portsenp3s0tap0#為網橋添加兩個介面,分別是enp3s0(之前默認的上網網口)和tap0

  • bridge_stpoff

  • bridge_fd0

  • bridge_maxwait0

  • dns-nameservers114.114.114.114

  • #添加介面enp3s0,上網方式採用自動

  • autoenp3s0

  • ifaceeth0inetmanual

  • 此時,查看當前網路配置:注意:enp3s0是未分配ip的。

    1.3使用brctl配置網橋:

    tunctl -t tap0 -u 用戶名 # 創建一個tap0介面,只允許指定用戶訪問

    brctl addif br0 tap0 # 在虛擬網橋中增加一個tap0介面

    ifconfig tap0 0.0.0.0 promisc up # 打開tap0介面

    brctl showstp br0 br0網橋顯示如下:

    1.4修改/etc/qemu-ifup虛擬機的啟動腳本,替換成如下內容:

    [plain]view plain

  • #!/bin/bash

  • switch=br0

  • if[-n"$1"];then

  • iplinkset$1up

  • sleep1

  • brctladdif${switch}$1

  • exit0

  • else

  • echo「Error:nointerfacespecified」

  • exit1

  • fi

  • 1.5使用如下命令行啟動qemu虛擬機

    sudoqemu-system-x86_64-enable-kvm-bootc-drivefile=/usr/local/ubuntu.img,if=virtio-m1024-smp2-netdevtype=tap,script=/etc/qemu-ifup,downscript=no,id=net0-devicevirtio-net-pci,netdev=net0,mac=00:11:22:33:44:AB-vnc:1-daemonize

    file:指定鏡像位置

    script:指向啟動腳本的位置。

    -daemonize:使得改啟動命令 不在阻塞,執行完該命令後依然可以執行其他命令。

    mac:為虛擬機的默認網卡分配指定的虛擬mac地址,可自行設定(MACADDR可以指定一個mac地址,但要注意,第一個位元組必須為偶數,如00,52等,不能為奇數(01),否則會有不可預料的問題。因為奇數保留為多播使用。)

    2.配置虛擬機內操作系統的網路

    此時,我們依然需要通過TigerVNC進入虛擬機已安裝的操作系統,進入後,修改/etc/network/interfaces如下:

    [plain]view plain

  • #interfaces(5)fileusedbyifup(8)andifdown(8)

  • autolo

  • ifaceloinetloopback

  • autoenp0s3

  • #以下內容是新加入的,之前並未為enp0s3分配ip以及上網方式。

  • ifaceenp0s3inetstatic

  • address192.168.66.155#設置該ip與網橋同一網段,下邊的內容相同即可。

  • netmask255.255.255.0

  • network192.168.66.0

  • gateway192.168.66.1

  • brodcast192.168.66.255

  • dns-nameservers114.114.114.114

  • bridge_fd9

  • bridge_hello2

  • bridge_maxage12

  • bridge_stpoff

  • 之後重啟虛擬機中操作系統,即可在區域網內通過ssh連接qemu中的操作系統。