KVM使用入门

2023-11-15

KVM虚拟化

KVM在使用的时候必须是硬件支持虚拟化的,要确保使用的宿主机或实体机支持硬件虚拟化技术

 环境搭建

我在VMware里装了个centos7,把centos7当做宿主机使用

  1. 关闭selinux
vi /etc/selinux/config
SELINUX=disabled
  1. 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
  1. 开启虚拟化

在这里插入图片描述

  1. 查看虚拟机实例是否支持硬件虚拟化技术

egrep ‘(vmx|svm)’ /proc/cpuinfo
如果有输出则说明硬件支持虚拟化技术,vmx表示INTER系列CPU支持的类型,svm表示ADM系列CPU支持的类型
在这里插入图片描述

  1. 安装qemu-kvm

kvm只能实现cpu和内存的虚拟化,并不能模拟其他设备
qemu-kvm弥补了其缺陷,不仅满足了cpu和内存的虚拟化,还能虚拟I/O设备

yum install qemu-kvm qemu-img -y

安装完之后,发现qemu-kvm工具并没有加入到环境变量中去,可以连接到 /usr/sbin中去,方便后续的使用
ln -s /usr/libexec/qemu-kvm /usr/sbin/
同时还需要在windows操作机中安装vncviewer来配合qemu-kvm使用
百度下载即可https://www.realvnc.com/en/connect/download/viewer/
安装完之后是这样的
在这里插入图片描述

 了解qemu-kvm参数

-h:显示帮助手册
#qemu-system-x86_64 -h:会显示所有参数
1.cpu相关参数
-cpu:指定cpu模型,默认的为qemu64,可以通过“-cpu ?”查询当前支持的cpu模型
-smp:设置虚拟机的vcpu个数。后面还可以加cores threads socke.

2.内存相关参数
-m:设置虚拟机内存大小,默认单位为MB。
-mem-path patch:指定从path路径表示的临时文件中为guest分配内存。
-mem-prealloc:启动时即分配全部内存,而不是根据guest请求动态分配,与-mem-path参数配合使用。
-balloon:开全内存balloon功能,俗称内存气球。

3.磁盘相关参数
-hda、-hdb和cdrom等:设置虚拟机的IDE磁盘和光盘设置。
-driver:配置驱动器。
-boot:设置虚拟机的启动选项

4.网络相关参数
-net nic:为虚拟机创建一个nic网卡
-net user:让虚拟机使用不需要管理权限的用户模式网络(user mode network).
-net tap:使用host的tap网络接口来帮助guest建立网络。
-net none:不配置任何网络设备。

5.图形显示参数
-sdl:使用sdl方式显示客户机。
-vnc:使用vnc方式显示客户机。
-vga:设置虚拟机中的vga显卡类型,默认为“-vga cirrus”.
-nographic:关闭qemu的图形化界面输出。

6.其他常用参数
-noreboot:guest执行reboot操作时,系统关闭后退出qemu-kvm,而不会再启动虚拟机。
-no-shutdown:虚拟机shutdown后,系统关闭后,不退出qemu-kvm进程,保持这个进程存在,他的monitor仍然可以用。
-loadvm:加载快照状态,与monitor中的“loadvm”命令类似
-nodefaults:不创建默认的设备。默认会创建一些显卡、串口、控制台等设备
-readconfig:从文件中读虚拟机设备的配置信息。
-writeconfig:将虚拟机的配置信息写到文件中。
-nodedefconfig:不加载默认的配置文件。默认会加载/use/local/share/qemu下的文件。
-no-user-config:不加载用户自定义的配置文件。
-usbdevice:使用usb设备

 创建虚拟机实例

一、linux(以centos7.3 1611为例)

  1. 查看镜像的信息
qemu-img info CentOS-7-x86_64-Minimal-1611.iso

在这里插入图片描述

  1. 创建虚拟磁盘,指定镜像的格式、名字、大小
qemu-img create -f qcow2 centos7.qcow2 20G

在这里插入图片描述

  1. 制作镜像,将系统安装盘挂到 cdrom,安装操作系统
qemu-kvm -m 2048 -boot d -cdrom CentOS-7-x86_64-Minimal-1611.iso -drive file=centos7.qcow2  -nographic -vnc :5

-m 2048 分配2048M的内存
-boot d 从光盘启动,d表示光盘,c表示硬盘,a,b表示软盘,默认是硬盘启动
-drive file=centos.qcow2 使用虚拟磁盘的文件
-nographic 关闭qemu的图形化界面输出

执行完之后是这样的

在这里插入图片描述
这里就要用到vnc viewer了,vnc的端口是从5900开始,我在命令中设置了-vnc :5,所以要连接5905,然后正常装系统
在这里插入图片描述
装完之后kill掉进程

