惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Know Your Adversary
Know Your Adversary
C
CERT Recently Published Vulnerability Notes
V
Vulnerabilities – Threatpost
N
News | PayPal Newsroom
O
OpenAI News
A
About on SuperTechFans
月光博客
月光博客
Martin Fowler
Martin Fowler
L
LangChain Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
aimingoo的专栏
aimingoo的专栏
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V2EX - 技术
V2EX - 技术
博客园 - 司徒正美
大猫的无限游戏
大猫的无限游戏
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
人人都是产品经理
人人都是产品经理
T
Tor Project blog
D
DataBreaches.Net
Cloudbric
Cloudbric
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
云风的 BLOG
云风的 BLOG
F
Full Disclosure
S
SegmentFault 最新的问题
Vercel News
Vercel News
T
Tailwind CSS Blog
Schneier on Security
Schneier on Security
宝玉的分享
宝玉的分享
M
MIT News - Artificial intelligence
博客园 - 【当耐特】
P
Privacy International News Feed
美团技术团队
S
Secure Thoughts
P
Privacy & Cybersecurity Law Blog
Google DeepMind News
Google DeepMind News
F
Fortinet All Blogs
Scott Helme
Scott Helme
Forbes - Security
Forbes - Security
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Recent Announcements
Recent Announcements
AWS News Blog
AWS News Blog
Stack Overflow Blog
Stack Overflow Blog
S
Security Affairs
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
The GitHub Blog
The GitHub Blog
T
Tenable Blog
Cyberwarzone
Cyberwarzone
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
J
Java Code Geeks
T
Threatpost

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派 万字剖析:千问App深度体验报告(2026) - 少数派 在2026年,如何真正防止别人抄袭你的作品 - 少数派 怎么用 50 块搭个 AI 语音助手?我踩了 3 天坑 - 少数派 YeeroAI:让 AI 对话真正成为知识管理的一部分 - 少数派 爬泰山 - 少数派 「旅图显影」 App 更新:这次,我们补上了一点「手感」 - 少数派 假期出门太折磨?我的 23 条经验帮你规划惬意旅行 - 少数派 工作流会变吗 - 少数派 Claude Opus 4.6 怎么用最省钱?我测了 5 种方案 - 少数派 GPT Image 2 让图文并茂不再稀罕 - 少数派 用户侧出发——什么是AI,我要不要学习? - 少数派 找片、转存、整理、播放一条龙!让你的付费网盘值回票价 - 少数派 欢迎试用!日课一问2.0插件 - 少数派 自己做的MDeditor,原本想购买 Typora 试了两次支付不成功,干脆自己做一个 - 少数派 vibe coding了一个 3MB 的小工具,让 ~/Downloads 彻底告别混乱 - 少数派 因为受不了 Mac 的风扇策略,我做了一个风扇控制工具 - 少数派 别只怪模型 - 少数派 Warp 终端的 AI 功能怎么用?我测了一周的体验 - 少数派 AI 写代码老是出 bug?这 5 个配置我后悔没早知道 - 少数派 「新玩意」苹果出相机可能就这样:Sigma BF + 45mm F2.8 DG Contemporary - 少数派 一个面向2030年的AI操作系统是什么样子的:浅谈cola这款有灵魂的Agent - 少数派 别只看写代码 - 少数派 每天解决10个问题,还是一口气攻坚解决400个? - 少数派 AI 交易机器人怎么搭?我用 Claude 跑了一周实盘 - 少数派 Maptoposter Online:把你爱的城市画成艺术海报 - 少数派 Function Calling 怎么用?我测了 3 个模型发现差距真大 - 少数派 Legend Talk:我做了个 AI 圆桌,让 160 位思想家围着你的问题转 - 少数派 如何找到自己的蓝方?在小县城寻找压力测试 - 少数派 语音输入与软件接口|2026年聊AI时,我们都聊些什么(上) - 少数派 混动已经卖爆,纯电又来补刀——钛7闪充版简直“不讲武德” - 少数派 本月玩什么|朋友收藏、识质存在、沙罗周期 - 少数派 为什么要每天坚持输出? - 少数派 Claude API 挂了好几个小时,你的项目有备用方案吗? - 少数派 Function Calling 没你想的复杂——我用它做了个有点用的工具 - 少数派 登录系统立即播放视频或者图片音乐的软件 - 少数派 我为什么创建 FlipHTML5 下载工具 - 少数派 残局没电?多品牌外设电量统一管理软件EasyBluetooth已支持RTSS游戏内显示以及AIDA64 - 少数派 前往通义路的路 - 少数派 太好看了,媲美Sun的个人导航页,NAS部署星云门户 - 少数派 乌黑嘴唇“一键检测”上线了 - 少数派 派早报:Claude AI 接入多个创意软件生态、FILCO 生产方接手品牌等 - 少数派 【更新】BearCLI、Claude 连接器与 MCP 服务器 - 少数派 记了上千条流水,还是看不懂财务?我做了一个让 AI 读懂账本的工作台 - 少数派 MINI R56 升级原厂 Sport 模式 - 少数派 新玩意 | 一棵柠檬树(仿真版) - 少数派 Momenta的“物理AI”野望,需迈过“含摩量”这道关 - 少数派 网页直接投屏控制手机!NAS一键部署PandaScrcpy,流畅丝滑可远程。 - 少数派 众测|邀你一同探索随身 AI 硬件入口 YoooClaw C·ONE - 少数派 2050大会:分享时间是真诚 参会记 - 少数派 iPad 赋能电影创作:国内首部宣纸手绘长片《燃比娃》的幕后故事 - 少数派 AI的审美:我用 8 个大模型给 100 张旅行照片打分 - 少数派 普通人如何破圈?去参加一个本地协会 - 少数派 把极空间的图标全换了,主题DIY全攻略打造你的专属NAS桌面 - 少数派 电子便签墙,帮你实现便签自由 - 少数派 我如何用三个 CLI 工具取代文档创建需求 - 少数派 原来真的有人可以玩一辈子 - 少数派 社区速递 139 | 派友热议三月买了啥、复古单反尼康 Df 体验 - 少数派 06 作品的赏析与评价 - 少数派 TDS REVIEW|索尼 WF-1000XM6 降噪真无线耳机体验 - 少数派 35.98万起售的第二代腾势D9,我看重的不是堆料,而是不凑合 - 少数派 鼠须管 Squirrel 皮肤配置指北 - 少数派 从watch ultra2换到redmi watch6 - 少数派 派早报:阿里巴巴发布视频生成模型 HappyHorse 1.0 等 - 少数派 别迷信1M - 少数派 家人们天塌了!网盘“大封杀”,多个渠道多条路,NAS部署PanHub - 少数派 AI与人勾心斗角!NAS一键部署AI狼人杀,假日休闲必备。 - 少数派 电商必备!Comfyui工作流批量生图插件,一次生成12张!支持Nano banana pro模型 - 少数派 Comfyui工作流配置Gpt-image-2模型教程,0.03/张 - 少数派 OpenClaw第三方APi怎么配置?可使用Gpt-image-2模型 - 少数派 会员社区话题精选 Ep. 103 - 少数派
性能更好的虚拟机,virt-manager 的安装与使用 - 少数派
2023-07-13 · via 少数派

