Ubuntu20.04部署KVM并安装Ubuntu Server 20.04

news2025/1/10 20:42:10

kvm虚拟化技术

KVM介绍

KVM是Linux开源社区大力支持的虚拟化技术,基于Intel和AMD的硬件虚拟化技术。KVM(Kernel-bashdVirtual Machine,即基于内核的虚拟机),它是用于Linux内核中的虚拟化环境设施,是Linux内核中的一个功能模块,在Linux内核中默认被安装,可以将Linux内核转化为一个 Hypervisor1

KVM支持页表虚拟化和IOMMU虚拟化技术,页表虚拟化技术用于将GuestOS的页表转换为HostOS运行的环境中,在这种机制下,KVM的HostOS将要接管所有的内存分配(其实也是使用Linux 内核的内存管理能力)。

QEMU

qemu是一个便捷的跨平台开源计算机模拟器,可以模拟许多硬件体系结构,包括ARM、RISC-V等,qemu可以在不同的机器上运行独自开发的操作系统与软件,经过kqemu加速后,能模拟至接近真是电脑的速度。qemu在GNU/Linux平台上使用较为广泛,并且能够运行于多种操作系统中和不同的CPU体系架构中,允许在虚拟机运行时保存虚拟机的状态,进行实时迁移,进行操作系统级别的调试,也能模拟硬件的相关案例。

在这里插入图片描述

何为qemu-kvm

所谓kvm技术中,应用到两个技术,分别是:qemu、kvm,其中kvm负责CPU虚拟化+内存虚拟化,实现了CPU和内存的虚拟化,但kvm不能模拟其他设备;qemu是模拟IO设备(网卡、磁盘等),kvm加上qemu之后就能实现真正的服务器虚拟化,故称之为qemu-kvm。由于kvm技术已经相当成熟,并且对很多方面都进行了隔离,但是像网卡、磁盘等设备依然无法虚拟出真是的机器。qemu-kvm补充了kvm技术的不足,而且在性能上对kvm进行了优化。

Ubuntu20.04部署KVM

查询本机是否支持虚拟化技术。

 eddy@eddy~ cat /proc/cpuinfo | grep -E 'vmx|svm'
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc cpuid tsc_known_freq pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap xsaveopt arat md_clear flush_l1d arch_capabilities
vmx flags       : vnmi invvpid ept_x_only ept_ad tsc_offset vtpr mtf ept vpid unrestricted_guest ple
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc cpuid tsc_known_freq pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid rdseed adx smap xsaveopt arat md_clear flush_l1d arch_capabilities
vmx flags       : vnmi invvpid ept_x_only ept_ad tsc_offset vtpr mtf ept vpid unrestricted_guest ple
 eddy@eddy~(古董机)

若使用VMWare安装的虚拟机则需要在虚拟机设置中开启虚拟化技术。

在这里插入图片描述
安装KVM和虚拟机管理器等

qemu-kvm:完整的虚拟化平台。

libvirtd:用于硬件虚拟化的开源API、守护进程与管理工具。

virt-manager:虚拟机管理器

eddy@eddy:~$ sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager

查看服务是否激活

eddy@eddy:~$ systemctl is-active libvirtd

查看是否激活

eddy@eddy:~$ lsmod | grep kvm

启动虚拟化

eddy@eddy:~$ systemctl start libvirtd
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
启动“libvirtd.service”需要认证。
Authenticating as: eddy,,, (eddy)
Password:
==== AUTHENTICATION COMPLETE ===
eddy@eddy:~$

查看状态