qemu-kvm创建虚拟机时,已经配置了2个驱动设备,一个是硬盘设备,一个是光驱设备,只有移除光驱设备,系统才能使用磁盘设备启动

  1. 启动已制作的linux镜像
qemu-kvm -m 2048 -smp 2 -drive file=centos7.qcow2,if=virtio,index=1 -nographic -vnc :5

-smp 2 处理器的个数,也可以设置cores threds sockets,即每个cpu的核心数以及cpu的线程数
if=virtio 指定硬盘设备所连接的接口类型
index=1 指定接口类型的标识号

在这里插入图片描述
这样启动的镜像是无法与宿主机通网的,需要在宿主机中配置桥接模式

桥接网络

  1. 安装包
yum install bridge-utils -y
  1. 在宿主机上创建一个网桥
brctl addbr virbr0   
  1. 将其绑定到一个可以正常工作的网络接口上
brctl addif virbr0 ens37
  1. 新建一个网卡脚本,使虚拟机网卡自动添加网桥
vi /etc/qemu-ifup
#!/bin/bash
ip link set $1 up
brctl addif virbr0 $1

同时设置执行权限,开启桥接网卡

chmod a+x /etc/qemu-ifup
ip link set virbr0 up
  1. 再次启动制作的镜像
qemu-kvm -m 2048 -smp 2 -drive file=centos7.qcow2,if=virtio,index=1 -net nic -net tap -nographic -vnc :5

-net nic 是必需的参数,表明这是一个网卡的配置
-net tap 通过物理的TAP网络接口连接至vlan n

通过vnc viewer连接之后,虚拟机与宿主机可以互通

在这里插入图片描述
同时宿主机中新增了一块网卡tap0

在这里插入图片描述

二、windows(以win10为例)

步骤与创建Linux镜像大致相同,需要注意的是,windows镜像需要配置驱动,下载地址

https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/
  1. 创建虚拟磁盘
qemu-img create -f qcow2 win10.qcow2 20G
  1. 创建镜像
qemu-kvm -m 2048 -boot d -cdrom win10.iso -drive file=virtio-win.iso,media=cdrom -drive file=win10.qcow2,if=virtio,index=1 -usbdevice tablet -nographic -vnc :5

-usbdevice tablet 添加usb设备,鼠标

在这里插入图片描述

选择驱动(我用的光驱安装驱动”-drive file=virtio-win.iso”)
在这里插入图片描述
安装完毕之后关闭进程
在这里插入图片描述

  1. 启动制作的win10镜像
qemu-kvm -m 2048 -smp 2 -drive file=win10.qcow2,if=virtio,index=1 -net nic -net tap -usbdevice tablet -nographic -vnc :5

开启之后根据需要配置即可
在这里插入图片描述
由于配置了桥接网络,镜像与宿主机可以互通

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

