⑴ kvm虛擬機開機啟動
1、通過virsh 命令
virsh autostart 虛擬滾悔橡機名稱大旁 開機啟動
virsh autostart --disable 虛擬機名稱 取前喚消開機啟動
腳本
https://blog.csdn.net/li1121567428/article/details/88938281
⑵ 安卓開啟kvm
創建KVM虛擬機_安卓kvm虛擬機可以用兩種方法創建kvm虛擬機,一種是virt-manager管理工具創建,一種是命令行的方式。1.命令行方式創建kvm虛擬機。先創建qcow2格式的鏡像文件,大小為20G。qemu-imgcreate-fqcow2/data/kvm/images/centos7.6×86.qcow20G輸入命令進行虛擬機的安裝:virt-install–name=centos7.6×86–vcpus=2–ram=2048–diskpath=/data/kvm/imag
⑶ 如何在 KVM 虛擬機上運行 KVM
解決辦法很簡單:1、修改 VMware ESXi 的設置;2、修改對應虛擬機的設置。
登陸 VMware ESXi 控制台打開 VMware ESXi 5.0 的 SSH 服務(默認 SSH 服務是關閉的),然後用 ssh 登陸 VMware ESXi 後在 config 文件中最後加入 vhv.allow = 「TRUE」 一行:
# vi /etc/vmware/config
libdir = "/usr/lib/vmware"
authd.proxy.vim = "vmware-hostd:hostd-vmdb"
authd.proxy.nfc = "vmware-hostd:ha-nfc"禪汪
authd.proxy.nfcssl = "vmware-hostd:ha-nfcssl"
authd.proxy.vpxa-nfcssl = "vmware-vpxa:vpxa-nfcssl"
authd.proxy.vpxa-nfc = "vmware-vpxa:vpxa-nfc"
authd.fullpath = "/sbin/authd"
authd.soapServer = "TRUE"
vmauthd.server.alwaysProxy = "TRUE"
vhv.allow = "TRUE"
重啟 VMware ESXi 後編輯虛擬機選項(需要先關閉虛擬機),打開 Edit virtual machine settings
對話框,在 options 頁面的 General Options 選灶滾項里把 Guest Operating System 的隱襲余類型換成
Other 裡面的 VMware ESxi 5.x,如圖:
最後啟動虛擬機後再 kvm-ok 一下就可以看到 KVM 可以用了:
⑷ kvm安裝win7虛擬機 – 編程哪些事
首先嘗試在 Virtual Machine Manager 裡面安裝。遇到的問題如下:
一直停留在 starting windows 界面。
解決方法:修改 video model 為 Cirrus,問題解決,如下圖所示:
2
開始安談渣裝後,對滑鼠和鍵盤無響應。
google,發現需要使用 <input type=』tablet』 bus=』usb』/>。添加一個,如下圖所示:
但是鍵盤還是不好使。。算了,還是轉到使用 qemu-system-x86_64 命令啟動虛機吧。
END
使用 qemu-system-x86_64 啟動 Win 7 虛機
1
環境准備
下載 Windows virtio driver iso:https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.102/,因為要將磁碟掛接為 virtio 磁碟。
2
創建系統盤 qemu-img create -f raw win7.img 30G,這將作為Win7的操作系統盤。
3
創建啟動腳本,畝侍巧如下圖所示:
4
可以運行腳本了,然後通過 VNC 進入界面,進入下面部分。
5
安裝 Win 7
選擇 Custom(advanced),如下圖所示:
6
選擇 virtio 磁碟,如下圖所示:
7
選擇 virtio disk driver,如下圖所示:
8
安裝 Win7 Virtio SCSI Driver,如下圖所示:
9
安裝好以後,就可以看到安裝的目標磁碟了,如下圖所示:
10
進入常規的 Win7 安裝流程,如下圖所示:
END
安裝其它 Virtio 驅動
網路驅動,如下圖所示:
但是安裝迅鍵失敗,如下圖所示:
嘗試 device manager,如下圖所示:
但是還是失敗,如下圖所示:
Baloon driver
Device manager, 右鍵 root device, add legacy hardware, next, install manually (advanced), next, have disk, browse, select inf, install,如下圖所示:
改成此方法安裝 network 驅動成功。注意將虛機重啟從而使得安裝生效。
詭異的問題
通過上面方法得到的 Win7 raw 格式的鏡像文件可以直接使用來創建新的虛機,這些新的虛機會使用 virtio network driver。
但是,在 OpenStack 環境和中,Nova 首先將 qcow2 格式的鏡像從glance 中下載到計算節點上,然後將它轉化為 raw 格式作為 backfing file,再創建一個 qcow2 文件,它使用 raw 文件作為 backing file。如下圖所示:
詭異的是,OpenStack 中新建的虛機不能使用 virtio network driver,如下圖所示:
8
但是如果使用backing file 直接啟動虛機,則沒有這個問題。
使用同樣的 backing file 創建一個新的 qcow2 文件,則沒有這個問題
具體原因應該和 Nova 的具體邏輯有關,將來再查,現在暫時使用 SCSI network driver。
⑸ qemu啟動虛擬機的幾種方式
驗證一些平台無關的特性的時候,如果用VM代替真實的物理機無疑更高效。下面列舉一些Qemu啟動VM的方式,順便澄清一些概念。
本文驗證需要的環境:
1. ubuntu 18.04
2. 安裝軟體:
a) sudo apt-get install qemu-kvm libvirt-bin
b) vncviewer to access VM via X window(optional)
https://www.realvnc.com/en/connect/download/viewer/linux/
3. VM鏡像
xx.iso 或者 xx.img
方式1是用libvirt以xml方式啟動VM,VM所有的配置都放在xml文件中,優點是不用輸入復雜的參數。
如果想用qcow2格式的啟動鏡像,可以用如下命令轉換img。
創建test.xml,內容如下。注意boot dev如果是cdrom則是iso啟動,如果是hd則是硬碟啟動。
然後創建啟動虛擬機
命令行方式
最簡方式,這種方式啟動後,需要vncview連接VM
用bzImage和rootfs啟動
啟用網卡,啟動成功後可以在host上ifconfig查看到tap0設備,sudo brctl addif virbr0 tap0將tap0加入virbr0網橋。
參考: libvirt
⑹ 如何在kvm伺服器上創建虛擬機
創建虛擬機鏡像
要在一台host上跑起一個虛擬機一般需要兩個步驟:
第一步:創建虛擬機鏡像
qemu-img create -f raw /images/vm1.raw 8G
qmeu-img創建的鏡像是一個稀疏文件,也就是說剛創建出來的文件並沒有8G,它會隨著數據的增多慢慢增加,直到8G
第二步:啟動虛擬機
kvm /imges/vm1.raw
運行結果: 因為鏡像裡面沒有任何內容,所以提示找不到可引導設備。
使用qemu-img管理鏡像
qemu-img基本命令
上節介紹了使用qemu-img創建鏡像,這一節將會介紹qemu-img在鏡像管理上的強大功能。
qemu-img有很多命令,包括下面常用的,當然qemu-img -h你懂得。
info
查看鏡像的信息
create
創建鏡像
check
檢查鏡像
convert
轉化鏡像的格式,(raw,qcow ……)
snapshot
管理鏡像的快照
rebase
在已有的鏡像的基礎上創建新的鏡像
resize
增加或減小鏡像大小
創建鏡像
qemu-img create -f <fmt> -o <options> <fname> <size>
舉例:
qemu-img create -f raw -o size=4G /images/vm2.raw
hzgatt@hzgatt:~/images$ ll
total 0-rw-r--r-- 1 hzgatt hzgatt 4.0G 6月 29 14:11 vm2.raw
hzgatt@hzgatt:~/images$ ll -s
total 00 -rw-r--r-- 1 hzgatt hzgatt 4.0G 6月 29 14:11 vm2.raw
hzgatt@hzgatt:~/images$ qemu-img info vm2.raw
image: vm2.raw
file format: raw
virtual size: 4.0G (4294967296 bytes)
disk size: 0
雖然ls中看到文件的大小是4G,但是實際上磁碟大小是0。這就是稀疏文件
轉化
將一個鏡像文件轉化為另外一種格式,qemu-img支持的格式可以看qemu-img -h最後一行。
Supported formats: vvfat vpc vmdk vdi sheepdog rbd raw host_cdrom host_floppy host_device file qed qcow2 qcow parallels nbd dmg tftp ftps ftp https http cow cloop bochs blkverify blkdebug
轉化命令:
qemu-img convert -c -f fmt -O out_fmt -o options fname out_fname
-c:採用壓縮,只有qcow和qcow2才支持
-f:源鏡像的格式,它會自動檢測,所以省略之
-O 目標鏡像的格式
-o 其他選先
fname:源文件
out_fname:轉化後的文件
看例子:
hzgatt@hzgatt:~/images$ qemu-img convert -c -O qcow2 vm2.raw vm2.qcow2
hzgatt@hzgatt:~/images$ ll -s
total 136K
0 -rw-r--r-- 1 hzgatt hzgatt 5.0G 6月 29 13:55 vm1.raw
136K -rw-r--r-- 1 hzgatt hzgatt 193K 6月 29 14:22 vm2.qcow2
0 -rw-r--r-- 1 hzgatt hzgatt 4.0G 6月 29 14:11 vm2.raw
hzgatt@hzgatt:~/images$ qemu-img info vm2.qcow2
image: vm2.qcow2
file format: qcow2
virtual size: 4.0G (4294967296 bytes)
disk size: 136K
cluster_size: 65536
如果想看要轉化的格式支持的-o選項有哪些,可以在命令末尾加上 -o ?
hzgatt@hzgatt:~/images$ qemu-img convert -c -O qcow2 vm2.raw vm2.qcow2 -o ?
Supported options:
size Virtual disk size
backing_file File name of a base image
backing_fmt Image format of the base image
encryption Encrypt the image
cluster_size qcow2 cluster size
preallocation Preallocation mode (allowed values: off, metadata)
增加減少鏡像大小
注意:只有raw格式的鏡像才可以改變大小
hzgatt@hzgatt:~/images$ qemu-img resize vm2.raw +2GB
hzgatt@hzgatt:~/images$ ll -s
total 136K
0 -rw-r--r-- 1 hzgatt hzgatt 5.0G 6月 29 13:55 vm1.raw
136K -rw-r--r-- 1 hzgatt hzgatt 193K 6月 29 14:22 vm2.qcow2
0 -rw-r--r-- 1 hzgatt hzgatt 6.0G 6月 29 14:28 vm2.raw
hzgatt@hzgatt:~/images$ qemu-img info vm2.raw
image: vm2.raw
file format: raw
virtual size: 6.0G (6442450944 bytes)
disk size: 0
⑺ 如何使用KVM libvirt命令管理虛擬機
在Ubuntu系統上安裝KVM組件服務
使用如下命令:
$ sudo apt-get install kvm qemu
$ sudo apt-get install virtinst python-libvirt virt-viewer virt-manager
安裝橋接網卡
$ sudo apt-get install bridge-utils
使用qemu命令創建虛擬機的虛擬磁碟文件
使用如下命令創建一個10G的磁碟空間用於安裝和允許虛擬機
$qemu-img create -f qcow2 lion.disk 10G
創建虛擬機Domain配置文件用於創建虛擬機實例
使用vim命令創建lionServer.xml配置文件,輸入如下內容:
<domain type='kvm' id='1'>
<name>lion</name>
<memory unit='KiB'>1048576</memory>
<currentMemory unit='KiB'>1048576</currentMemory>
<vcpu placement='static'>1</vcpu>
<os>
<type arch='x86_64' machine='pc-i440fx-xenial'>hvm</type>
<boot dev='cdrom'/>
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/home/hxb/image/lion.disk'/>
<backingStore/>
<target dev='vda' bus='virtio'/>
<alias name='virtio-disk0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</disk>
<disk type='file' device='cdrom'>
<source file='/home/hxb/iso/ubuntu.iso' />
<target dev='hdb' bus='ide'/>
</disk>
<controller type='usb' index='0'>
<alias name='usb'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
</controller>
<controller type='pci' index='0' model='pci-root'>
<alias name='pci.0'/>
</controller>
<controller type='ide' index='0'>
<alias name='ide'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
</controller>
<interface type='network'>
<mac address='52:54:00:7d:4d:d1'/>
<source network='br1' bridge='virbr1'/>
<target dev='vnet0'/>
<model type='virtio'/>
<alias name='net0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<serial type='pty'>
<source path='/dev/pts/3'/>
<target port='0'/>
<alias name='serial0'/>
</serial>
<console type='pty' tty='/dev/pts/3'>
<source path='/dev/pts/3'/>
<target type='serial' port='0'/>
<alias name='serial0'/>
</console>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='5900' autoport='yes' listen='0.0.0.0'>
<listen type='address' address='0.0.0.0'/>
</graphics>
<sound model='ich6'>
<alias name='sound0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</sound>
<video>
<model type='cirrus' vram='16384' heads='1'/>
<alias name='video0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video>
<memballoon model='virtio'>
<alias name='balloon0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</memballoon>
</devices>
<seclabel type='dynamic' model='apparmor' relabel='yes'>
<label>libvirt-d828c766-9826-99a9-f495-67a3a55a5643</label>
<imagelabel>libvirt-d828c766-9826-99a9-f495-67a3a55a5643</imagelabel>
</seclabel>
</domain>
使用virsh命令創建新的虛擬機實例
使用如下命令:
定義虛擬機domain,
$virsh define lionServer.xml
啟動虛擬機lion
$virsh start lion
顯示系統中的虛擬機列表
$virsh list
在創建的虛擬機實例lion上安裝操作系統
打開VirtualManager工具,打開虛擬機管理工具,選擇lion虛擬機進行連接。
連接虛擬機lion成功後,進行系統的安裝。
完成虛擬機lion的系統安裝後,需要進行虛擬機domain的配置修改,將系統引導從cdrom切換到硬碟hd,重啟虛擬機後,既可以正常登陸lion虛擬機。
使用如下命令進行boot配置修改:
$ virsh edit lion
...
<os>
<type arch='x86_64' machine='pc-i440fx-xenial'>hvm</type>
<boot dev='cdrom'/>
</os>
...
將 <boot dev='cdrom'/> 修改為 <boot dev='hd'/>
如何刪除創建的lion虛擬機
1)關閉lion虛擬機
$ virsh shutdown lion
2) 刪除lion虛擬機
$virsh destroy lion
3) 取消lion domain的定義
$virsh undefine lion
⑻ 如何在 KVM 虛擬機上運行 KVM
如何在 KVM 虛擬機上運行 KVM
上次討論了如何在 VMware ESXi 虛擬機上運行 KVM 問題,前不久有讀者想 「在 kvm 上面創建個虛擬機安裝 rackspace 的 openstack」 問到 「如何開啟虛擬機上的 CPU VT 功能以便在 KVM 上運行 KVM」,又是一個嵌套應用虛擬機的問題:在 KVM 虛擬機上運行 KVM 虛擬機。以下步驟在 Ubuntu Server 12.04 LTS 64 bit 上測試通過。
首先檢查 KVM host(母機)上是否打開了嵌套虛擬機功能(默認是開啟的):
# modinfo kvm_intel | grep nested
parm: nested:bool
# cat /sys/mole/kvm_intel/parameters/nested
Y
如果上面的顯示結果不是 Y 的話需要開啟 nested:
# modprobe -r kvm-intel
# modprobe kvm-intel nested=1
# cat /sys/mole/kvm_intel/parameters/nested
Y
然後在 KVM guest(虛擬機)的 xml 配置文件中加入 vmx 選項,並啟動虛擬機(這里用的是 Ubuntu 官方發布的 Ubuntu KVM 鏡像 ubuntu-12.04-server-cloudimg-amd64-disk1.img):
# vi nestedvm.xml
...
<cpu match='exact'/>
<model>core2o</model/>
<feature policy='require' name='vmx'//>
</cpu/>
...
# virsh create nestedvm.xml
啟動虛擬機後登陸並安裝 KVM,執行 kvm-ok 和 modinfo 均出現錯誤:
# apt-get install ubuntu-virt-server
# kvm-ok
INFO: /dev/kvm does not exist
HINT: sudo modprobe kvm_intel
INFO: Your CPU supports KVM extensions
KVM acceleration can be used
# modinfo kvm_intel
ERROR: modinfo: could not find mole kvm_intel
這是因為我們使用的是 ubuntu-12.04-server-cloudimg-amd64-disk1.img 這個官方虛擬機鏡像,這個鏡像使用的是 linux 3.2.0-23-virtual 內核,缺少 KVM 模塊(kvm-intel.ko),所以我們需要改為 generic 內核:
# uname -a
Linux test 3.2.0-23-virtual #36-Ubuntu SMP Tue Apr 10 22:29:03 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
# apt-get install linux-generic
重啟後進入虛擬機執行 kvm-ok 和 modinfo 均成功:
# kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used
# modinfo kvm_intel
filename: /lib/moles/3.2.0-30-generic/kernel/arch/x86/kvm/kvm-intel.ko
license: GPL
author: Qumranet
srcversion: 3BAF54F96ECD4B02292CAA0
depends: kvm
intree: Y
vermagic: 3.2.0-30-generic SMP mod_unload modversions
parm: vpid:bool
parm: flexpriority:bool
parm: ept:bool
parm: unrestricted_guest:bool
parm: emulate_invalid_guest_state:bool
parm: vmm_exclusive:bool
parm: yield_on_hlt:bool
parm: fasteoi:bool
parm: nested:bool
parm: ple_gap:int
parm: ple_window:int
現在應該可以在這個虛擬機上創建另一個虛擬機了
⑼ 安裝kvm虛擬機並導入導出
1、確保支持cpu虛擬化
cat /proc/cpuinfo | egrep 'svm|vmx'
2、安裝qemu-kvm、libvirt、virt-install包
yum -y install qemu-kvm libvirt virt-install
3、開啟libvirtd服務病開機自啟
systemctl start libvirtd && systemctl enable libvirtd
4、創建一個磁碟文件
qemu-img create -f qcow2 ./centos7-kvm.qcow2 10G
5、創建虛擬機。類型為kvm,名稱隨意,內存1G,鏡像文件指定位置,磁碟文件就是步驟4中的,網路默認,圖形選擇vnc
virt-install --virt-type kvm --name centos7-2020 --ram 1024 --cdrom=/home/kvm/CentOS-7-x86_64-Minimal-2003.iso --disk path=/home/kvm/centos7-kvm.qcow2 --network network=default --graphic vnc,listen=0.0.0.0 --noautoconsole
6、宿主機安裝vnc server
yum -y install tigervnc-server tigervnc vnc vnc-server
systemctl daemon-reload
7、執行下述命令設置密碼
vncserver
8、啟動服務(我自己的環境這個服務沒起來,但還是可以用的)
systemctl start vncserver@gao:1
9、關閉防火牆和selinux
10、vnc客戶端連接宿主機5901,然後正常安裝虛擬機
導出虛擬機
——本實驗是將qcow2格式導出為qcow2
1、一條命令即可
-從表示壓縮,-O表示導出格式,111.qcow2位導出後的文件
qemu-img convert -c -O qcow2 centos7-kvm.qcow2 111.qcow2
導入虛擬機
——使用virt-manager工具導入
1、安裝virt-manager
yum -y install virt-manager
2、打開
virt-manager
3、新建虛擬機,選擇鏡像導入
選擇對應的111.qcow2文件
配置cpu、內存、網路等信息
完成新的虛擬機創建
ok