VirtualBox中Ubuntu 22.04 Server支持kvm
kvm简介
KVM 是 Kernel-based Virtual Machine 的缩写,是一种用于虚拟化的开源硬件虚拟化技术。
使用 Linux 内核的虚拟化模块,将物理服务器划分为多个虚拟机。
KVM 允许虚拟机直接访问物理硬件资源,从而提供出色的性能和稳定性,同时还支持许多常见的操作系统和应用程序。
KVM 使用 QEMU (Quick Emulator) 作为其默认的虚拟机监控程序。
KVM 支持多种嵌入式和云计算场景,并且得到了广泛的应用。
KVM使用硬件虚拟化技术,即通过 intel VT-x 和 AMD-V 等 CPU 虚拟化指集的支持,将虚拟化性能提升到接近原生性能。
在虚拟机中启用kvm
环境
宿主机系统: windows11家庭版
Virtualbox版本:7.0
虚拟机系统:Ubuntu 22.04 Server
详细过程
1. 查看是否支持kvm
在需要查看是否支持kvm的主机(本情景下为虚拟机)上使用如下命令:
egrep -c '(vmx|svm)' /proc/cpuinfo
即输出/proc/cpuinfo中出现vmx或svm的行数,其中:
vmx是Intel处理器支持虚拟化技术(VT-x)的标识。svm是AMD处理器支持虚拟化技术(AMD-V)的标识。
若返回的值大于0,则支持,否则不支持。
最开始时,我的返回结果为0,即不支持。解决方案是在VirtualBox对该虚拟机打开嵌套 VT-x/AMD-V。
2. 修改Virtualbox设置
欲使虚拟机支持,需在VirtualBox的设置-系统-处理器中勾选启用嵌套 VT-x/AMD-V,但最开始勾选框为灰色,无法启用:

3. 启用嵌套 VT-x/AMD-V
使用VBoxManage工具开启(先把虚拟机关机):
在VirtualBox安装目录下应该有
VBoxManage.exe程序在命令行中运行:
VBoxManage.exe list vms
查看已有虚拟机。以我的为例,返回结果为:
"ubuntu2204compute1"
运行以下命令启用:
VBoxManage.exe modifyvm "ubuntu2204compute1" --nested-hw-virt on
运行完则已经成功启用(此处为灰色是因为虚拟机已经开机):