eddy@eddy:~$ systemctl status libvirtd
● libvirtd.service - Virtualization daemon
     Loaded: loaded (/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2022-11-16 15:54:03 CST; 27min ago
TriggeredBy: ● libvirtd-admin.socket
             ● libvirtd.socket
             ● libvirtd-ro.socket
       Docs: man:libvirtd(8)
             https://libvirt.org
   Main PID: 5519 (libvirtd)
      Tasks: 19 (limit: 32768)
     Memory: 13.2M
     CGroup: /system.slice/libvirtd.service
             ├─5519 /usr/sbin/libvirtd
             ├─5701 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/u>
             └─5702 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/u>

Nov 16 15:54:03 eddy systemd[1]: Started Virtualization daemon.
Nov 16 15:54:14 eddy dnsmasq[5701]: started, version 2.80 cachesize 150
Nov 16 15:54:14 eddy dnsmasq[5701]: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntra>
Nov 16 15:54:14 eddy dnsmasq-dhcp[5701]: DHCP, IP range 192.168.122.2 -- 192.168.122.254, lease time 1h
Nov 16 15:54:14 eddy dnsmasq-dhcp[5701]: DHCP, sockets bound exclusively to interface virbr0
Nov 16 15:54:14 eddy dnsmasq[5701]: reading /etc/resolv.conf
Nov 16 15:54:14 eddy dnsmasq[5701]: using nameserver 127.0.0.53#53
Nov 16 15:54:14 eddy dnsmasq[5701]: read /etc/hosts - 7 addresses
Nov 16 15:54:14 eddy dnsmasq[5701]: read /var/lib/libvirt/dnsmasq/default.addnhosts - 0 addresses
Nov 16 15:54:14 eddy dnsmasq-dhcp[5701]: read /var/lib/libvirt/dnsmasq/default.hostsfile
lines 1-26/26 (END)

配置网桥

eddy@eddy:~$ sudo apt install bridge-utils

修改01-network-manager-all.yaml文件

eddy@eddy:~$ gedit /etc/netplan/01-network-manager-all.yaml

文件内容如下

# Let NetworkManager manage all devices on this system
network:
  version: 2
  #renderer: NetworkManager
  ethernets:
        ens33:(网卡名称)
            dhcp4: false
            dhcp6: false
  bridges:
        br0:
            addresses: [192.168.159.133/24](本机IP)
            gateway4: 192.168.159.1(网关)
            nameservers:
                addresses: [192.168.159.2, 114.114.114.114](DNS)
                search: [msnode]
            interfaces: [ens33](网卡名称)

启用配置,并重启网络

eddy@eddy:~$ sudo netplan apply

报错

eddy@eddy:~$ netplan apply   
/etc/netplan/01-network-manager-all.yaml:9:5: Invalid YAML: inconsistent indentation:
    bridges:
    ^
eddy@eddy:~$ 

01-network-manager-all.yam文件的bridgeethernets 对齐。

启用配置,并重启网络

eddy@eddy:~$ sudo netplan apply

ifconfig查看网络

eddy@eddy:~$ ifconfig
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.159.131  netmask 255.255.255.0  broadcast 192.168.159.255
        inet6 fe80::20c:29ff:fe7c:49dd  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:7c:49:dd  txqueuelen 1000  (以太网)
        RX packets 8  bytes 828 (828.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 39  bytes 4869 (4.8 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:0c:29:7c:49:dd  txqueuelen 1000  (以太网)
        RX packets 32967  bytes 39746636 (39.7 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 17563  bytes 1398614 (1.3 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (本地环回)
        RX packets 1908  bytes 140071 (140.0 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1908  bytes 140071 (140.0 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 52:54:00:52:ad:05  txqueuelen 1000  (以太网)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eddy@eddy:~$ 

安装虚拟机

eddy@eddy:~$ virt-install -n Ubuntu20_VM0 -r 2048 --vcpus=2 --os-variant=ubuntu20.04 --accelerate -c /tmp/ubuntu-20.04.5-live-server-amd64.iso --disk path=/home/vmsets/ubuntu20_04.img,format=qcow2,bus=virtio,size=20 --network bridge=br0 --vnc --vncport=5996 --vnclisten=0.0.0.0

报错

eddy@eddy:~$ virt-install -n Ubuntu20_VM0 -r 2048 --vcpus=2 --os-variant=ubuntu20.04 --accelerate -c /tmp/ubuntu-20.04.5-live-server-amd64.iso --disk path=/home/vmsets/ubuntu20_04.img,format=qcow2,bus=virtio,size=20 --network bridge=br0 --vnc --vncport=5996 --vnclisten=0.0.0.0

开始安装......
正在分配 'ubuntu20_04.img'                                                                                                                                                              |  20 GB  00:00:00     
ERROR    internal error: /usr/lib/qemu/qemu-bridge-helper --use-vnet --br=br0 --fd=30: failed to communicate with bridge helper: Transport endpoint is not connected
stderr=failed to parse default acl file `/etc/qemu/bridge.conf'

正在删除磁盘 'ubuntu20_04.img'                                                                                                                                                            |    0 B  00:00:00     
域安装失败,您可以运行下列命令重启您的域:
'virsh start virsh --connect qemu:///session start Ubuntu20_VM0'
否则请重新开始安装。
eddy@eddy:~$ 

创建 /etc/qemu/bridge.conf (qemu用到的网桥配置文件)

eddy@eddy:~$ mkdir /etc/qemu
eddy@eddy:~$ vim /etc/qemu/bridge.conf

键入

allow br0 (这里的br0跟之前创建的虚拟网桥相同)
allow all

更改权限

eddy@eddy:~$ sudo chmod 777 /etc/qemu/bridge.conf

继续创建虚拟机,报错

eddy@eddy:~$  virt-install -n Ubuntu20_VM0 -r 2048 --vcpus=2 --os-variant=ubuntu20.04 --accelerate -c /tmp/ubuntu-20.04.5-live-server-amd64.iso --disk path=/home/vmsets/ubuntu20_04.img,format=qcow2,bus=virtio,size=20 --network bridge=br0 --vnc --vncport=5996 --vnclisten=0.0.0.0

开始安装......
正在分配 'ubuntu20_04.img'                                                                                                                                                              |  20 GB  00:00:00     
ERROR    internal error: /usr/lib/qemu/qemu-bridge-helper --use-vnet --br=br0 --fd=30: failed to communicate with bridge helper: Transport endpoint is not connected
stderr=failed to create tun device: Operation not permitted

正在删除磁盘 'ubuntu20_04.img'                                                                                                                                                            |    0 B  00:00:00     
域安装失败,您可以运行下列命令重启您的域:
'virsh start virsh --connect qemu:///session start Ubuntu20_VM0'
否则请重新开始安装。

解决方法(qemu-bridge-helper需要set uid)

eddy@eddy:~$  sudo chmod 4755 /usr/lib/qemu/qemu-bridge-helper

继续创建虚拟机

在这里插入图片描述
在这里插入图片描述
安装 Ubuntu Server

在这里插入图片描述
安装SSH

输入相应用户名、密码等信息,之后

在这里插入图片描述
安装完成选择重启

参考

Ubuntu20.4系统下安装kvm并创建虚拟机_馫馫馫馫香的博客-CSDN博客

如何在 Ubuntu 20.04 上安装 KVM - 武平宁 - 博客园 (cnblogs.com)

🤑

🎨

😒


  1. 虚拟机监控器(Virtual Machine Monitor,缩写VMM),是用来建立于执行虚拟机的软件。 ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/118436.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python:什么?你听MP3居然还要付费?看我一键......

前言 大家早好、午好、晚好吖 ❤ ~ 在我们上班空闲\游玩\散步的时候,总会习惯的拿出手机放首音乐来听一听 但是吧,有时候我们听一首歌起劲的时候,它会你提醒你 这时候怎么办呢&#xff1f;通常我们是下一首&#xff0c;或者充值 但是手头不宽裕但又想听怎么办&#xff1f; …

JavaEE-Spring(IoC控制反转,DI依赖注入,Spring项目创建和基本使用,ApplicationContext和BeanFactory的区别)

文章目录1. IoCDI2. Spring项目创建和使用ApplicationContext和BeanFactory的区别1. IoC Spring是一个包含多个工具方法的IoC容器 tomcat是web容器 List/Map是数据存储容器 IoC&#xff1a;Inversion of Control&#xff08;控制反转&#xff09; 将对象的控制权交给Spring&…

RK3399+PCIe+FPGA 在高速AD采样中的应用

一、需求 要实现高速AD/DA的数据采集&#xff0c;并发送到高性能arm核进行数据处理&#xff1b; 方案RK3399pcieFPGAAD/DA。 二、器件介绍 一、RK3399 RK3399是一款低功耗、高性能处理器&#xff0c;用于计算、个人移动互联网设备和其他智能设备应用。基于Big.Little架构&…

计算机发展史之查尔斯·巴贝奇

查尔斯巴贝奇&#xff08;Charles Babbage&#xff0c;1791年12月26日—1871年10月18日&#xff09;是一名英国数学家、发明家、科学家&#xff0c;科学管理的先驱者&#xff0c;出生于一个富有的银行家的家庭&#xff0c;曾就读于剑桥大学三一学院。 他在24岁时就被选为英国皇…

智慧医院数据可视化(数据大屏)

本次分享的作品是用软件Axure8.0&#xff08;兼容9和10&#xff09;制作的针对智慧医院设计的数据可视化大屏&#xff0c;其作品内容主要是对医院的运营情况、门诊、住院、手术、药品、医务、医疗设备、卫生耗材以及医疗质量数据进行综合可视分析。 运营情况:对医院的整体数据…

左神算法学习:第一天-------位运算

前言 位运算是在算法设计中的一种非常重要和高效的方法&#xff0c;常见的有与运算&#xff0c;非运算&#xff0c;异或运算。我们常用的比较多的可能就是异或运算&#xff0c;又叫无进位相加。 1.1 取非运算----&#xff08;~&#xff09; 取非运算其实就是和我们的无符号数…

cadence SPB17.4 - 用元件管理器来更新原理图中的元件属性信息

文章目录cadence SPB17.4 - 用元件管理器来更新原理图中的元件信息概述笔记修正原理图库修正CIS库的元件登记表ENDcadence SPB17.4 - 用元件管理器来更新原理图中的元件信息 概述 画好图后, 出了BOM. 同学指出BOM中有些元件型号信息不合适, 影响元件购买, 想改一下. 更新了原…

设计模式-桥接、职责链、中介

前言 本文为datawhale2022年12月组队学习《大话设计模式》task6打卡学习。 【教程地址】https://github.com/datawhalechina/sweetalk-design-pattern 一、桥接模式 1.1 基本定义 桥接模式&#xff08;Bridge Pattern&#xff09;又称为柄体(Handle and Body)模式或接口(In…

第十二讲:生成树概念及STP技术应用

在传统的交换网络中&#xff0c;设备通过单条链路进行连接&#xff0c;当某一个点或是某一个链路发生故障时可能导致网络无法访问&#xff0c;解决这种问题的办法是在网络中提供冗余链路&#xff0c;但是交换机网络中的冗余链路会产生广播风暴、MAC地址失效等现象&#xff0c;最…

StarRocks 统计信息和 Cost 估算

导读&#xff1a;欢迎来到 StarRocks 源码解析系列文章&#xff0c;我们将为你全方位揭晓 StarRocks 背后的技术原理和实践细节&#xff0c;助你逐步了解这款明星开源数据库产品。本期 StarRocks 技术内幕将主要介绍 StarRocks 统计信息和 Cost 估算。 1.背景 在学习本文之前&…

mysql搭建主从复制

Mysql主从复制搭建过程&#xff1a; 主从需同步时间&#xff0c;主开启ntpd&#xff08;ntp网络时间协议&#xff0c;它的端口号udp123&#xff09;服务-----修改配置&#xff0c;从通过/usr/sbin/ntpdate 主ip(ntpdate包需要提前安装)&#xff1b;主&#xff1a;开启中继二进…

整数划分问题(Java递归)

整数划分问题&#xff08;Java递归&#xff09; 文章目录整数划分问题&#xff08;Java递归&#xff09;0、 问题描述1、递归式2、代码3、参考0、 问题描述 整数划分问题 将正整数n表示成一系列正整数之和&#xff1a;nn1n2…nk&#xff0c;其中n1≥n2≥…≥nk≥1&#xff0c;k…

数字校园建设方案技术建议书

【版权声明】本资料来源网络&#xff0c;仅用于行业知识分享&#xff0c;供个人学习参考&#xff0c;请勿商用。【侵删致歉】如有侵权请联系小编&#xff0c;将在收到信息后第一时间进行删除&#xff01;完整资料领取见文末&#xff0c;部分资料内容&#xff1a; 1.1 华为数字化…

“设计”小哥转行5G网络优化工程师!从零开始,三个月实现逆风翻盘~

5G网络优化&#xff0c;一个陌生的领域&#xff0c;对于一个毫无经验的小白来说&#xff0c;选择转行必定是需要勇气和决心的。好在&#xff0c;在决定选择5G网络优化的这一段时间里&#xff0c;老师给予了我最大的帮助和支持&#xff0c;包括从授课&#xff0c;到练习&#xf…

【Linux】基础IO(open、文件描述符、缓冲区)

文章目录1、从文件操作开始1.1 文件操作的系统调用接口1.2 文件描述符2、重定向3、缓冲区1、从文件操作开始 在C语言阶段&#xff0c;接触了很多库函数&#xff0c;如fopen、fclose、fread和fwrte&#xff0c;这些函数帮助了程序实现了内存与磁盘的输入输出功能。 不过之前都…

轻松搭建MQTT服务器,开发流程全透明

1、使用场景 MQTT服务器适用场景就不多介绍了&#xff0c;基本上实在IOT圈发光发热&#xff0c;所以说是特定领域的一个服务端软件&#xff0c;我们是用在车联网的环境里&#xff0c;用来发布消息。 2、选型 最早说需要使用mqtt服务器&#xff0c;然后我以为需要自己开发服务…

专利代理机构代理专利流程

代理申请专利流程是怎么样的&#xff1f; (一)咨询 1、 确定发明创造的内容是否属于可以申请专利的内容。 (二)技术交底 1、申请人向专利代理人提供有关发明创造的背景资料或委托检索有关内容; 2、申请人详细介绍发明创造的内容&#xff0c;帮助专利代理人充分理解发明创造…

【windows下nginx反向代理 ip地址和域名(含启动重启和关闭3个脚本)】 1.vue案例必须修改vue.config.js

例子1&#xff1a;代理vue的web服务器 1)去官网下nginx: download 下载windows版本nginx,并写好脚本,总体目录如下: StartNginx.bat // 启动脚本 echo off echo "nginx start !!!" nginx.exe -c conf/nginx.conf pause ReStartNginx.bat // 修改nginx.conf后重启脚…

redis学习笔记(基础)

Redis简介 Redis是一个开源&#xff08;BSD许可&#xff09;&#xff0c;内存存储的数据结构服务器&#xff0c;可用作数据库&#xff0c;高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合&#xff0c;位图&#xff0c;hyperloglogs等数据类型。内置复制、…

飞腾FT-2000/4处理器+复旦微FPGA+国产操作系统解决方案

XM-1203-FPGA飞腾定制主板 自主可控&#xff0c;国产CPU、BIOS和国产Linux操作系统 性能稳定&#xff0c;FT-2000/4处理器 功能接口多样化&#xff0c;可扩展性强 高度集成&#xff0c;具有丰富的接口和电磁兼容性能. XM-1203-FPGA基于飞腾4 核CPU FT-2000/4的处理器板&#x…