KVM全称"Kernel-based Virtual Machine",即基于内核的虚拟机,在linux内启用kvm需要硬件,内核和软件(qemu)支持,这篇文章教你如何配置并安装KVM虚拟机.

· 检查硬件和系统的兼容性

检查硬件虚拟化:LC_ALL=C lscpu | grep Virtualization 这行代码其中 LC_ALL=C为设置输出语言用,lscpu输出CPU信息,在输出的CPU信息里面查找“Virtualization”(虚拟化),输出结果如果有"AMD-V"(AMD CPU) 或者"VT-X"(Intel CPU),则说明你的电脑硬件支持并且已开启虚拟化,可以下一步 那如果没有显示以上两种呢,就进入BIOS(或者UEFI)找到虚拟化/virtualization/VT-X/AMD-V一般来说是这四个名字里面任意一个,当然,如果你的班子BIOS里面是virtualization里面有vt-x和vt-d两个的话,就两个都开。然后,理论上你就能继续了,除非,你的硬件 根本不支持虚拟化(除非厂家手动阉割,现在一般不会有这问题,博主的本本一开始买来BIOS里面就是没有AMD-V的,后来就是靠BIOS更新加上的)。 举个例子:博主linux上的显示是:Virtualization: AMD-V则证明该电脑支持AMD 的虚拟化技术

检查系统是否支持lsmod | grep kvm 这行代码告诉你系统是否加载了KVM有关模块,如果有输出相关模块,请看kvm配置,否则接着看kvm的安装(kvm基于内核,需要内核模块才能正常工作)

· KVM 安装过程 KVM的依赖项除了内核和内核模块主要有这些:firewalld(防火墙),dnsmasq,ebtables(网络方面),libvirt(虚拟化接口),qemu(虚拟机本体)。另外,使用bridge-utils可以设置网卡桥接。 知道了需要的包,安装就好了.

如果你的系统是Centos(RHEL/Fedora同理)你完全可以在安装的时候就选择虚拟化服务器的,如果要手动安装,那么需要跑这样一条命令(CENTOS8/fedora可能需要把yum替换为dnf): sudo yum install -y virt-* libvirt bridge-utils qemu qemu-img qemu-kvm,需不需要操作selinux就看着办,如果因为selinux的原因导致无法开机,那就改,没问题就不需要动了(博主不是专业的运维。平时主玩ARCH,对这块不是特别了解)

玩Ubuntu系列(ubuntu/deepin/mate/kali……)的同学安装kvm的话也类似,不过这包名可能和上面有所不同,代码如下: sudo apt install qemu qemu-kvm libvirt-bin bridge-utils

Arch用户 sudo pacman -S qemu libvirt ebtables dnsmasq firewalld bridge-utils

安装完软件包,接下来开启防火墙和libvirt守护进程 sudo systemctl start firewalld && sudo systemctl start libvirtd需不需要enable看你们自己的需要,如果是虚拟化母机或者经常用到虚拟机的话,那么建议enable,开机自动把虚拟化服务启动。

讲完了基础安装工作,剩下的就是你如何控制kvm的事情了。图形化/命令行

图形化控制KVM一般使用virt-manager(中文名:虚拟系统管理器),剩下的就是图形化设置的工作了。

嗯,没错,就是这个东西,创建虚拟机的话,只需要点创建虚拟机按钮就好了(就是图上那个亮着的按钮)。

然后,连接这里选择QEMU/KVM,就是使用KVM虚拟机创建.

至于以何种方式创建虚拟机,就看你需要,不过一般使用第一项使用ISO安装系统,如果你之前有kvm/qemu的磁盘镜像(qcow2),你也可以用第四个(导入现有磁盘镜像).

这里选择需要使用的ISO镜像文件. 点击浏览弹出这个窗口

然后本地浏览选择镜像

选择CPU/运行内存资源

然后创建虚拟硬盘,这里如果你有现成的qcow2/row镜像,你也可以直接拿来用。 番外内容:[需要注意这点:通过libvirt 创建qemu镜像的大小是固定的,就是分多少它马上就吃多少的,不像vmware这样会动态扩展,当然,也可以实现,需要参考下面使用代码创建虚拟机] 然后没有什么问题了,就直接点完成,开始安装系统,安装系统过程,这里就不赘述了,至于基础的管理工作,进去虚拟机的窗口,点击那个管理按钮,会进入类似于vmware虚拟机设置的页面,在里面可以进行操作(部分操作需要关机)。

下面是代码创建虚拟机的介绍(高级玩法可能需要手动修改XML文件,这里就暂时不介绍了)

首先,你需要使用virsh这个命令来管理虚拟机,先创建存储卷(磁盘镜像) virsh vol-create-as poolname volumename 10GiB --format aw|bochs|raw|qcow|qcow2|vmdk 一般QEMU/KVM支持的镜像为qcow/qcow2/row 或者使用qemu-img来创建镜像 敲黑板:qemu-img除了可以创建镜像以外,也和virsh一样支持镜像修改,另外,qemu-img创建镜像可以选择预分配模式,从而解决上面使用图形化镜像过大的问题. qemu-img create -f 'qcow2' -o preallocation=off /home/udream/test.qcow2 10G 这样就可以创建一个10G大小的,关闭预分配的qcow2镜像,这个镜像文件没安装系统之前的大小是192.2Kb,默认直接创建的大小为10G 然后,有了磁盘镜像,就可以创建虚拟机了 举例代码如下:

virt-install  \

-        --name test \

--memory 4096             \

--vcpus=2,maxvcpus=4      \

--cpu host                \

--cdrom $HOME/test.iso \

--disk  /home/udream/test.qcow2,size=10GiB  \

--network user            \

--virt-type kvm