KVM使用入门 的相关文章

  • 49个Python的常见操作/技巧/例子

    17个Python的常见操作 技巧 很多读者都知道 Python 是一种高级编程语言 其设计的核心理念是代码的易读性 以及允许编程者通过若干行代码轻松表达想法创意 实际上 很多人选择学习 Python 的首要原因是其编程的优美性 用它编码和
  • 《pigcms v6.2最新完美至尊版无任何限制,小猪微信源码多用户微信营销服务平台系统》

    pigcms v6 2最新完美至尊版无任何限制 小猪微信源码多用户微信营销服务平台系统 前两天分享了套小猪CMS PigCms 多用户微信营销服务平台系统V6 1完美破解至尊版带微用户管理CRM 微信支付 还是不少童鞋反应出不少问题 今天再
  • unity-障碍物和空气墙的设置

    文章目录 建立空气墙 建立空气墙 建个游戏对象 然后给他添加2d碰撞盒子属性 把它放到相机下面 让它成为相机的所属的子组 跟随相机一起移动通过 创建新的标签便于碰撞确认操作 判断我们游戏操控的物体是否在空气墙上 判断是否处于空气墙上面 pr
  • 每日必看的五个产品科技类网站?

    1 Github 看看 GitHub 社区今天最热门的是什么 https github com trending 2 v2ex 会有一些新的互联网产品发布在这里 偶尔会附带免费的激活码 3 producthunt 看看今天有什么新的创业产品
  • Maven Pom设置简单项目打jar包时的入口类

    Maven Pom设置简单项目打jar包时的入口类 有时 不使用框架的简单的项目也要以jar包的形式发布和使用 如果不知道如何在pom中设置项目的入口类 就比较麻烦 在pom文件中添加如下代码 就可以设置项目的入口类了 当然 入口类中要有m
  • miniconda的安装和python环境搭建

    文章目录 前言 下载minianaconda 安装和配置 安装注意 配置 更改镜像源 创建虚拟环境和激活 conda常用指令 前言 最近想用python去写一个写ini配置文件的工具 由于电脑现在的环境是python2的 想用python3
  • AES加密出现Error: Malformed UTF-8 data报错的解决方法

    按我上一章 vue java 使用AES 前后端加密解密 址址 https blog csdn net weixin 42124196 article details 88416488 文章进行aes加密的项目 当页面获取数据时一直出现Er
  • java aio和nio的区别

    AIO 是彻底的异步通信 NIO 是同步非阻塞通信 有一个经典的举例 烧开水 假设有这么一个场景 有一排水壶 客户 在烧水 AIO的做法是 每个水壶上装一个开关 当水开了以后会提醒对应的线程去处理 NIO的做法是 叫一个线程不停的循环观察每
  • OpenMV的程序烧录

    OpenMV官方烧录教程 OpenMV脱机运行 星瞳科技 利用数据线连接OpenMV和电脑 如果OpenMV闪烁绿灯 之后是白灯 再结束 表示OpenMV连接电脑成功 打开OpenMV IDE 点击左下方的这个 或者按Ctrl E连接上Op
  • Acwing-3443. 学分绩点

    include
  • 超微主板升级bios_超微 X10DAi安装黑苹果10.13.6 OC引导

    配置 处理器 英特尔 Xeon 至强 E5 2650 v4主板 超微 X10DAI Wellsburg 内存 64 GB 三星 DDR4 2133MHz 主硬盘 Lexar 500GB SSD 500 GB 固态硬盘 主显卡 Nvidia
  • openwrt php 调用,openwrt在脚本中调用UCI接口, 非常值得学习

    bin sh Copyright C 2006 2013 OpenWrt org Copyright C 2006 Fokus Fraunhofer Copyright C 2010 Vertical Communications debu
  • nvidia tx/xavier/orin硬件平台上添加开机启动程

    概述 随着NVIDIA的xavier及orin系列硬件平行推出 自动驾驶车端处理器也逐渐频繁开发及使用 开机脚本使用 etc profile 通常在系统登录时 会执行 多次登录 多次执行 xavier上增加开机启动脚本 不能在 etc pr
  • 记录解压zip文件

    zip文件有30G unzip不能用 改用jar解压 unzip 解压 JPEGImages zip 文件时 异常提示如下 Archive dataset test rgb zip End of central directory sign
  • 隐藏Chrome浏览器新增标签页下方的快捷方式缩略图

    作为强迫症患者不喜欢搜索栏下方还有多余的东西 看着8个最近访问的快捷方式缩略图太不舒服了 在网上搜索了一堆方法 最有效的是替换一个PAK文件 但是过程有些繁琐 自己摸索后发现了一个简单的方法 在这记录一下以防自己忘记 查看设置中搜索引擎的地

