vmware workstation14嵌套安裝kvm


 1.前言

我在2017-11-06使用virtualbox安裝了centos,然后嵌套kvm(win7),鏈接地址如下:

https://www.cnblogs.com/tcicy/p/7790956.html

今天想在virtualbox中再耍一遍的時候,發現egrep -o '(vmx|svm)' /proc/cpuinfo執行不出結果。。。

然后Google了半天,發現virtualbox只支持嵌套,而且是個10多年的老bug了~~~~!!!無語!難道我2017-11-06用的是假的virtualbox???

不過,想做實驗,只能硬着頭皮裝VMware workstation。。。。。真不想裝啊!!!

安裝VMware workstation14,安裝centos7.xmini,一定要配置以下

 

 然后執行以下命令就可以安裝kvm了

 egrep -o '(vmx|svm)' /proc/cpuinfo

因為是mini安裝,要啥啥沒有,所以裝點必須的

1.1安裝調試基礎環境

yum install -y epel-release  sysstat net-tools mlocate

安裝kvm程序及其環境

yum install -y qemu-kvm qemu-kvm-tools libvirt virt-install virt-top

可以安裝的程序很多

qemu-kvm         # 主要的KVM程序包,KVM在用戶空間運行的程序
qemu-kvm-tools   # KVM debugging and diagnostics tools
virt-top         # 虛擬機統計命令,類似top
libvirt          # 提供libvirt服務,用於管理虛擬機,它提供了一套虛擬機操作 API
virt-install     # 基於libvirt服務的虛擬機創建命令

bridge-utils     # 創建和管理橋接設備的工具
virt-manager     #  基於libvirt的GUI圖像化虛擬機管理軟件
libvirt-client   # 虛擬客戶機提供的C語言工具包
virt-viewer      # GUI連接程序,連接到已配置好的虛擬機,顯示虛擬機的控制台Console
python-virtinst  # 創建虛擬機所需要的命令行工具和程序庫
libvirt-client   # libvirt的客戶端,最重要的功能之一就是在宿主機關機時可以通知虛擬機也關機  
gpxe-roms-qemu   # 虛擬機iPXE的啟動固件,支持虛擬機從網絡啟動
libvirt-python   # libvirt為python 提供的 API
python-virtinst  # 一套Python 的虛擬機安裝工具
virt-what        # 在虛擬機內部執行,查看虛擬機運行的虛擬化平台
qemu-img         # 用於操作虛擬機硬盤鏡像的創建、查看和格式轉化

 

關閉防火牆及selinux

systemctl stop NetworkManager
systemctl disable NetworkManager
systemctl stop firewalld
systemctl disable firewalld
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
reboot

重啟之后執行以下
systemctl status  NetworkManager
systemctl status firewalld
firewall-cmd --state
getenforce
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT

 

查看信息

systemctl restart libvirtd
systemctl status libvirtd
ifconfig virbr0
ifconfig virbr0-nic
brctl show
ps aux|grep dnsmasq
iptables -nvL -t nat

1.2創建虛機(NAT方式)

創建磁盤

mkdir /data

qemu-img  create -f raw -o size=5G /data/tiny-linux.raw

下面開始安裝KVM咯!!!我用的tinylinux,安裝iso只有18MB,還帶桌面環境的~~~反正就是測試嘛~~~里面裝個windows或者ubuntu、centos、freebsd等的都行,隨便你。

virt-install  --virt-type kvm --name Tiny-linux --ram 1024 --cdrom /data/TinyCore-current.iso --disk path=/data/Tiny-linux.raw --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

如果覺得這行代碼太長,我們可以把代碼改下,運行哪個都行,只是加了\換行了而已。

virt-install  --virt-type kvm \
--name Tiny-linux \
--ram 1024 \
--cdrom /data/TinyCore-current.iso \
--disk path=/data/Tiny-linux.raw \
--network network=default \
--graphics vnc,listen=0.0.0.0 \
--noautoconsole

然后可以查看咯

netstat -ntlp|grep 5900    #第一台kvm是5900端口,依次累加5901,5902,5903........
virsh -c qemu:///system list
virsh list --all

