热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

vmwareworkstation14嵌套安装kvm

我在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,一定要配置以下

vmware workstation14嵌套安装kvm

 

 然后执行以下命令就可以安装kvm了

vmware workstation14嵌套安装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

vmware workstation14嵌套安装kvm

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:  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:  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:  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:  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:  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:  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
然后增加以下部分
vmware workstation14嵌套安装kvm
此时再运行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
hvm "hd"/>
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文件,修改标签对以及磁盘文件,这里我们将磁盘文件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


推荐阅读
  • 从理想主义者的内心深处萌发的技术信仰,推动了云原生技术在全球范围内的快速发展。本文将带你深入了解阿里巴巴在开源领域的贡献与成就。 ... [详细]
  • 长期从事ABAP开发工作的专业人士,在面对行业新趋势时,往往需要重新审视自己的发展方向。本文探讨了几位资深专家对ABAP未来走向的看法,以及开发者应如何调整技能以适应新的技术环境。 ... [详细]
  • JUnit下的测试和suite
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • OBS Studio自动化实践:利用脚本批量生成录制场景
    本文探讨了如何利用OBS Studio进行高效录屏,并通过脚本实现场景的自动生成。适合对自动化办公感兴趣的读者。 ... [详细]
  • 小编给大家分享一下Vue3中如何提高开发效率,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获, ... [详细]
  • 函子(Functor)是函数式编程中的一个重要概念,它不仅是一个特殊的容器,还提供了一种优雅的方式来处理值和函数。本文将详细介绍函子的基本概念及其在函数式编程中的应用,包括如何通过函子控制副作用、处理异常以及进行异步操作。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • CRZ.im:一款极简的网址缩短服务及其安装指南
    本文介绍了一款名为CRZ.im的极简网址缩短服务,该服务采用PHP和SQLite开发,体积小巧,约10KB。本文还提供了详细的安装步骤,包括环境配置、域名解析及Nginx伪静态设置。 ... [详细]
  • 本文介绍了SELinux的两种主要工作模式——强制模式和宽容模式,并提供了如何在CentOS 7中正确启用和配置SELinux的方法,以及在遇到登录问题时的解决策略。 ... [详细]
  • Irish budget airline Ryanair announced plans to significantly increase its route network from Frankfurt Airport, marking a direct challenge to Lufthansa, Germany's leading carrier. ... [详细]
  • 在执行市场篮子分析时遇到性能瓶颈,尤其是在设定频繁项集的支持度阈值为1%时。本文探讨了如何通过调整代码和参数来提高分析效率。 ... [详细]
  • 本文介绍了如何通过C#语言调用动态链接库(DLL)中的函数来实现IC卡的基本操作,包括初始化设备、设置密码模式、获取设备状态等,并详细展示了将TextBox中的数据写入IC卡的具体实现方法。 ... [详细]
  • spring boot使用jetty无法启动 ... [详细]
  • 本文探讨了在SQL Server中处理几何类型列时遇到的INTERSECT操作限制,并提供了解决方案,包括通过转换数据类型和使用额外表结构的方法。 ... [详细]
  • Android与JUnit集成测试实践
    本文探讨了如何在Android项目中集成JUnit进行单元测试,并详细介绍了修改AndroidManifest.xml文件以支持测试的方法。 ... [详细]
author-avatar
ozkan_75889
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有