随机推荐

  • 8种常见的排序算法-----你值得掌握(很细,很全)

    目录 一 排序的概念 二 常见的排序 三 常见排序算法的实现 1 插入排序 1 1 基本思想 1 2直接插入排序动态图 1 3直接插入排序的代码实现 2 希尔排序 2 1基本思想 2 2希尔排序过程 2 3希尔排序代码实现 2 4gap的选
  • CVPR2019接收结果公布了,但CVPR 2018的那些论文都怎么样了?

    CVPR 作为计算机视觉三大顶级会议之一 一直以来都备受关注 被 CVPR 收录的论文更是代表了计算机视觉领域的最新发展方向和水平 今年 CVPR 2019 将于美国洛杉矶举办 上个月接收结果公布后 又引起了 CV 届的一个小高潮 一时间涌
  • arxiv文章下载

    使用中科院arxiv的镜像地址 http xxx itp ac cn 地址由 https arxiv org pdf 1512 02325 pdf 切换到 http xxx itp ac cn pdf 1512 02325 pdf
  • 异步通知实验(信号)

    目录 异步通知 异步通知简介 驱动中的信号处理 应用程序对异步通知的处理 硬件原理图分析 实验程序编写 修改设备树文件 程序编写 编写测试APP 运行测试 编译驱动程序和测试APP 运行测试 在前面使用阻塞或者非阻塞的方式来读取驱动中按键值
  • 单片机知识总结,51中断秘籍(外部中断,定时器中断,定时器计数),串口通信秘籍【1000字】【原创】

    文章目录 1 普中科技开发板 2 中断寄存器配置详解 截图 3 中断寄存器配置文字总结 4 文字总结2 5 文字总结3 6 代码函数示例 1 外部中断0初始化函数 2 外部中断1初始化函数 3 定时器中断0初始化函数 4 定时器中断1初始化
  • 大语言模型之一 Attention is all you need ---Transformer

    大语言模型已经在很多领域大显身手 其应用包括只能写作 音乐创作 知识问答 聊天 客服 广告文案 论文 新闻 小说创作 润色 会议 文章摘要等等领域 在商业上模型即产品 服务即产品 插件即产品 任何形态的用户可触及的都可以是产品 商业付费一般
  • 性能:15个JavaScript本地存储技术的函数库和工具

    当构建更复杂的JavaScript应用程序运行在用户的浏览器是非常有用的 它可以在浏览器中存储信息 这样的信息可以被共享在不同的页面 浏览会话 在最近的过去 这将有可能只被cookies文本文件保存到用户的计算机 管理这些JavaScrip
  • 手把手实战react + storybook组件库

    引入 在UI组件库的开发过程中 如何方便的展示组件 测试组件 编写文档呢 storybook就提供了这样一种工具 利用它我们可以更方便地进行UI组件开发 最近一直在研究react react和storybook的碰撞会是怎么样的呢 下面将从
  • 防止内卷和被潜规则,Spring Cloud Alibaba微服务架构实战派(上下册)|35岁程序员那些事

    目录 1 写书缘由 2 本书上册核心内容 2 1 Spring Cloud Alibaba基础实战 2 1 1 主要内容 2 1 2 MyBatis Plus实现多租户架构的核心原理 2 2 分布式服务治理 基于Nacos 2 2 1 主要
  • unity资源商店出现“抱歉,此链接不再有效”怎么办

    首先 返回资源商店首页 登录自己的账号就可以了
  • 解决room重复插入数据

    我设置的是消息时间为主键 消息时间 NonNull PrimaryKey private String messageTime 插入的时候如果重复则替换 Insert onConflict OnConflictStrategy REPLAC
  • visual basic_什么是Visual Basic?

    visual basic In 2008 Microsoft stopped support for VB and declared it a Legacy software Feel free to read this article w
  • SQL server 查汉字和字符长度

    len 一个汉字 一个字符 SELECT len 喷涂黑 喷涂黑 显示为 datalength 一个汉字 两个字符 SELECT datalength 喷涂黑 喷涂黑 显示为
  • vue虚拟列表实现原理

    vue中实现一个虚拟列表 应用场景 前端的业务开发中会遇到不使用分页方式来加载长列表的需求 如在数据长度大于 1000 条情况 DOM 元素的创建和渲染需要的时间成本很高 完整渲染列表所需要的时间不可接受 同时会存在滚动时卡顿问题 解决该卡
  • iOS14 修改启动视图为全屏模式

    iOS14里面启动一个视图其会默认以非全屏模式打开 有些时候需要全屏展示 该如何修改 修改示例 let secondVC SecondViewController secondVC modalPresentationStyle fullSc
  • linux之安装Apache服务

    1 在镜像中查找web服务 2 安装web服务 3 关闭防火墙和selinux 4 启动服务 5 测试服务 6 配置文件 292行 302行 402行 7 创建文件并进入 8 配置wyg文件 9 重启服务 查看服务
  • 某站弹幕Protobuf协议逆向分析

    一杯敬明天 一杯敬过往 大家好 我是TheWeiJun 时间过得好快 转眼间春节已过 此刻大家都已经开始复工了吧 首先祝大家新年快乐 2023年一路旺旺旺 小编也是心情激动 才有了前面的开场白 直入主题 今天给大家带来某站弹幕protobu
  • tomcat漏洞之任意文件上传(CVE-2017-12615)

    目录 一 漏洞介绍 二 影响版本 三 原理分析 四 环境搭建 五 利用漏洞上传文件 四个方法 1 在文件名后面添加斜杠 来进行绕过 2 在文件名后面添加 20 来进行绕过 3 在文件名后面添加 DATA来进行绕过 4 上传哥斯特生产的jsp
  • IDEA设置控制台字体大小以及换行不换行(美观)

    一 设置控制台大小 1 左上角 File gt Settings 2 找到 Editor gt Color Scheme gt Console Font 勾选Use 就能根据自己设置字体大小了 二 控制台字体换行 1 如下是换行了 打印的结
  • KVM使用入门

    KVM虚拟化 KVM在使用的时候必须是硬件支持虚拟化的 要确保使用的宿主机或实体机支持硬件虚拟化技术 环境搭建 我在VMware里装了个centos7 把centos7当做宿主机使用 关闭selinux vi etc selinux con