這時候你可以打開vnc連接了

tightvnc的下載地址

http://www.tightvnc.com/download.php

IP地址是centos7.xmini的地址,點擊connect就行了,自己安裝就完事了。

1.3創建虛機(Bridge方式)

1.3.1創建網橋

cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33.bak

cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-br0

然后修改,修改后的結果如下:

[root@bogon ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=ens33
UUID=1a5720e1-1ba5-4b97-9b7c-fc312327a291
DEVICE=ens33
ONBOOT=yes
BRIDGE=br0                    ##增加這條
[root@bogon ~]# cat /etc/sysconfig/network-scripts/ifcfg-br0
TYPE=Bridge
BOOTPROTO=dhcp
NAME=br0
DEVICE=br0
ONBOOT=yes

在ifcfg-ens33中增加BRIDGE=br0

ifcfg-br0中就5條信息就好了~~~[注意,centos7默認沒有/etc/sysconfig/network-scripts/ifcfg-br0這個文件]

然后執行systemctl restart network

這時候我的ens33沒有IP地址了,原來的IP地址跑到br0上了。

[root@bogon ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
    link/ether 00:0c:29:45:90:2d brd ff:ff:ff:ff:ff:ff
3: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 52:54:00:2d:9e:9d brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: virbr0-nic: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
    link/ether 52:54:00:2d:9e:9d brd ff:ff:ff:ff:ff:ff
5: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master virbr0 state UNKNOWN group default qlen 1000
    link/ether fe:54:00:55:75:55 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fc54:ff:fe55:7555/64 scope link
       valid_lft forever preferred_lft forever
6: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:0c:29:45:90:2d brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.106/24 brd 192.168.0.255 scope global dynamic br0
       valid_lft 7189sec preferred_lft 7189sec
    inet6 fe80::20c:29ff:fe45:902d/64 scope link
       valid_lft forever preferred_lft forever

1.3.2創建虛機

創建磁盤

mkdir /data

qemu-img  create -f raw -o size=5G /data/tiny-linux.raw

下面開始安裝KVM咯!!!我用的tinylinux,安裝iso只有18MB,還帶桌面環境的~~~反正就是測試嘛~~~里面裝個windows或者ubuntu、centos、freebsd等的都行,隨便你。

virt-install  --virt-type kvm --name Tiny-linux --ram 1024 --cdrom /data/TinyCore-current.iso --disk path=/data/Tiny-linux.raw --network network=br0,model=virtio --graphics vnc,listen=0.0.0.0 --noautoconsole

注意上面的命令network=br0,model=virtio

如果這是你的第二胎,那么端口就是5901了~~~其他都一樣,自己改。

1.4其他命令

virsh start Tiny-linux    #啟動Tiny-linux虛擬機
virsh edit Tiny-linux    #編輯tiny-linux虛擬機
virt-top      #查看虛擬機的top信息

virsh destroy Tiny-linux    #把tiny-linux斷電

virsh undefine Tiny-linux    #把已斷電的tiny-linux虛擬機從數據庫中刪除,不刪除raw磁盤文件
updatedb    #更新locate數據庫
locate Tiny-linux    #哪里有tiny-linux文件,

rm --rf tiny-linux    #刪除關於tiny-linux的一切.故意多寫了一個減號

 

tiny-linux虛擬機的配置文件在/etc/libvirt/qemu/tiny-linux.xml下,不要直接vi,要通過virsh edit tiny-linux來進行編輯,virsh edit調用的vi,編輯方式完全同vi。

 

我剛執行了virt-install.........然后發現光盤掛錯了,然后就可以執行virsh edit tiny-linux
然后增加以下部分
此時再運行virsh start tiny-linux,虛擬機就掛載的cdrom了。

 1.5其他的操作命令

virsh define template.xml  定義一個虛機,並不啟動

virsh suspend tinylinux    #掛起虛機

virsh resume tinylinux    #恢復被掛起的虛機

virsh autostart tinylinux    #讓虛機隨宿主機一起啟動

virsh auotstart --disable tinylinux  #取消虛機隨宿主機一起啟動

virsh dominfo tinylinux    #顯示虛機信息

virsh shutdown tinylinux    #關閉虛機

virsh reboot tinylinux    #重啟虛機

virsh console tinylinux    通過console進入虛機

Ctrl+]    #從虛機的console端口退出

virsh vncdisplay tinylinux    #查看vnc端口

[root@bogon ~]# virsh vncdisplay centos6.5
:0
[root@bogon ~]#yum install -y vnc
[root@bogon ~]#vncviewer 127.0.0.1:0
file /var/lib/libvirt/qemu/*    #查看虛擬機 socket 文件及 save、dump、snapshot 目錄
[root@bogon qemu]# file /var/lib/libvirt/qemu/*
/var/lib/libvirt/qemu/channel:            directory
/var/lib/libvirt/qemu/domain-2-Tiny-linux: directory
/var/lib/libvirt/qemu/domain-3-gentoo:    directory
/var/lib/libvirt/qemu/dump:               directory
/var/lib/libvirt/qemu/nvram:              directory
/var/lib/libvirt/qemu/ram:                directory
/var/lib/libvirt/qemu/save:               directory
/var/lib/libvirt/qemu/snapshot:           directory

虛機配置文件放在/etc/libvirt/qemu/tiny-linux.xml

修改xml文件,開機引導項設置為硬盤,2種方法,推薦第一種

1.virsh edit tinylinux
<os> <type>hvm</type> <boot dev="hd"/> <!-- 虛擬機開機引導項設置為硬盤--> </os>
2.需要3條命令
vi /etc/libvirt/qemu/tiny-linux.xml
 virsh undefine tiny-linux
virsh define tiny-linux

如果想用Virt-manager創建虛機請參考https://www.cnblogs.com/tcicy/p/7790956.html

虛機格式轉換請參考https://www.cnblogs.com/tcicy/p/8522808.html

關閉虛擬機

  如果virsh shutdown不管用的話就再虛擬機里面執行以下命令

yum -y install  acpid
service acpid restart
chkconfig --level 2345 acpid on 
chkconfig acpid --list

1.6刪除虛機

  1.virsh destroy tinylinux  #刪除虛機

  2.virsh undefine tinylinux  #解除標志

  3.rm虛擬機文件(可通過locate tinylinux查找)

重命名虛機  (比較麻煩,一般別折騰)

1.關閉虛機
2.重命名xml文件
cd /etc/libvirt/qemu
virsh dumpxml tinylinux > xxx.xml
3、編輯xxx.xml文件,修改<name>標簽對以及磁盤文件,這里我們將磁盤文件Tiny-linux.raw修改成xxx.raw,把tinylinux改成xxx
4.重命名磁盤文件
cd /var/lib/libvirt/images    (我的路徑是/data/)
mv Tiny-linux.raw xxx.raw
5.數據庫中刪除原虛機,定義新虛機
virsh undefine tinylinux
virsh define /etc/libvirt/qemu/xxx.xml
6.查看
virsh list --all

1.7未完成操作

給虛擬機添加硬盤

  1.物理硬盤

  virsh attach-disk tinylinux  /dev/sdb vbd --driver qemu --mode shareable    #將/dev/sdb給到tinylinux虛機

  #如果虛機是Windows的話會出現 SCSI 設備 (Red Hat VirtIO SCSI Disk Device)驅動在 virtio-win-0.1-15.iso

  virsh detach-disk tinylinux vdb    #卸載硬盤

  2.LVM卷

  lvcreate -n tinydisk -L 50G tinyvbd    #通過lvcreate創建一塊硬盤,硬盤名字為tinydisk,文件名字為tinyvbd

  virsh attach-disk tinylinux /dev/vg_shkvm1/kvm-1-data vdb --driver qemu --mode shareable

更改內存大小

 

更改CPU

 

硬盤擴容

 

更換光盤

virsh attach-disk tinylinux  /path/to/filename.iso hdc --type cdrom


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM