libvirt如何安装虚拟机,libvirt安装虚拟机教程

在Linux服务器上安装虚拟机,libvirt是目前最主流、最稳定的管理方案,核心操作流程是安装libvirt守护进程、配置虚拟网络、再通过virt-install命令加载系统镜像完成创建。

libvirt 安装虚拟机 为什么绕不开它

很多刚接触服务器虚拟化的朋友会问,libvirt 和 KVM 到底什么关系,这里用大白话讲明白:KVM是内核级的虚拟化引擎,负责把CPU和内存虚拟化到底层;而libvirt是一套管理工具集,相当于KVM的“遥控器”,你不需要直接面对复杂的QEMU命令行,libvirt帮你在上层统一调度存储、网络和虚拟机生命周期。

业内专家指出,libvirt 已经成为Linux虚拟化管理的事实标准,无论是OpenStack还是Proxmox VE,底层都在调libvirt的API,掌握libvirt,意味着你看懂了虚拟化的一大半逻辑。

libvirt 安装虚拟机 和 virt-manager 图形界面 选哪个

新手常纠结这个问题,virt-manager确实友好,鼠标点一点就能建虚拟机,适合单机少量管理,但生产环境讲究自动化、批量部署、远程操作,命令行工具virt-install加virsh才是主流姿势。

举个具体场景:你在上海某机房租了一台裸金属服务器,操作系统是Ubuntu Server 22.04,没有图形桌面,这时候virt-manager根本装不了,唯一可行的路径就是SSH连上去,用libvirt的命令行工具创建虚拟机,学会这套操作,libvirt 安装虚拟机 的性价比远高于图形界面方案。

准备工作:三件事没做好 后面全白搭

第一步,确认CPU虚拟化已开启,执行以下命令:

egrep -c '(vmx|svm)' /proc/cpuinfo

返回数字大于0,说明硬件虚拟化支持已启用,如果是云服务器,大概率不支持嵌套虚拟化,建议放弃挣扎,直接换物理机。

第二步,安装核心软件包,Debian/Ubuntu系统执行:

sudo apt update
sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients virtinst bridge-utils

CentOS/RHEL系则用:

sudo yum install -y qemu-kvm libvirt libvirt-client virt-install

安装完成后,启动并设置开机自启:

libvirt如何安装虚拟机,libvirt安装虚拟机教程

sudo systemctl enable --now libvirtd

用systemctl status libvirtd检查状态,看到active (running)就代表守护进程工作正常。

第三步,确认libvirt用户组权限,把你当前的用户加入libvirt和kvm组,避免每次操作都加sudo:

sudo usermod -aG libvirt,kvm $USER
newgrp libvirt

libvirt 安装虚拟机 实操:一条命令完成部署

这里演示最常用的场景:通过本地ISO镜像文件,创建一个CentOS Stream 9虚拟机,先把ISO镜像放到/var/lib/libvirt/images/目录下,然后执行:

sudo virt-install 
  --name centos9-test 
  --memory 2048 
  --vcpus 2 
  --disk path=/var/lib/libvirt/images/centos9-test.qcow2,size=20,format=qcow2 
  --cdrom /var/lib/libvirt/images/CentOS-Stream-9-latest-x86_64-dvd.iso 
  --os-variant centos-stream9 
  --network network=default 
  --graphics vnc,listen=0.0.0.0 
  --noautoconsole

参数含义拆解如下:

  • –name:虚拟机名称,唯一标识,后续所有操作都靠它
  • –memory / –vcpus:分配的内存大小和CPU核数,按需调整,不建议超过宿主机物理资源的一半(多数情况下性能会严重下降)
  • –disk:磁盘路径、大小和格式,qcow2支持写时复制和快照
  • –os-variant:优化虚拟机操作系统配置,可通过osinfo-query os查看支持列表
  • –network:网络模式,默认NAT让虚拟机通过宿主机上网

看到Domain installation still in progress提示,说明安装会话已经挂起等待VNC连接,用VNC客户端连接到宿主机IP的5900端口,就能看到图形化的CentOS安装界面。

磁盘映像管理技巧

