杂货铺 | KVM虚拟化环境的配置 初步实现两种Guest OS虚拟机的部署

news/2024/5/19 14:53:38

文章目录

  • 📚在ubuntu系统的虚拟机上挂载CentOS操作系统的客户机
    • 🐇下载镜像并配置虚拟机
    • 🐇开启虚拟机,检查CPU是否支持虚拟化
    • 🐇查看是否加载KVM模块
    • 🐇关闭selinux
    • 🐇安装KVM相关软件包
    • 🐇启动 libvirt 并设置开机自启动
    • 🐇将iso文件拖入虚拟机
    • 🐇关闭 NetworkManager
    • 🐇安装虚拟机
  • 📚在ubuntu系统的虚拟机上挂载ubuntu操作系统的客户机

📚在ubuntu系统的虚拟机上挂载CentOS操作系统的客户机

  • 软件环境:VMware, CentOS, ubuntu, Linux。
  • 参考博客是采用图形化界面,但我最后创建虚拟机的时候virt-manager图形化连接不上,然后最后用一段命令行成功部署了(但是最后成功部署之后virt-manager又可以显示emmm,而且也可以连了…I don’t know…
  • 这里对我做的所有操作做一个记录。(有一些可能因为后续图形化界面用不上或许不一定需要,但我不太确定具体哪些步骤可以删去,干脆就都写上了┭┮﹏┭┮

🐇下载镜像并配置虚拟机

  • CentOS镜像下载
    在这里插入图片描述

  • ubuntu镜像下载(这里是18.04.6,但其他版本应该也可)
    在这里插入图片描述

  • 配置ubuntu系统的虚拟机
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 等一会(有一点久的一会儿)安装完成后关机,修改虚拟机设置。
    在这里插入图片描述

🐇开启虚拟机,检查CPU是否支持虚拟化

可能会出现VM报错:不支持虚拟化的 amd-v/rvi。解决方法:

  • ①在控制面板程序启用或关闭Windows功能,然后将所有关于虚拟机的功能全部关闭(我这边遇到的就只有Windows虚拟机监控程序平台 + 虚拟机平台)。
    在这里插入图片描述
  • ②打开 Windows 安全中心设备安全性内核隔离内核隔离详细信息,然后将内存完整性保持关闭。
    在这里插入图片描述
  • 检查CPU是否支持虚拟化
    cat /proc/cpuinfolegrep 'vmxlsvm'
    
    在这里插入图片描述

🐇查看是否加载KVM模块

lsmod | grep kvm

在这里插入图片描述

  • 如果不加载,执行modprobe kvm

🐇关闭selinux

  • 新虚拟机要安装vim

    sudo apt install vim
    

    在这里插入图片描述

  • 更新config内容

    vim /etc/selinux/config
    

    在这里插入图片描述

    • 输入,退出按Esc后输入:wq!
      SELINUX=disabled
      SELINUXTYPE=targeted
      

🐇安装KVM相关软件包

sudo apt install qemu-img virt-manager libvirt libvirt-python virt.manager libvirt-client virt-install virt-viewer -y

在这里插入图片描述

sudo apt install qemu-utils -y

在这里插入图片描述

sudo apt install libvirt-bin libvirt-python libvirt-client -y

在这里插入图片描述

sudo apt install libvirt-daemon libvirt-daemon-system libvirt-cients python3-libvirt -y

在这里插入图片描述

sudo apt install virt-manager virt-install virt-viewer -y

在这里插入图片描述

sudo apt-get install libvirt-bin

在这里插入图片描述

🐇启动 libvirt 并设置开机自启动

在这里插入图片描述

sudo systemctl start libvirtd

在这里插入图片描述

sudo systemctl enable libvirtd

在这里插入图片描述

🐇将iso文件拖入虚拟机

  • 我的虚拟机可以直接拖入。
  • 如果不能直接拖就要配置共享文件夹(or 直接QQ邮箱发送,用虚拟机里的火狐浏览器打开接收)。
    在这里插入图片描述

🐇关闭 NetworkManager

sudo apt install net-tools

在这里插入图片描述

sudo systemctl disable NetworkManager

在这里插入图片描述

sudo systemctl stop NetworkManager

在这里插入图片描述

sudo systemctl status NetworkManager

在这里插入图片描述

  • 这里最后会卡住(Ctrl+C退出)
sudo apt install virt-manager

在这里插入图片描述

  • 然后本来应该是开始图形化界面了,但是我的virt-manage新建虚拟机显示error(噢,愤怒的我居然没截图),本来应该是这样↓
    在这里插入图片描述

🐇安装虚拟机

  • 采用以下代码直接终端输入
    sudo virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name vm01-host01 --memory 1024 --vcpus 1 --disk /opt/vm01-host01.raw,format=raw,size=4 --cdrom /home/lalayouyi/Desktop/CentOS-7-x86_64-DVD-2009.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
    
    在这里插入图片描述
  • Properties查看对应路径
    在这里插入图片描述
  • 成功应该是这样
    在这里插入图片描述
  • sudo virsh list --all,可查看客户机。
    在这里插入图片描述

📚在ubuntu系统的虚拟机上挂载ubuntu操作系统的客户机

  • 同样采用以下代码直接终端输入(记得改Name,路径同样改为对应路径)
    sudo virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name vm01-host02 --memory 1024 --vcpus 1 --disk /opt/vm01-host02.raw,format=raw,size=4 --cdrom /home/lalayouyi/Desktop/ubuntu-18.04.6-desktop-amd64.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole
    
    在这里插入图片描述
    在这里插入图片描述
  • sudo virsh list --all
    在这里插入图片描述

  • 以上,完成两种Guest OS虚拟机的部署。通过配置和部署 KVM 虚拟化环境,我们可以“轻松”地创建多个虚拟机并且在不同的虚拟机之间进行切换。可以在同一个物理机上运行多个不同的操作系统虚拟机。
    在这里插入图片描述

  • 有趣的来了,现在的virt-manager可以用了o( ̄︶ ̄)o,它不仅可以看还可以新建诶~
    在这里插入图片描述
    在这里插入图片描述


http://www.mrgr.cn/p/68132345

相关文章

DRF之View和APIView

【零】DRF在Django项目中的使用 【1】导入 # DRF需要使用pip install 安装 pip install djangorestframeworkDRF(Django Rest Framework)是一个用于构建 Web API 的工具包,它是基于 Django 框架的一个第三方应用(app) 在 Django 项目中,一个应用(app)通常是一个具有特定…

删除顺序表L中下标为p(0≤p≤length-1)的元素,成功返回1,否则返回0,并将被删除元素的值赋给e

删除顺序表L中下标为p(0≤p≤length-1)的元素,成功返回1,否则返回0,并将被删除元素的值赋给e/******************************************************************************************************** * * file name: Zqh_splist_4.22.2.c * author : keyword2024…

HarmonyOS NEXT应用开发案例—使用弹簧曲线实现抖动动画及手机振动效果案例

介绍 本示例介绍使用vibrator.startVibration方法实现手机振动效果,用animateTo显示动画实现点击后的抖动动画。 效果图预览使用说明加载完成后显示登录界面,未勾选协议时点击一键登录按钮会触发手机振动效果和提示文本的抖动动画。实现思路创建一个函数startVibrate()调用vi…

删除最小值结点

/******************************************************** name : DelTargetNode* function : 删除单链表L(有头结点)中的一个最小值结点* argument* @L :链表头结点的地址** retval : None* author : Dazz* date : 2024/4/22* …

【C++】适配器· 优先级队列 仿函数 反向迭代器

目录 适配器:适配器的应用:1. 优先级队列:仿函数:更深入的了解仿函数:一个关于不容易被注意的知识点: 2. 反向迭代器:(list为例) 适配器: 我们先来谈来一下容…

Hive 解决数据倾斜方法

数据倾斜问题, 通常是指参与计算的数据分布不均, 即某个 key 或者某些 key 的数据量远超其他 key, 导致在 shuffle 阶段, 大量相同 key 的数据被发往同一个 Reduce, 进而导致该 Reduce 所需的时间远超其他 Reduce&…

vis.js性能折线图

代码案例<!doctype html> <html> <head><title>Timeline</title><script type="text/javascript" src="https://unpkg.com/vis-timeline@latest/standalone/umd/vis-timeline-graph2d.min.js"></script><scr…

计算请假时间,只包含工作时间,不包含中午午休和非工作时间及星期六星期天,结束时间不能小于开始时间

1.计算相差小时&#xff0c;没有休息时间 computed: {// 计算相差小时time() {let time 0;if (this.ruleForm.date1 &&this.ruleForm.date2 &&this.ruleForm.date3 &&this.ruleForm.date4) {// 开始时间let date1 this.ruleForm.date1;let y date…

设计一个算法删除单链表L(有头节点)中的一个最小值结点

数据结构 链表 笔试题:设计一个算法删除单链表L(有头节点)中的一个最小值结点。/***************************************************************** * * file name : linkedlist.c * author : cnzycwp@126.com * data : 2024/04/22 * function : 删除单链表中的一…

docker服务无法启动

背景&#xff1a;断电重启经常会导致磁盘io错误&#xff0c;甚至出现磁盘坏块 这时可以使用xfs_repair来修复磁盘&#xff0c;但是修复过程可能会导致部分数据丢失 xfs_repair -f -L /dev/sdc问题一&#xff1a; Apr 15 19:27:15 Centos7.6 systemd[1]: Unit docker.service e…

Visual Studio 2022 Professional、Enterprise安装教程

Visual Studio 2022 Professional、Enterprise安装教程 下载安装包安装 我是电脑已经有VS2019&#xff0c;现在加装一个VS2022。 下载安装包 首先下载安装包&#xff0c;进入官网进行下载&#xff0c;VS官网下载地址。 进入之后&#xff0c;会显示如下界面&#xff0c;选择Pro…

linux-rpm包管理-命名-管理

1.RPM基础概述 RPM全称 RPM Package Manager 缩写,由红帽开发用于软件包的安装,升级卸载与查询 为什么要学rpm就像在windows系统中一样,如果你想要安装一个 QQ ,安装一个 微信 ,安装一款 游戏 ,首先要去该软件的官网上去下载相关的软件包,通常都是 .exe 的安装包。还有那…

力扣110. 平衡二叉树

思路&#xff1a;与二叉树最大高度类似&#xff0c;但是这里需要返回 -1 的高度来标识不是平衡二叉树&#xff0c;判断左右子树的高度相差大于1则不平衡&#xff0c;否则就是平衡。 class Solution {public boolean isBalanced(TreeNode root) {int ans func(root);if(ans >…

最强开源大模型Meta LIama3抢先在线体验!

4月19日Facebook母公司Meta重磅推出了其迄今最强大的开源人工智能&#xff08;AI&#xff09;模型——Llama 3。模型分为两种规模&#xff1a;8B 和 70B 参数&#xff0c;每种规模都提供预训练基础版和指令调优版。最强开源大语言模型Meta LIama3可以在线体验啦&#xff01; G…

【运输层】TCP 的流量控制和拥塞控制

目录 1、流量控制 2、TCP 的拥塞控制 &#xff08;1&#xff09;拥塞控制的原理 &#xff08;2&#xff09;拥塞控制的具体方法 1、流量控制 一般说来&#xff0c;我们总是希望数据传输得更快一些。但如果发送方把数据发送得过快&#xff0c;接收方就可能来不及接收&#x…

TensorFlow文件读取 --TFRecords文件

TFRecords文件 是一种二进制文件&#xff0c;能够很好的利用内存&#xff0c;更方便复制和移动&#xff0c;并且不需要单独的标签文件 使用步骤 1&#xff09;获取数据 2&#xff09;将数据填入到Example协议内存块&#xff08;protocol buffer&#xff09; 3&#xff09;将协…

vis.js本地化折线图

代码案例<!doctype html> <html> <head><title>Timeline</title><script type="text/javascript" src="https://unpkg.com/vis-timeline@latest/standalone/umd/vis-timeline-graph2d.min.js"></script><lin…

【每周例题】力扣 C++ 分割字符串

分割字符串 题目 题目分析 1.先确定用容器存储,容器的存储结构如下图所示: 2.这个题目的话,第一反应应该是用到动态规划,下面是动态规划的模板:res = [] ans = []def backtrack(未探索区域, res, path):if 未探索区域满足结束条件:res.add(ans) # 深度拷贝returnfor 选择 …

Midjourney 实现角色一致性的新方法

AI 绘画的奇妙之处&#xff0c;实乃令人叹为观止&#xff01;就像大千世界中&#xff0c;寻不见两片完全相同的树叶一般&#xff0c;AI 绘画亦复如是。同一提示之词&#xff0c;竟能催生出千变万化的图像&#xff0c;使得AI所绘之作&#xff0c;宛如自然之物般独特&#xff0c;…

内网信息收集命令汇总

查看网络配置信息 ipconfig/all查看操作系统及软件信息查看操作系统和版本信息 systeminfo | findstr /B /C:"OS"查看系统体系结构 echo %PROCESSOR_ARCHITECTURE%查看安装的软件及版本、路径等 wmic product get name, versionpowershell "Get-WmiObject -clas…