在Linux上部署KVM和使用

2023-11-05

实验前,我们关闭防火墙。

systemctl stop firewalld
systemctl enable firewalld

如果我们之前安装过KVM或者有残余,可以先执行以下命令来清除一下。

yum remove `rpm -qa | egrep 'qemu|virt|KVM'` -y
rm -rf /var/1ib/libvirt /etc/1ibvirt/
yum clean all && yum makecache

清楚后我们在这一个干净环境下来安装KVM。

如果执行下面这条命令什么都没显示

lsmod | grep kvm    #查看是否加载了kvm模块

#grep -E '(vmx|svm)' /proc/cpuinfo
#这条命令也可以查看,显示有vmx或svm就表明支持虚拟化

可以看下虚拟化开启了没有,如果是物理机上的,可以进BIOS界面查看。 

开启后再执行如下图所示:

 

执行下面命令来安装我们的KVM的一些依赖(KVM属于内核态,不需要安装。但是需要一些类似于依赖的)

yum install libvirt virt-install qemu-kvm -y

如果觉得下载慢,我们可以更换阿里源来安装,更换如下:

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo 

 安装好后,我们可以查看它的当前状态

systemctl status libvirtd | grep Active    #查看KVM的状态
systemctl start libvirtd    #开启KVM
virsh list --all     #查看KVM上创建的所有虚拟机
ps -ef|grep dns       
#libvirtd启动了一个dnsmasqp进程用来dhcp连接的,它作用在给虚拟机分配 IP 地址

可以看到,我们刚安装完,状态是active,还没有创建虚拟机,所有列表是空的。

 现在我们上传要安装的镜像文件。

 

mkdir /kvm && mkdir /kvm/qemu       #创建一个存放kvm镜像的目录和存放虚拟机磁盘文件的目录
mv CentOS-7-x86_64-DVD-2009_2.iso /kvm/CentOS-7-x86_64.iso     #把上传的镜像文件移动到kvm目录下

KVM上创建虚拟机

默认NAT模式下创建虚拟机

执行下面命令创建一台虚拟机:

virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /kvm/qemu/centos7.qcow2,format=qcow2,size=5 --cdrom /kvm/CentOS-7-x86_64.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

 创建第一台使用vnc安装时,默认端口为5900开始,之后我们在宿主机上使用VNC Viewer进行后台安装

下载 VNC 查看器 |VNC® 连接 (realvnc.com)

 安装完成后重启就可以登陆使用了

我们再使用命令virsh list --all查看,可以看到centos7名称的虚拟机正在运行中。

配置桥接模式创建虚拟机 

 我们编辑本地网卡ens33,在最后加上BRIDGE="br0"

vi /etc/sysconfig/network-scripts/ifcfg-ens33

#ifcfg-ens33配置文件内容:
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="2abd07e4-4b80-1bfc-9b21-c472d165a888"
DEVICE="ens33"
ONBOOT="yes"
BRIDGE="br0"        #在配置文件最后加上

然后创建桥接网卡br0配置文件,内容如下:

vi /etc/sysconfig/network-scripts/ifcfg-br0

#ifcfg-br0配置文件内容:
DEVICE=br0
TYPE=Bridge
BOOTPROTO=dhcp         
ONBOOT=yes

然后我们重启网络

systemctl restart network

可以看到我们多了一张网卡br0,地址为192.168.10.133 

然后创建虚拟机选择网络模式为桥接:

 virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7-bridge --memory 1024 --vcpus 1 --disk /kvm/qemu/centos7-bridge.qcow2,format=qcow2,size=5 --cdrom /kvm/CentOS-7-x86_64.iso --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole

我们查看一下centos7-bridge的vnc端口号:

virsh vncdisplay centos7-bridge

创建的虚机用VNC连接时从默认端口 5900 开始,即虚拟机一:192.168.10.133:5900 虚拟机二:192.168.10.133:5901。这里查看显示:0代表是5900端口。端口依次+1例如是:5那么代表是5905端口。