这段代码指定了虚拟机名字test,内存1g,CPU最少2核最大4核,安装盘位置:$HOME/test.iso,盘的大小,网络类型,虚拟化接口KVM,使用之前创建的虚拟盘 /home/udream/test.qcow2 大小 10G

创建完成虚拟机以后使用```virsh start 虚拟机名字```启动虚拟机

关闭虚拟机把start改为shutdown,强制关机为destory,重启是reboot

管理虚拟网络,使用virsh net-后面跟操作(start/destory/create……)

当然,还有pool设置存储池,vol设置存储卷,snapshot设置快照,具体的,因为字数原因(怕某些同学太长不看),就不一个个码了,你可以敲virsh --help查看具体帮助信息,不过。这几个最常用的也就是create/start/stop/destory/list了,

这里举个例子,启动虚拟网络:```virsh net-start 虚拟网络名``` 创建存储池```virsh pool-create XML描述文件名```,其他的命令可以按照这样的方式操作,下一篇是virsh命令的具体玩(配)法(制)介绍。

这次就讲到这里了,本次内容原创纯手码,部分命令为了确认正确性,参考了arch wiki,测试环境为ARCHLINUX 5.7.4-arch1-1 桌面环境kde plasma。

本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。

linux 中添加kvm虚拟化,一文告诉你Linux如何配置KVM虚拟化--安装篇相关推荐

  1. Android 驱动(17)---如何在linux中添加新的kernel module

    如何在linux中添加新的kernel module 该SOP针对客户如何添加一个kernel module,并把生成的.ko打包进system.img的过程. 解决方案 L版本(version> ...

  2. linux 添加新的系统调用,如何在Linux中添加新的系统调用

    如何在Linux中添加新的系统调用 2010-01-29 eNet&Ciweek #define __NR_mycall 191 系统调用号为191,之所以系统调用号是191,是因为Linux ...

  3. linux中添加环境变量

    linux中添加环境变量 一般是在/etc/profile中添加环境,但是建议在/etc/profile.d/下创建一个以.sh结尾的文件 vim /etc/profil.d/my_env.sh 输入 ...

  4. ubuntu添加路由_如何在Ubuntu,Linux中添加新路由?

    ubuntu添加路由 I have a box with Ubuntu Linux and I want to add a new route to my box. Because I want to ...

  5. linux如何登陆ftp的自定义端口,在linux中添加ftp用户,以及修改FTP默认端口号

    在linux中添加ftp用,并设置相应的权限,操作步骤如下: 1.环境:ftp为vsftp.被限制用户名为test.被限制路径为/home/test. 2.建用户:在root用户下: useradd ...

  6. linux中root所属的组的gid为,linux用户和用户组

    1.用户和用户组概念 回到顶部 Linux是典型的多用户多任务操作系统,在使用linux操作系统之前,必须首先向系统管理员申请账号,然后通过帐号登录系统. 用户在登录时键入正确的用户名和口令后,即可进 ...

  7. linux存放脚本目录,linux中Shell脚本所在目录的绝对路径linux操作系统 -电脑资料...

    linux shell 脚本里面如果想得到当前脚本文件存放的绝对路径,也没有太现成的命令可以调用,不过可以通过下面的语句来获取:代码如下复制代码 baseDirForScriptSelf=$(cd & ...

  8. linux 中添加kvm虚拟化,在 Centos7 的KVM上启用嵌套虚拟化

    嵌套虚拟化意味着在虚拟机内配置虚拟化环境.换句话说,我们可以说嵌套虚拟化是虚拟机管理程序hypervisor的一个特性,它允许我们通过虚拟化管理程序(宿主机)的硬件加速在虚拟服务器内安装和运行虚拟机. ...

  9. MIPS(loongson)linux 中添加系统调用

    在基于MISP(loongson)架构处理器与基于 x86 架构处理器的 linux 内核中添加系统调用时更改的文件是不同的,x86 中需要更改 arch/x86/kernel/syscall_tab ...

最新文章

  1. com.alibaba.druid.sql.parser.ParserException: ERRO
  2. python按条件拆分列表元素_如何通过在python中拆分列表元素来创建列表?
  3. 判断一个单链表中是否有环
  4. 建立最简单的repo服务器实例讲解
  5. 6间房,把评论添加到视频的metadata.
  6. 阿里发布手掌大小云电脑“无影”,价格是传统PC一半
  7. 华为Mate 30 Pro最新渲染图曝光:六摄造型 越看越顺眼了?
  8. 选修课期末html作业,中南大学生命科学导论选修课期末作业
  9. 2021年中国电力线通信(PLC)市场趋势报告、技术动态创新及2027年市场预测
  10. 人人都可做 AI 开发者,云知声 AI 开放平台重磅上线
  11. Guest与virtio netdev交互模式
  12. Zookeeper知识
  13. increment java_post-increment, pre-increment. JAVA
  14. java代码绩点计算器_怎么用java写一个gpa计算器?
  15. 《云计算核心技术剖析》迷你书连载一 – 首席的推荐和前言
  16. ArcCatalog连接PostgreSQL创建SDE库
  17. php元换成万元,万元单位换算器(元换算成万元换算器)
  18. GPS时间转北京时间
  19. Linux学习-账户管理
  20. simd-neno加速

热门文章

  1. HYSBZ 2251 外星联络
  2. react脚手架honeycomb部署
  3. 大气颗粒物PMF源解析实践技术应用
  4. html模拟发送按键,提交/模拟按键HTML
  5. guess game
  6. 山东大学软件学院信息检索考试重点复习
  7. Java之Lists.Partition项目中的使用
  8. 杰理芯片软件加密钥的操作流程
  9. MySQL 之 多表查询
  10. 【Python数据结构系列】☀️《树与二叉树-基础知识》——知识点讲解+代码实现☀️