如果不想要图形安装,还可以用无人值守的cloud-init方式,适合批量创建相同配置的虚拟机,先在宿主机上准备一个seed.img镜像,里面写好用户密码和网络配置,然后通过--disk参数挂载上去,操作路径为:用cloud-localds工具生成seed镜像,再让virt-install指向它,--import模式直接跳过安装环节,启动即用。

libvirt如何安装虚拟机,libvirt安装虚拟机教程

常用virsh命令:管理虚拟机的十八般武艺

虚拟机创建完成后,日常管理全交给virsh,下面这些命令是高频操作,建议收藏:

操作 命令示例 说明
查看所有虚拟机 virsh list --all 带–all会显示已关机状态
启动虚拟机 virsh start centos9-test 从关机状态启动
强制关机 virsh destroy centos9-test 相当于拔电源,谨慎使用
正常关机 virsh shutdown centos9-test 发送ACPI关机信号
设置开机自启 virsh autostart centos9-test 宿主机重启后自动拉起
挂起/恢复 virsh suspend / resume 保存内存状态到磁盘

更强大的操作是修改虚拟机硬件配置,执行virsh edit centos9-test会打开XML配置文件,你可以调整内存大小、添加第二块网卡、挂载新硬盘,修改完成后重启虚拟机生效。

克隆和迁移场景

用virt-clone可以快速复制一个虚拟机的完整镜像和配置:

sudo virt-clone --original centos9-test --name centos9-test-clone --auto-clone

这比手动复制磁盘文件再新建虚拟机快得多,因为会自动处理MAC地址和UUID的冲突,跨物理机迁移则需要用到virsh dumpxml导出配置、virsh migrate配合共享存储完成。

libvirt 安装虚拟机 常见问题排查

虚拟机启动失败,报cannot access /var/lib/libvirt/images/xxx.qcow2,多数情况下是SELinux或AppArmor在拦截,检查SELinux是否开启:

getenforce

如果输出Enforcing,有两种处理方案,一是临时放行sudo setenforce 0;二是给文件打上正确的标签sudo chcon -t virt_image_t /var/lib/libvirt/images/xxx.qcow2。

网桥模式上不了网,默认NAT网络能出网但在外部访问不到虚拟机,要让局域网其他机器直接连入虚拟机,需要配置Linux网桥,在/etc/network/interfaces里新建一个br0网桥,绑上物理网卡eth0,配置好IP,重启网络服务后用

libvirt如何安装虚拟机,libvirt安装虚拟机教程

--network bridge=br0创建虚拟机即可。

VNC连不上、黑屏,先确认监听地址是否设置为0.0.0.0,然后检查防火墙规则,在Ubuntu上执行sudo ufw allow 5900/tcp,CentOS上执行sudo firewall-cmd --add-port=5900/tcp --permanent && sudo firewall-cmd --reload。

VNC调优与性能损耗

VNC远程安装过程中,图形界面一卡一顿很常见,有个小技巧:在virt-install命令里加上--video virtio,用virtio显卡驱动,比默认的VGA模拟有较大比例的性能提升,安装完系统后记得在虚拟机内安装qemu-guest-agent,它能让宿主机更好地感知客户机的磁盘和网络状态。

从命令行安装到脚本化部署

操作熟练后,可以把virt-install命令封装成一个bash脚本,实现半自动化部署,核心逻辑就是循环读取参数、调用virt-install、等待启动完成后用virsh console登录,再配合DHCP的静态绑定,一个中小型测试环境的搭建在几分钟内就能完成。

libvirt 安装虚拟机 的核心结论

libvirt的价值在于用一套标准的XML描述语言统一了虚拟化资源的定义,你写的每个配置文件都可以跨平台复用,整个流程的绝对核心就三步:装好libvirt-daemon-system、准备好系统镜像、用virt-install挂载镜像并指定资源,剩下的都是围绕这三步的精细化调优。

关于libvirt 安装虚拟机 的常见问题

libvirt 安装虚拟机 一定要用root用户吗?

不一定,但至少要把用户加入libvirt组才能免sudo操作,直接用root虽然省事,但生产环境违反安全最小化原则,推荐做法是创建专用管理用户如virtadmin,纳入libvirt组,通过sudo来管理。

宿主机的磁盘空间怎么分配给虚拟机最合理?