注意:如果查看 5900 端口开启,但是 VNC 无法连接 KVM 虚拟机时,看下防火墙是否开启。

用vnc连接进行安装,可以看到我们的网络是桥接br0的网络。

 接下来就是系统的正常安装步骤,这里就不再作过多的详述了。

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

在Linux上部署KVM和使用 的相关文章

  • 为 Linux 编译 Objective-C 应用程序(API 覆盖范围)

    我可能在这里问一些奇怪的问题 但我不确定从哪里开始 问题是我正在考虑使用 Obj C 和 Foundation 类在 Mac 上编写一个命令行工具 但存在一个非常大的风险 那就是我希望能够为不同的 Linux 发行版编译它 以便将来作为服务
  • Linux无法删除文件

    当我找到文件时 我在删除它们时遇到问题 任务 必须找到带有空格的文件并将其删除 我的尝试 rm find L root grep i 但我有错误 rm cannot remove root test No such file or dire
  • Linux 使用 boost asio 拒绝套接字绑定权限

    我在绑定套接字时遇到问题 并且以用户身份运行程序时权限被拒绝 这行代码会产生错误 acceptor new boost asio ip tcp acceptor io boost asio ip tcp endpoint boost asi
  • 仅使用containerd(不使用Docker)修剪容器镜像

    如果我刚刚containerd安装在 Linux 系统上 即 Docker 是not安装 如何删除未使用的容器映像以节省磁盘空间 Docker 就是这么方便docker system prune https docs docker com
  • ALSA:snd_pcm_writei 调用时缓冲区不足

    当运行我最近从灰烬中带回来的旧程序时 我遇到了缓冲区不足的情况 该程序将原始声音文件完全加载到内存中 2100 字节长 525 帧 并准备 ALSA 进行输出 44 1khz 2 通道 有符号 16 位 if err snd pcm set
  • 适用于 Linux 的轻量级 IDE [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 Linux 上以编程方式设置 DNS 名称服务器

    我希望能够通过我的 C C 程序为 Linux 上的 DNS 名称服务器添加 IP 地址 我在一个带有只读 etc resolv conf 的嵌入式平台上 这意味着我不能简单地将 nameserver xxx xxx xxx xxx 行添加
  • 就分页分段内存而言的程序寿命

    我对 x86 Linux 机器中的分段和分页过程有一个令人困惑的概念 如果有人能澄清从开始到结束所涉及的所有步骤 我们将很高兴 x86 使用分页分段内存技术进行内存管理 任何人都可以解释一下从可执行的 elf 格式文件从硬盘加载到主内存到它
  • 如何在 Ubuntu 中创建公共 HTML 文件夹?

    简单的问题 但由于某种原因我无法在谷歌上找到确切的答案 我在 Slicehost 上安装了全新的 Ubuntu 并且想在我的主目录中为包含一堆静态 HTML 文件的简单网站创建一个公共目录 我该怎么做呢 只是打字的问题吗mkdir publ
  • 如何在linux中以编程方式获取dir的大小?

    我想通过 C 程序获取 linux 中特定目录的确切大小 我尝试使用 statfs path struct statfs 但它没有给出确切的大小 我也尝试过 stat 但它返回任何目录的大小为 4096 请建议我如何获取 dir 的确切大小
  • 如何阻止ubuntu在使用apt安装或更新软件包时弹出“Daemons using outdatedlibraries”? [关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我最近新安装了 Ubuntu 22 04 LTS 我发现每次使用 apt 安装或更新软件包时 它都会询问我有关Which servic
  • 从 ttyUSB0 写入和读取,无法得到响应

    我对 Linux tty 不太有经验 我的环境是带有丰富 USB 串行的 Raspbian 什么有效 stty F dev ttyUSB0 38400 cu l dev ttyUSB0 s 38400 cu to dev ttyUSB0作品
  • 使用循环在 C 中管道传输两个或多个 shell 命令

    我正在尝试执行ls wc l通过 C 语言程序 而不是使用命令行 这是我当前的工作代码 int main int pfds 2 pipe pfds pid t pid fork if pid 0 The child process clos
  • 并行运行 shell 脚本

    我有一个 shell 脚本 打乱大型文本文件 600 万行和 6 列 根据第一列对文件进行排序 输出 1000 个文件 所以伪代码看起来像这样 file1 sh bin bash for i in seq 1 1000 do Generat
  • 使用 MAX_ORDER / 包含 mmzone.h

    根据https www kernel org doc Documentation networking packet mmap txt https www kernel org doc Documentation networking pa
  • 在 Mono 上运行 .Net MVC5 应用程序

    我正在 Windows 上的 Visual Studio 2013 中开发 Net 4 5 1 MVC5 应用程序 现在我想知道 是否可以在Linux Ubuntu 12 04 上运行这个应用程序 可以使用OWIN吗 Owin 可以自托管运
  • 内核的panic()函数是否完全冻结所有其他进程?

    我想确认内核的panic 功能和其他类似kernel halt and machine halt 一旦触发 保证机器完全冻结 那么 所有的内核和用户进程都被冻结了吗 是panic 可以被调度程序中断吗 中断处理程序仍然可以执行吗 用例 如果
  • 静态方法的 Java 内存模型

    我来自操作系统和 C 语言背景 在代码编译时 世界很简单 需要处理和理解堆栈 堆文本部分等 当我开始学习 Java 时 我确实了解 JVM 和垃圾收集器 我对静态方法感到很有趣 根据我的理解 类的所有实例都会在堆中创建 然后被清理 但是 对
  • 配置tomat的server.xml文件并自动生成mod_jk.conf

    我在用apache 2 2 15 and tomcat6 6 0 24 on CentOS 6 4并希望使用 tomcat 服务器的功能 通过添加以下内容自动生成 mod jk conf 文件
  • 如何在 *nix 中登录时运行脚本?

    我知道我曾经知道如何做到这一点 但是 如何在 unix 中登录时运行脚本 bash 可以 From 维基百科 Bash http en wikipedia org wiki Bash 28Unix shell 29 当 Bash 启动时 它

随机推荐

  • 数据库(DDL)

    数据库 一 数据库类型 1 关系型数据库 Oracle 银行 政府 MySQL 最广泛 2 非关系型数据库 redis mongodb 二 数据库的核心元素 1 sql 关系型的数据库语言 结构化查询语言 2 Mysql 具体的数据库 3
  • vue3+Element-plus 动态路由配置

    使用vue3 Element plus 进行动态路由配置 首先来看一下路由结构 免得出现疑惑 const routes path login name Login meta title 登录页面 component gt import vi
  • 前端整合图片上传组件

    复制头像上传组件 从vue element admin复制组件 vue element admin src components ImageCropper vue element admin src components PanThumb
  • 流媒体之播放flv格式的视频

    起因 项目之前支持高清预览 但是不支持flv格式的视频 所以 为了让他支持flv格式 我去整理了一些相关资料 发现 有两种方式 一个是采用插件 一个是使用b站开源的flv js 详情见下 flv js简介 Flv js 是 HTML5 Fl
  • vue自定义穿梭框支持远程滚动加载

    欢迎点击领取 前端面试题进阶指南 前端登顶之巅 最全面的前端知识点梳理总结 分享一个使用比较久的 技术框架公司的选型 老项目 vue2 iview ui 方案的实现思路是共性的 展现UI样式需要你们自定义进行更改 因为iview是全局注入
  • WSL 配置中文输入法

    1 安装输入法 sudo apt install dbus x11 im config fonts noto fcitx fcitx pinyin fcitx sunpinyin fitx googlepinyin 2 设置自动启动 命令行
  • 深入解析G1垃圾收集器与性能优化

    本文详细介绍G1垃圾收集器的参数配置 如何进行性能调优 以及怎样对GC性能进行分析和评估 文章目录 0 G1简介 1 垃圾回收阶段简介 2 纯年轻代模式的垃圾收集 3 混合模式的垃圾收集 4 标记周期的各个阶段 5 常用参数与默认值 XX
  • 整合Windows 7 / server 2008更新补丁包

    哈喽 大家好 今天主要是给学习win7和server2008的小伙伴准备的一样好东西 UpdatePack7R2 这是是由俄罗斯大神Simplix制作的Windows 7 和 server 2008的更新补丁离线安装包 里面整合了Windo
  • 数组中子数组和为固定值的题目汇总

    开头附件一部分数组去重的知识 C 中数组 Vector中去除重复元素 unique函数是一个去重函数 去除相邻中的重复元素 只留一个 其中 最关键的是 并不是删除并不是把重复的元素删除 而是全部放倒数组的后面 因为 unique只是去除 相
  • linux查询端口冲突情况

    1 netstat anp grep 80 输出 unix 2 ACC STREAM LISTENING 48026 7112 master private tlsmgr 若 出现LISTEN则冲突 LISTENING正常
  • 01-----关于更换网络之后,xshell无法连接虚拟机(之前还能连接)

    1 解析 我本来在一个网络中是正常能使用xshell连接我的本地虚拟机的 但是后面回到家里的wifi后 突然就连不上了 经过排查 发现是新的wifi的与原本建立好的网络环境不一致 具体是ip不在同一网段 重新配置一下 例如我是这样操作的 看
  • Visual studio Code的clangd插件一篇通,上乘的C/C++开发环境配置

    系列文章 Visual studio Code的C C 开发环境搭建 Visual studio Code的clangd插件一篇通 上乘的C C 开发环境配置 苦于微软出品的 C C 插件久矣 时不时就会出现代码提示失效 跳转失败的问题 现
  • 算法实现之二叉树的前序、中序、后序递归和非递归遍历以及层序遍历

    概述 二叉树是每个节点最多有两个子树的树结构 通常子树被称作左子树和右子树 二叉树的遍历通常分为 前序遍历 中序遍历 后序遍历和层序遍历 前序遍历 前序递归遍历算法 访问根结点 gt 递归遍历根结点的左子树 gt 递归遍历根结点的右子树 中
  • linux tr命令完整,linux tr命令详解

    tr命令可以对来自标准输入的字符进行替换 压缩和删除 下面由学习啦小编为大家整理了linux tr命令的相关知识 希望对大家有帮助 linux tr命令用途 tr命令可以对来自标准输入的字符进行替换 压缩和删除 它可以将一组字符变成另一组字
  • 大数据分析——云南的花样之旅

    认真阅读过小伙伴们的评论 最终将我们此行的目的地定在了山清水秀的云南了 对于从小生活在北方的小编 对云南还是抱着不小的憧憬呢 下面就来看看数据人员给出的官方数据吧 首先我们就来说说久负盛名的云南大理吧 先看一下数据 看了下数据结果 小编才知
  • 【好工具】不需要知道地址,一个命令就能下载任何文件,它不香吗?

    今天介绍一款浏览器插件 可以直接将文件的下载链接直接转换成 Linux 命令 方便无操作界面的电脑下载无直链的文件 作者 编辑 Leong 导言 使用过 Linux 的朋友可能知道 大部分软件都是不支持 Linux 系统的 Windows系
  • List及String类的Contains方法底层源码解析

    public boolean Contains Object o 此处的o即为contains方法中的参数对象 return indexOf o gt 0 如果数值 gt 0 则返回true public int indexOf Objec
  • mysql中的Date日期格式的问题:只有日期没有时间及格式化时间

    只有日期没有时间 把xml中的date改为timestamp 格式化最简单的方法 JsonFormat pattern yyyy MM dd HH mm ss timezone GMT 8 转载于 https www cnblogs com
  • day7pyecharts制图-组合图

    Pyecharts制图 标题一 柱状图 导入柱状图的类 from pyecharts charts import Bar 导入图标配置类 from pyecharts import options 基本的柱状图 1 创建图标对象 bar B
  • 在Linux上部署KVM和使用

    实验前 我们关闭防火墙 systemctl stop firewalld systemctl enable firewalld 如果我们之前安装过KVM或者有残余 可以先执行以下命令来清除一下 yum remove rpm qa egrep