kvm是乙個基於linux核心的虛擬機器解決方案。本文介紹kvm的使用方法,以及注意要點。
參考資料: kvm虛擬機器和qemu
linux brctl
先決條件
硬體環境
cpu硬體虛擬化
32位與64位
安裝kvm
虛擬機器連網
brctl橋接
安裝以及執行虛擬機器
kvm常用命令
安裝虛擬作業系統
遠端登入
x86(包括32位和64位),就是我們常用的系統。
kvm需要系統cpu支援,下面命令如果有輸出,說明cpu支援硬體虛擬化:
egrep "flags.*:.*(svm|vmx)" /proc/cpuinfo下面是32bit與64bit和主機系統與虛擬作業系統的關係:
主機作業系統
虛擬機器作業系統
是否支援
32位32位
是32位
46位否
64位32位
是64位
64位是
總結為一句話:不能在32位主機上裝64位的作業系統。
yao@debian:~$ apt-get install kvm qemu uml-utilities一般情況下,安裝好kvm後能就自動載入核心模組,你也可以手動載入:
yao@debian:~$ modprobe kvm_intel #or kvm_amd虛擬機器連網是頭等大事,所以我們先解決這個問題。通過橋接可以實現聯網,主要用到的命令有:brctl,ifconfig,tunctl,route
brctl是乙個乙太網橋接工具,常見的用法有:
命令原型
例子說明
brctl show
brctl show
顯示已有網橋
brctl addbr
brctl addbr br0
增加網橋br0
brctl delbr
brctl delbr br0
刪除網橋br0
brctl addif
brctl addif br0 eth0
將介面eth0接到網橋br0
brctl delif
brctl delif br0 eth0
從網橋上刪除乙個介面
如果發現無法刪除網橋,那麼可能是還沒有將其關閉:
yao@twomoon:~$ sudo brctl delbr br0說了這麼多,到這才是重點。首先,將物理網絡卡橋接:bridge br0 is still up; can't delete it
yao@twomoon:~$ sudo ifconfig br0 down
yao@twomoon:~$ sudo brctl delbr br0
yao@twomoon:~$ ifconfig -a |grep eth這樣又多了乙個網路裝置br0:eth0 link encap:ethernet hwaddr 90:fb:a6:14:cd:42
yao@twomoon:~$ brctl addbr br0
yao@twomoon:~$ brctl addif br0 eth0
yao@twomoon:~$ ifconfig eth0 0.0.0.0
yao@twomoon:~$ ifconfig br0 192.168.1.51 up
yao@twomoon:~$ lang=c ifconfig -a |grep ethernet如果沒有弄明白為什麼,可以上網找找橋接的資料和brctl的用法。br0 link encap:ethernet hwaddr 2a:24:d3:aa:99:e7
eth0 link encap:ethernet hwaddr 90:fb:a6:14:cd:42
當然不能每次開機後都要手工輸入這麼多命令。你可以將這些命令寫成乙個指令碼,每次開機就執行這個指令碼:
#!/bin/bash也可以寫到網絡卡的配置檔案配置檔案(/etc/network/inte***ces)裡,效果是一樣的:# networking.sh
# change eth0 to your network inte***ce(eg. eth1)
ifconfig lo 127.0.0.1 up
if [ ! -z "`ifconfig -a | grep br0`" ]; then
ifconfig br0 down
brctl delif br0 eth0
brctl delbr br0
fibrctl addbr br0
brctl addif br0 eth0
ifconfig eth0 0.0.0.0 up
ifconfig br0 192.168.1.51 up
route add default gw 192.168.1.1
exit 0
auto lo引數iface lo inet loopback
auto br0
iface br0 inet static
address 192.168.1.51
netmask 255.255.255.0
gateway 192.168.1.1
bridge_ports eth0
示例說明
-hda
-hda /data/windows.img
指定windows.img作為硬碟映象
-cdrom
-hda /data/windows.iso
指定windows.iso作為光碟映象
-boot
-boot c
從硬體啟動
-boot d
從光碟啟動
-m-m 512
分配512m記憶體給虛擬系統
-vnc
-vnc :0
作為vnc伺服器
-cpu
-cpu ?
列出支援的cpu
-cpu core2duo
指定cpu為core2duo
-smp
-smp 2
指定虛擬機器有2個cpu
-net
-net nic
為虛擬機器網絡卡(預設為tap0)
-net tap
系統分配tap裝置(預設為tap0)1
-net nic -net tap
將虛擬機器的網絡卡eth0連線真機裡的tap0
生成映象檔案:
yao@twomoon:~$ sudo kvm-img create windows2003-x86.img 25g -f "vmdk"安裝系統:
yao@twomoon:~$ sudo kvm -boot d -m 512 -hda ~/kvm/windows2003-x86.img -cdrom ~/software/wzmb2003.iso執行系統:
yao@twomoon:~$ sudo kvm -boot c -m 512 -hda ~/kvm/windows2003-x86.img -net nic -net tap可以發現多了乙個網路裝置tap0,這是系統自動建立的。
yao@twomoon:~$ lang=c ifconfig -a |grep ethernet如果虛擬機器是linux,那麼就用ssh;如果是windows,那麼就用rdesktop。br0 link encap:ethernet hwaddr 2a:24:d3:aa:99:e7
eth0 link encap:ethernet hwaddr 90:fb:a6:14:cd:42
tap0 link encap:ethernet hwaddr 2a:24:d3:aa:99:e7
yao@debian:~$ rdesktop -u username -p passwd 192.168.1.52 -f &記得用ctrl-alt-enter從全屏中切回來。
LINUX 虛擬機器 設定
1,安裝vmware 2,在vmware安裝linux 3,虛擬機器配置 edit irtual network settings 選nat,記下ip位址 4,在vmware的箭頭起到linux 5,在終端輸入setup 設定命令 進入網路設定,選intel網絡卡,用前面的ip段配置ip位址和mas...
Nginx nginx虛擬機器設定
一般情況下,我們的一台機器都不會僅僅部署乙個專案,那麼這個時候需要我們設定虛擬機器來對映多個位址的解析。假設我們目前有乙個已經設定好的nginx伺服器,通過php fpm提供服務。有的時候我們不知道配置檔案在 而不同版本的linux發行版的差距又很大,那麼這個時候,就需要去找配置檔案的位置 root...
虛擬機器設定NAT
需要開啟虛擬機器網路相關服務,安裝虛擬網絡卡,還有必須安裝 vmware tools vmware虛擬機器下實現nat方式上網 1.把你的虛擬網絡卡vmnet8設定為自動獲得ip 自動獲得dns伺服器,啟用。2.把你虛擬機器中作業系統的 本地連線 也設定為自動獲得ip 自動獲得dns服 務器 在虛擬...