建议为主机预留至少20%的剩余空间,因为qcow2格式是动态增长的,写多少占多少,虚拟机磁盘大小不要等于剩余空间总量,否则快照、临时交换文件会无处存放,统计显示,磁盘使用率达到90%以上时,io性能出现明显波动。

图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/917293.html

赞 (0)
上一篇 2026年10月14日 23:52
下一篇 2026年10月14日 23:59

相关推荐

  • aws怎么绑定域名,aws绑定域名详细步骤和常见问题

    AWS绑定域名的核心步骤:三步完成,安全高效要将域名成功绑定至AWS资源(如S3静态网站、CloudFront分发、EC2实例或API Gateway),关键在于正确配置DNS记录与AWS资源端点,并确保SSL/TLS证书匹配,整个流程可分为:域名解析准备、AWS资源配置、证书与安全加固三步,以下结合实战经验……

    2026年4月18日
    08262
  • 万网域名转入优惠码哪里有?万网域名转入优惠码大全2024

    万网域名转入优惠码的本质,是企业及个人用户在域名资产管理中降低续费成本、优化资源配置的高效策略,其核心价值在于通过官方或渠道商提供的折扣入口,实现域名转移成本的最小化与权益最大化,直接使用有效的转入优惠码,通常能将域名转入价格降至市场常规价格的5折甚至更低,且多数情况下包含了域名续费一年的时长,这是域名全生命周……

    2026年3月13日
    02592
  • 域名优惠吗,域名注册打折优惠

    域名确实存在显著优惠空间,但“优惠”并非无底线低价,而是取决于注册商策略、续费周期及是否避开热门后缀的溢价陷阱,2026年主流注册商通过“首年低价+长期套餐”模式实现综合成本降低,在数字化基建日益完善的2026年,域名作为互联网入口,其价格体系已从单纯的“注册费”演变为包含隐私保护、DNS解析、SSL证书绑定的……

    2026年6月6日
    01814
    • 服务器间歇性无响应是什么原因?如何排查解决?

      根源分析、排查逻辑与解决方案服务器间歇性无响应是IT运维中常见的复杂问题,指服务器在特定场景下(如高并发时段、特定操作触发时)出现短暂无响应、延迟或服务中断,而非持续性的宕机,这类问题对业务连续性、用户体验和系统稳定性构成直接威胁,需结合多维度因素深入排查与解决,常见原因分析:从硬件到软件的多维溯源服务器间歇性……

      2026年1月10日
      020
  • 如何正确设置域名A记录?详解高效解析教程与常见问题解答

    域名A记录解析教程:什么是A记录?A记录(Address Record)是DNS(域名系统)中的一个记录类型,用于将域名指向一个IP地址,就是告诉DNS服务器,当有人访问这个域名时,应该将请求转发到哪个IP地址,为什么要解析A记录?解析A记录的目的是为了让域名指向特定的服务器,以便用户可以通过域名访问到网站,你……

    2025年12月11日
    03650

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

评论列表(4条)

  • cool129的头像
    cool129 2026年10月14日 23:54

    这篇文章写得非常好,内容丰富,观点清晰,让我受益匪浅。特别是关于安装虚拟机的部分,分析得很到位,给了我很多新的启发和思考。感谢作者的精心创作和分享,期待看到更多这样高质量的内容!

    • brave848er的头像
      brave848er 2026年10月14日 23:55

      @cool129:这篇文章的内容非常有价值,我从中学习到了很多新的知识和观点。作者的写作风格简洁明了,却又不失深度,让人读起来很舒服。特别是安装虚拟机部分,给了我很多新的思路。感谢分享这么好的内容!

  • 云digital260的头像
    云digital260 2026年10月14日 23:56

    这篇文章写得非常好,内容丰富,观点清晰,让我受益匪浅。特别是关于安装虚拟机的部分,分析得很到位,给了我很多新的启发和思考。感谢作者的精心创作和分享,期待看到更多这样高质量的内容!

  • 木木2329的头像
    木木2329 2026年10月14日 23:56

    这篇文章的内容非常有价值,我从中学习到了很多新的知识和观点。作者的写作风格简洁明了,却又不失深度,让人读起来很舒服。特别是安装虚拟机部分,给了我很多新的思路。感谢分享这么好的内容!