注:运行上述命令后,界面会显示已勾选,但实际上未必真的启用了,可能只是UI显示。
4. 再次查看是否支持
再次打开虚拟机,查看是否支持:
egrep -c '(vmx|svm)' /proc/cpuinfo
第一次进行上述操作后 ,我的结果为6,已经支持kvm。
遇到问题并解决
步骤4仍显示为0
运行完“详细过程”的步骤后,步骤3中已显示启用,但步骤4中仍显示为0。(我关机重启后便遇到了该问题)
解决:
关闭系统冲突项:
Hyper-V:微软官网中说明了Hyper-V会与虚拟机冲突(禁用 Hyper-V 以运行虚拟化软件 - Windows Client | Microsoft Learn):
许多第三方虚拟化应用程序无法与 Hyper-V 协同工作。 受影响的应用程序包括 VMware Workstation 和 VirtualBox。 这些应用程序可能无法启动虚拟机,或者可能会回退到较慢的模拟模式。
运行 Hyper-V 虚拟机监控程序时会引入这些故障。 某些安全解决方案也依赖于虚拟机监控程序,例如:
- Device Guard
- Credential Guard
许多虚拟化应用程序依赖于大多数新式处理器上可用的硬件虚拟化扩展。 它包括 Intel VT-x 和 AMD-V。 一次只能有一个软件组件使用此硬件。 无法在虚拟化应用程序之间共享硬件。
若要使用其他虚拟化软件,必须禁用 Hyper-V 虚拟机监控程序、Device Guard 和 Credential Guard。 如果要禁用 Hyper-V 虚拟机监控程序,请按照后续两个部分中的步骤操作
由于我的系统为家庭版,故没有默认安装Hyper-V。(我还在网上找了脚本,安装了Hyper-V,再关闭之,结果无效。不推荐这么干。)
Windows虚拟机监控程序平台与虚拟机平台:
控制面板-程序-启用或关闭Windows功能,取消勾选Windows虚拟机监控程序平台与虚拟机平台内核隔离:关闭“内核隔离”
我的情况:
第3步有效。运行完第3步后成功,再将前2项打开依然成功,将第3项打开则失败。
参考资源
- 【超详细~KVM】KVM概述、安装及简单操作-------从小白到大神之路之学习运维第91天-CSDN博客
- VirtualBox启用嵌套VT-x/AMD-V - 古道轻风 - 博客园 (cnblogs.com)
VirtualBox中Ubuntu 22.04 Server支持kvm的更多相关文章
- VirtualBox中Ubuntu 14.04屏幕分辨率不能设置的问题
VirtualBox中Ubuntu 14.04屏幕分辨率不能设置的问题 在VirtualBOx虚拟机中Ubuntu 14.04设置屏幕分辨率,怎么点都没反应. 方法一:安装与你的Ubuntu-Gu ...
- 记一次Ubuntu 16.04 server安装中的坑
最近博主搞了一台迷你主机,又刚好有时间去折腾,所以我打算把这台机子打造成一台迷你服务器,用来跑跑爬虫.挂挂网站 介于我我这台机子的配置比较垃圾(intel J1900+4G+64G),跑起Window ...
- Qemu/Limbo/KVM镜像 Ubuntu 22.04 精简版,可运行Windows软件,内存占用不到200M
镜像特征: Ubuntu 22.04系统 内置Wine 7.8,可运行大量Windows 软件 高度精简,内存占用仅200M不到. 自制UI,Windows3.1风格. 完全开源 镜像说明: 用户名为 ...
- OpenStack Havana 部署在Ubuntu 12.04 Server 【OVS+GRE】(三)——计算节点的安装
序:OpenStack Havana 部署在Ubuntu 12.04 Server [OVS+GRE] 计算节点: 1.准备结点 安装好ubuntu 12.04 Server 64bits后,进入ro ...
- Ubuntu 12.04 Server OpenStack Havana多节点(OVS+GRE)安装
1.需求 节点角色 NICs 控制节点 eth0(10.10.10.51)eth1(192.168.100.51) 网络节点 eth0(10.10.10.52)eth1(10.20.20.52)eth ...
- OpenStack Havana 部署在Ubuntu 12.04 Server 【OVS+GRE】——序
OpenStack Havana 部署在Ubuntu 12.04 Server [OVS+GRE](一)——控制节点的安装 OpenStack Havana 部署在Ubuntu 12.04 Serve ...
- Ubuntu 18.04 server安装+搭建Seacms v10.1网站
0x00 写在前面 以前我天真的认为,ubuntu Desktop会安装了,server就无所谓了,其实完全不然,server还是有一些坑点的. 之所以选择Seacms搭建网站,是因为这个SeaCMS ...
- VirtualBox 安装 Ubuntu 20.04 全流程
VirtualBox 安装 Ubuntu 20.04 全流程 内容概要 这个作业属于哪个课程 2022面向对象程序设计 这个作业要求在哪里 2022面向对象程序设计寒假作业1 这个作业的目标 在虚拟机 ...
- OpenStack Havana 部署在Ubuntu 12.04 Server 【OVS+GRE】(二)——网络节点的安装
序:OpenStack Havana 部署在Ubuntu 12.04 Server [OVS+GRE] 网络节点: 1.安装前更新系统 安装好ubuntu 12.04 Server 64bits后,进 ...
- OpenStack Havana 部署在Ubuntu 12.04 Server 【OVS+GRE】(一)——控制节点的安装
序:OpenStack Havana 部署在Ubuntu 12.04 Server [OVS+GRE] 控制节点: 1.准备Ubuntu 安装好Ubuntu12.04 server 64bits后 ...
随机推荐
- 网络安全—模拟ARP欺骗
文章目录 网络拓扑 安装 使用 编辑数据包 客户机 攻击机 验证 仅做实验用途,禁止做违法犯罪的事情,后果自负.当然现在的计算机多无法被欺骗了,开了防火墙ARP欺骗根本无效. 网络拓扑 均使用Wind ...
- MegaCli64查看磁盘损坏,错误个数统计情况
如下,两个命令,是磁盘濒临崩坏,比如存在扇区损坏之类的事情发生.咨询的浪潮热线,报sn.他们的临界值是500,我们监控脚本是200告警.Predictive Failure Count 这个的数字比M ...
- mongodb单个服务部署
mongodb3.2.8安装步骤: 1.系统准备 (1)redhat或cnetos6.2以上系统 (2)系统开发包完整 (3)ip地址和hosts文件解析正常 (4)iptables防火墙&S ...
- 基于webapi的websocket聊天室(番外一)
上一篇我已经实现了聊天室,并且在协议中实现了4种类型的消息传输.其实还可以添加video,audio,live等等类型. 不过假如把目前的协议看作RCP1.0版的话,这个版本就只支持有限的4种消息.精 ...
- java 反射——任意类型数组扩容
//java object[]无法转换为原对象类型,可以使用反射来做. //这里的参数不是传object[] 而是传object. public Object GoodArrayGrow(Object ...
- .Net6 MiNiApi +EFCore6.0高B格操作的WebApi
编辑器的选择项目运行雏形EFCore6.0的使用实体创建
题目: Given a non-empty list of words, return the k most frequent elements. Your answer should be sort ...
- Linux Topicons Plus桌面工具安装
Topicons Plus是Linux系统GNOME桌面环境的工具,方便于在工具栏显示应用小图标. 1.进入GNOME商店搜搜下载TopIcons Plus工具.下载路径:https://extens ...
- mysql8 windows 数据库名 表名 大小写
由于Apollo的SQL 脚本是大小写的.mysql8 默认又是纯小写的. 解决方法: 方法1.卸载MYSQL,重新安装MYSQL时,高级选项中指定区分大写小.这种会清空所有库和数据.不建议. 方法2 ...