前言

当想要尝试新的发行版,或者是遇到一些只能在 Windows 系统上运行的软件,我会选择在虚拟机中运行,能够自己随便折腾而不影响到宿主系统。在之前我使用的虚拟机管理软件是 VirtualBox,这是一个开源免费的,支持多种平台的虚拟机管理软件。但我在使用 VirtualBox 过程中也渐渐有些不爽,首先是要想让虚拟机与宿主机有较好的交互,比如文件共享,自动切换分辨率之类的,就需要在虚拟机中安装扩展包,但是在一些 Linux 发行版上安装扩展包后经常出一些玄学问题;还有就是性能比较差,图形 3D 加速配置什么的也比较迷。

就在最近我发现了另一个虚拟机管理软件,叫做 virt-manager,这个软件利用了 Linux 内核 KVM 功能和 virtio 半虚拟化技术,可以让虚拟机有较少的性能损失,运行也更流畅,当然这些功能需要 Linux 内核支持,其他系统比如 Windows 自然没办法使用这个软件(但是理论上在 Windows 上通过 WSL 安装并运行 virt-manager 应该也是可行的,我没有试过,感兴趣的可以尝试一下)。virt-manager 并不是一个完整的虚拟机管理软件,而是 Libvirt 的一个图形化前端,安装时除了要安装 virt-manager,也需要安装并配置好 Libvirt,可能是这个软件相对较新,网上文档比较少,我搜索到的很多 virt-manager 的安装教程都各不相同,最后我发现 ArchWiki 上的这个教程相对比较可靠,但也有些问题。所以我在这里记录一下我的安装过程以及一些使用心得。

软件安装

本节的软件安装是在 Arch Linux 上进行的,在其他的发行版上包管理器命令和软件包名可能不同,请注意。

需要安装的软件包有 virt-manager 软件本体,qemu-desktop 用来支持 KVM/QEMU,dnsmasq 用来为虚拟机分配网络地址,我看到有些教程说要安装 iptables 和 ebtables 来为虚拟机配置网络,不过 ebtables 的功能已经被集成进了 nftables,而且 iptables 已经停止支持了,所以只需安装 iptables-nft 就够了。

接下来要对 Libvirt 进行一些配置,网上的大部分教程推荐启用 libvirtd.service 这个服务,但在 ArchWiki 的教程中提到,如果只用 QEMU 的话,其实是不需要启用这个服务的,使用 LXC 才需要启用服务。我自己经过测试,发现如果只用 QEMU/KVM 用户会话,是不需要启用服务的,而如果使用的是默认的 QEMU/KVM 会话,是需要启用服务的,否则会连接失败。

要想让非 root 用户使用 virt-manager,还需要配置相关的权限,首先编辑 /etc/libvirt/libvirtd.conf,找到以下两行,如果有井号注释就取消注释,把 unix_sock_group 设置为 libvirt,把 unix_sock_rw_perms 设置为 0770:

unix_sock_group = 'libvirt'
unix_sock_rw_perms = '0770'

之后将自己的用户加入 libvirt 的用户组:

sudo groupadd libvirt
sudo usermod -a -G libvirt username

然后编辑 /etc/libvirt/qemu.conf,找到 user = "libvirt-qemu"group = "libvirt-qemu" 这两行,取消注释,然后将引号中的内容改为自己的用户名:

# Some examples of valid values are:
#
#       user = "qemu"   # A user named "qemu"
#       user = "+0"     # Super user (uid=0)
#       user = "100"    # A user named "100" or a user with uid=100
#
user = "username"

# The group for QEMU processes run by the system instance. It can be
# specified in a similar way to user.
group = "username"

首次启动

首次启动 virt-manager 时,软件会默认使用 root 用户的 QEMU/KVM 会话,如果没有启用 libvirtd.service 服务,还会提示连接失败,而且默认的 QEMU/KVM 会话会将相关文件保存在根目录下,后期的管理也有些不方便,所以可以选择更改到普通用户的 QEMU 连接。点击右上角的文件>添加连接,虚拟机管理程序选择为 QEMU/KVM 用户会话,点击连接即可,这样相关的文件会保存到用户目录的 ~/.local/share/libvirt/ 下面,后期管理相对方便一些,不过值得注意的是,用户会话下一些功能会受到限制,但对于普通用户也完全够用了。如果想的话,也可以选择删掉默认的 QEMU 连接。

创建虚拟机

使用 virt-manager 创建新虚拟机也相对比较简单,在软件主界面,点击右上角的加号即可添加虚拟机,这里我用包含非自由固件的 Debian11 网络安装 iso 为例,软件会自动检测系统的类型,而且它不是用文件名检测的,包含非自由固件的 Debian11 下载后的 iso 默认文件名并不包含 Debian 关键字,但软件还是检测到了是 Debian11,当然如果检测错误也可以手动选择系统类型,之后按照正常的步骤一直下一步,除了 CPU、内存和虚拟磁盘大小,其他一般无需过多配置,如果想对虚拟机进行进一步配置,也可以在最后一步勾选 在安装前自定义配置,或者在系统安装好后再进行配置。不过需要注意的是,Libvirt 默认用的虚拟磁盘格式为 .qcow2,和 VirtualBox 用的虚拟磁盘格式并不通用,而且 qcow 格式的虚拟磁盘似乎也并不支持空间动态分配,如果分配了 40G 的虚拟磁盘,那么就会占用 40G 空间,即使虚拟磁盘是空的。

管理虚拟机

在 virt-manager 的主界面,选择已经安装好的虚拟机,右键选择打开就可以打开虚拟机的控制台,左上角从左到右分别是「显示图形控制台」、「显示虚拟硬件详情」还有几个电源选项,右上角是全屏,点击「显示虚拟硬件详情」就可以查看虚拟机的虚拟硬件并进行配置了,在这里可以管理、添加和删除虚拟硬件。下面介绍一些我摸索出来的使用技巧。

虚拟显示器 3D 加速

如果是 Linux 系统的虚拟机,因为 Linux 内核已经对 virtio 有很好的驱动支持,所以 virt-manager 默认就会使用 virtio 来虚拟化显示设备,从而有更好的性能,但是 virt-manager 默认并没有为显示设备开启 3D 加速,所以在 Linux 虚拟机的图形界面会出现动画缺失、卡顿与撕裂,为了解决这个问题,需要手动开启 3D 加速。

首先在「显示虚拟硬件详情」界面,找到「显示协议」一项并选中,在右边的详情页面,类型「spice 服务器」不用修改,将监听类型修改为「无」,并在下方勾选「OpenGL」,不要忘了修改完要在右下方点击「apply」保存修改。

之后找到「显卡」一项并选中,在右边详情页面勾选「3D 加速」并保存修改。然后打开虚拟机就发现图形界面很流畅了。

virt-manager 在修改完虚拟硬件并保存前会检查配置文件是否有不兼容,显示协议中「OpenGL」没有勾选,显卡中就无法勾选「3D 加速」,而若不将监听类型修改为「无」就无法勾选「OpenGL」,所以操作一定要按顺序来,不然就会无法保存修改。

另外我发现 Linux 虚拟机开启了 virtio 3D 加速的话,在 tty 界面命令行滚动时会有撕裂,可能也是因为这个原因 virt-manager 默认没有开启 3D 加速吧,所以如果安装的 Linux 虚拟机不使用图形界面的话,还是不要开启 3D 加速比较好。

而 Windows 虚拟机就会复杂一些,因为 Windows 默认并没有 virtio 驱动支持,所以在创建 Windows 虚拟机时 virt-manager 默认会使用 QXL 显示驱动,虽然 QXL 也是一个性能损失相对较小的方案,但我个人使用下来觉得还是不如 virtio 显示驱动流畅。为了让 Windows 使用 virtio 显示驱动,需要为 Windows 虚拟机安装 virtio 驱动软件。

在网上搜索「virtio Windows driver」,我找到了 Proxmox VE 的这篇文档,文档中推荐使用 Fedora 社区提供的 virtio 驱动,可以在这里下载最新稳定版或这里下载最新的构建版本,下载后是一个 iso 文件。打开 Windows 虚拟机的「显示虚拟硬件详情」页面,找到「SATA CDROM」,没有就在右下角点击添加硬件新建一个,在右边的详情页面中,「源路径」处选择刚刚下载的 iso 文件。

启动进入 Windows 虚拟机,会看到有一个光驱设备,打开后,有两个 msi 可执行文件,64 位系统需要运行 virtio-win-gt-x64.msi,一路下一步就可以安装上 virtio 驱动了。另外也可以选择运行 virtio-win-guest-tools.exe 来安装 QEMU Guest Agent 和 SPICE agent 来获得更好的远程桌面的体验。

之后的步骤就和上文差不多,显示协议里面将监听类型修改为「无」并勾选「OpenGL」,显卡里面将型号改为「virtio」并勾选上「3D 加速」,再次启动虚拟机,就可以使用了。

宿主机与虚拟机文件共享

在虚拟机的使用场景中,让虚拟机与宿主机共享文件是一个十分有用的功能,virt-manager,或者说 Libvirt 是通过 virtiofs 驱动来实现文件共享的,不过需要注意的是在 QEMU/KVM 用户会话模式是无法通过 virtiofs 来共享文件的,在 root 模式下才可以使用。

首先打开对应虚拟机的控制台,点击「显示虚拟硬件详情」,找到「内存」一项,在右边详情页勾选「Enable shared memory」并保存修改。

之后点击左下角添加硬件,选择「文件系统」,源路径选择宿主机上想要共享的文件夹,目标路径随便填上一个名字即可,比如这里我填的是「share」。

之后打开虚拟机,Linux 系统的话,运行:

sudo mount -t virtiofs share /mnt

就可以将共享文件夹挂载到虚拟机中的 /mnt/ 路径,其中的「share」就是之前目标路径里填的名字。

Windows 虚拟机的话要更麻烦一些,我没有试过,但是看到有这个教程,感兴趣的可以参考一下。

其实,折腾了一圈,我最后发现,还是在宿主机上开一个 smb 共享 来的更为简单。

总结

Linux 内核的 KVM/QEMU 支持与 Libvirt 的虚拟机管理功能本身其实是为了服务器和专业用途而设计的,因此具备很强大的功能,但随之带来的是相对较高的配置难度和纯命令行的配置方法,对于普通用户的使用,还是有些不方便,因此诞生了很多图形化的软件尝试简化 Libvirt 的配置难度,除了本篇文章介绍的 virt-manager,类似的还有 GNOME Boxes,相对而言 GNOME Boxes 的使用要更简单一些,但支持的功能也会少一些。但即便如此,这类软件也很难做到像 VirtualBox 和 VMware 这类知名虚拟机管理软件接近开箱即用的体验和多平台支持,不过好处是更少的性能损失和更灵活的配置,这个看自己的权衡吧。