KVM更换br0网桥,挂载磁盘以及开机自动挂载
KVM 更换br0网桥挂载磁盘以及开机自动挂载1、KVM更换br0网桥在学习工作当中如果想从宿主机克隆一台虚拟机挂载到本地局域网地址做对外服务比如说NGINX、MYSQL等等。但是虚拟机用的默认虚拟网卡 virbr0 无法对外提供服务怎么办我们可以在宿主机搭建 br0 网桥再给虚拟机修改为桥接模式。一、确认宿主机信息ipa# 查看物理网卡名比如 enp1s0、ens33 等iproute# 查看网关地址注意下面所有命令里的eno1enp1s0是我的宿主机和虚拟机网卡名真实情况替换成你自己的IP/网关同样。二、在宿主机创建网桥创建网桥并配置静态IP# 1. 创建网桥 br0nmcli connectionaddtypebridge ifname br0 con-name br0# 2. 给网桥配置静态IP替换成你宿主机的内网IP、掩码、网关、DNSnmcli connection modify br0\ipv4.method manual\ipv4.addresses10.10.30.9/24\ipv4.gateway10.10.30.1\ipv4.dns10.10.30.1 114.114.114.114# 3. 把物理网卡绑定到网桥作为网桥的从网卡nmcli connectionaddtypebridge-slave ifname enp2s0 master br0 con-name br0-slave-eno1# 4. 启用网桥配置执行后宿主机IP会切换到br0远程SSH会短暂断连重连即可nmcli connection up br0 nmcli connection up br0-slave-eno1验证网桥是否生效重连 SSH 后执行ipa show br0能看到物理网卡eno1状态为master br0, br0的inet 10.10.30.9/24说明网桥配置成功。三、修改虚拟机网卡为桥接模式必须先关闭虚拟机再修改网卡配置避免异常。关闭目标虚拟机virshshutdownRocky10-node02等待虚拟机完全关机virsh list --all看到虚拟机状态为shut off后继续下一步替换网卡模式NAT -- 桥接# 删除原有的 NAT 模式网卡绑定 virbr0virt-xml Rocky10-node02 --remove-device--network# 新增桥接模式网卡绑定 br0使用 virtio 高性能驱动virt-xml Rocky10-node02 --add-device--networkbridgebr0,modelvirtio我在做这一步的时候报错了经过查询才知道--network后要匹配网卡参数2.1一键删除虚拟机所有网卡如果虚拟机只有一块网卡那么参数可以用all即删除虚拟机所有网卡virt-xml Rocky10-node02 --remove-device--networkall但是如果虚拟机有多块网卡还是要指定网卡 MAC 的方法删除更精准2.2指定 MAC 精准删除多网卡场景查看网卡 MAC 地址virshdumpxml Rocky10-node02|grep-A5interface2.3替换网卡模式再次# 删除原有的 NAT 模式网卡绑定 virbr0virt-xml Rocky10-node02 --remove-device--networkmac52:54:00:af:93:bd# 新增桥接模式网卡绑定 br0使用 virtio 高性能驱动virt-xml Rocky10-node02 --add-device--networkbridgebr0,modelvirtio三、 启动虚拟机VNC控制台配置内网静态IP启动虚拟机virshstart Rocky10-node02进入宿主机控制台打开VNC网卡更换后原 virbr0 的 IP 会失效通过 VNC 控制台连接虚拟机虚拟机网卡名是enp1s0执行以下命令配置内网IPnmcli connection modify enp1s0\ipv4.method manual\ipv4.addresses10.10.30.6/24\ipv4.gateway10.10.30.1\ipv4.dns10.10.30.1 114.114.114.114# 重启网卡使配置生效nmcli connection up enp1s0虚拟机内验证网络# 确认IP已生效ipa show enp1s0# 测试网关连通性ping10.10.30.1-c2# 测试外网连通性pingbaidu.com-c22、虚拟机挂载磁盘目标新建 50G qcow2 磁盘附加到虚拟机在虚拟机内部格式化/etc/fstab 永久挂载一、宿主机操作存放磁盘的标准目录# 进入虚拟机磁盘存储目录一般为 /var/lib/libvirt/images/# 我习惯把它放在挂载数据目录 /Data/kvm/img/ 中cd/Data/kvm/img/# 创建50G qcow2 磁盘文件名 node02-data.qcow2qemu-img create-fqcow2 node02-data.qcow2 50G参数说明-f qcow2指定镜像格式50G最大容量50GB稀疏文件实际占用随数据增长。将磁盘设备附加到虚拟机node02无需关机# 执行附加盘符vdb原系统盘vdavirshattach-disk\--domainRocky10-node02\--source/Data/kvm/img/node02-data.qcow2\--targetvdb\--targetbusvirtio\--driverqemu\--subdriverqcow2\--cachewriteback\--persistent参数解释virsh attach-disk \命令本体virsh 是 libvirt 虚拟化的命令行管理工具attach-disk 是子命令功能为「给虚拟机挂载 / 新增磁盘设备」支持在线热插拔。--domain Rocky10-node02 \参数作用指定目标虚拟机名称也就是你要给哪台虚拟机加磁盘。取值逻辑必须和 virsh list 里显示的虚拟机名称完全一致。--source /Data/kvm/img/node02-data.qcow2 \参数作用指定宿主机上的磁盘镜像文件绝对路径也就是这块虚拟磁盘对应的实体文件存在宿主机的哪个位置。对应 XML注意必须使用绝对路径且文件必须提前创建好。--target vdb \参数作用指定虚拟机内部识别到的磁盘设备名。取值逻辑virtio 总线的磁盘统一以 vd 开头系统盘默认是 vda第二块数据盘命名为 vdb第三块为 vdc以此类推。对应 XML效果虚拟机内部执行 lsblk 会看到 /dev/vdb 这块新磁盘。--targetbus virtio \参数作用强制指定磁盘使用 virtio-blk 高性能半虚拟化总线。对应 XML为什么必须显式写如果不指定部分环境会默认使用 ide/sata 兼容总线IO 性能会下降数倍显式声明可以杜绝兼容漂移保证性能。--driver qemu \参数作用声明磁盘的后端虚拟化驱动名称。对应 XML固定取值KVM 环境下底层由 qemu 负责硬件模拟所以固定填 qemu。之前报错根源前几次错误地把 qcow2、file 填给了这个参数驱动名只能是 qemu不能是镜像格式或源类型。--subdriver qcow2 \参数作用指定磁盘镜像的格式子驱动告诉 libvirt 源文件是 qcow2 格式需要用 qcow2 驱动解析。对应 XML为什么必须写不声明的话 libvirt 可能默认按 raw 裸格式识别会导致磁盘容量异常、快照功能失效。--cache writeback \参数作用设置磁盘的缓存策略。对应 XMLwriteback 含义回写模式数据先写入宿主机内存缓存再异步刷入物理磁盘IO 性能更好是生产数据盘的常用平衡选项。其他可选值writethrough直写性能低但数据安全性更高、none无缓存纯透传。--persistent参数作用将本次磁盘配置永久写入虚拟机的 XML 配置文件。不加的后果但磁盘仅临时生效但虚拟机重启后会自动消失适合临时测试场景加上的效果虚拟机重启、宿主机重启后这块磁盘都会自动挂载和手动编辑 XML 冷配置的效果完全一致。可选关机冷插拔# 关闭虚拟机virshshutdownnode02# 编辑虚拟机硬件配置virshedit node02# 在devices块内插入这段磁盘配置disktypefiledevicediskdrivernameqemutypeqcow2cachewriteback/sourcefile/var/lib/libvirt/images/node02-data.qcow2/targetdevvdbbusvirtio/addresstypepcidomain0x0000bus0x00slot0x07function0x0//disk# 保存退出后启动虚拟机virshstart node02执行后验证配置是否正确# 查看虚拟机已挂载的所有磁盘virshdomblklist Rocky10-node02二、进入虚拟机 node02 操作分区、格式化、挂载思路把/dev/vdb数据盘制作成LVM逻辑卷 挂载到/Data后续空间不足可以在线无损扩容无需卸载、无需重启。当前/dev/vdb是50G 空白磁盘无分区、无数据# 确认lvm工具已安装Rocky默认自带缺失则安装yuminstall-ylvm2# 确认磁盘存在lsblk /dev/vdb创建 GPT 分区并标记为 LVM 类型# 1. 创建GPT分区表parted/dev/vdb mklabel gpt-s# 2. 创建单个主分区占满全部空间parted/dev/vdb mkpart primary xfs0%100%-s# 3. 将分区1标记为LVM类型核心否则无法做物理卷parted/dev/vdbset1lvm on-s# 4. 刷新内核分区表无需重启partprobe /dev/vdb验证lsblk /dev/vdb# 输出应包含 vdb1 分区创建物理卷 PVPhysical Volumepvcreate /dev/vdb1验证pvs# 输出能看到 /dev/vdb1 为PV大小50G创建卷组 VG Volume Group将 PV 加入一个卷组后续新增磁盘都可以放进这个卷组进行扩容。这里命名为vg_datavgcreate vg_data /dev/vdb1验证vgs# 输出 vg_data 总大小50G剩余空间50G创建逻辑卷 LVLogical Volume从卷组里规划出空间生成可格式化、可挂载的逻辑卷。这里直接把卷组全部 50G 空间划归逻辑卷命名为lv_data# -l 100%FREE使用卷组全部剩余空间# -n lv_data指定逻辑卷名称lvcreate-l100%FREE-nlv_data vg_data验证lvs# 输出 lv_data 大小50G归属vg_data将磁盘格式化为 XFS 文件系统mkfs.xfs /dev/mapper/vg_data-lv_data验证blkid /dev/mapper/vg_data-lv_data# 输出 TYPExfs 即为正常将逻辑卷临时挂载到 /Data 目录# 创建挂载点已创建则跳过mkdir-p/Data# 挂载逻辑卷mount/dev/mapper/vg_data-lv_data /Data验证df-h/Data# 显示容量约50G文件系统为/dev/mapper/vg_data-lv_data开机自动挂载将挂载命令写入 /etc/fstabLVM 设备名由 VGLV 名固定不会像/dev/vdb1那样盘符漂移直接用设备路径即可稳定可靠。编辑/etc/fstab末尾添加一行/dev/mapper/vg_data-lv_data /Data xfs defaults,noatime00参数说明defaults,noatime关闭文件访问时间记录提升 IO 性能末尾0 0不 dump 备份开机不做磁盘自检XFS 数据盘标准配置校验防止开机进入救援模式卡住# 测试fstab语法无输出配置正确mount-a# 重载systemd配置systemctl daemon-reload三、后续空间不足两种扩容方案方案A新增一块磁盘必须后续再增加一块30G的/dev/vdc扩容步骤宿主机给虚拟机新增 vdc 磁盘qemu-img create-fqcow2 node02-data.qcow2 30G用attach-disk命令把新的磁盘挂载到虚拟机/dev/vdc虚拟机内重复 「分区→做 PV」步骤把新 PV 加入现有卷组vgextend vg_data /dev/vdc1扩容逻辑卷lvextend-l100%FREE /dev/mapper/vg_data-lv_data在线扩容 XFS 文件系统xfs_growfs /Data验证df -h /Data容量已增加方案B扩容现有 vdb 磁盘的 qcow2镜像宿主机扩容数据盘的 qcow2 文件再到虚拟机内扩容分区、PV、LV宿主机扩容数据盘镜像虚拟机关机执行最稳妥qemu-img resize node02-data.qcow2 30G虚拟机内扩容分区growpart /dev/vdb1partprobe /dev/vdb扩容物理卷 PVpvresize /dev/vdb1扩容逻辑卷 文件系统同方案A第4、5步lvextend-l100%FREE /dev/mapper/vg_data-lv_data xfs_growfs /Data这两种扩容方案我没有实际做还请各位有需要自己测试一下

相关新闻

如何用psd2fgui一键将PSD设计稿转换为FairyGUI资源包:游戏UI开发效率提升300%

如何用psd2fgui一键将PSD设计稿转换为FairyGUI资源包:游戏UI开发效率提升300%

如何用psd2fgui一键将PSD设计稿转换为FairyGUI资源包:游戏UI开发效率提升300% 【免费下载链接】psd2fgui A tool for converting psd file to fairygui package. 项目地址: https://gitcode.com/gh_mirrors/ps/psd2fgui 还在为繁琐的PSD到FairyGUI转换而烦恼…

2026/7/17 20:44:31阅读更多 →
05-08-YooAsset源码-Unity缓存系统与内存管理

05-08-YooAsset源码-Unity缓存系统与内存管理

源码-资源缓存机制 篇章:05-源码深度-运行时核心模块 阅读时间:约 25 分钟 前置知识:了解引用计数机制 一、引言 本章将深入解析 YooAsset 资源缓存机制的源码实现。资源缓存是 YooAsset 资源管理的重要组成部分,通过缓存机制可以…

2026/7/17 20:44:31阅读更多 →
Creo二次开发实战:MCADExTools安装配置与阶梯剖视图自动化

Creo二次开发实战:MCADExTools安装配置与阶梯剖视图自动化

1. 项目概述:MCADExTools 是什么,为什么值得花时间装它MCADExTools 这个名字在 Creo 用户圈里不算陌生,但真正搞清楚它到底能干什么、值不值得为它折腾安装流程的人,其实不多。我第一次听说它,是在帮一家做精密齿轮箱的…

2026/7/17 20:44:31阅读更多 →
WS51单片机ISP下载速度优化:从4.8kbps到25.6kbps实战指南

WS51单片机ISP下载速度优化:从4.8kbps到25.6kbps实战指南

如果你正在使用WS51系列单片机进行开发,可能会遇到一个共同的痛点:ISP下载速度太慢。传统的ISP下载程序往往只有几kbps的速度,每次烧录程序都需要等待几十秒甚至更长时间,这在快速迭代的开发过程中简直是效率杀手。最近&#xff0…

2026/7/17 21:49:36阅读更多 →
JavaScript性能优化:提升Web应用效率的关键策略

JavaScript性能优化:提升Web应用效率的关键策略

1. JavaScript性能优化的重要性在Web开发领域,性能优化始终是开发者面临的核心挑战之一。随着前端应用变得越来越复杂,JavaScript代码的执行效率直接影响着用户体验。一个加载缓慢、交互卡顿的网页会让用户迅速失去耐心,导致跳出率上升和转化…

2026/7/17 21:49:36阅读更多 →
OpenCV计算机视觉实战:从图像处理到文档识别

OpenCV计算机视觉实战:从图像处理到文档识别

1. 项目概述:OpenCV在计算机视觉中的核心价值OpenCV(Open Source Computer Vision Library)作为计算机视觉领域最广泛使用的开源库,已经成为图像处理和信息识别的基础设施。这个跨平台的计算机视觉库最初由Intel开发,如…

2026/7/17 21:49:36阅读更多 →
deepcode-cli:终端AI编程助手实战指南与效率优化

deepcode-cli:终端AI编程助手实战指南与效率优化

1. 先搞清楚它到底解决什么实际问题如果你经常在终端里写代码、改配置、排查问题,可能会遇到这种情况:需要快速写一段脚本,但记不清某个命令的参数;或者想优化一个复杂函数,但不确定哪种写法更高效。这时候如果还要切到…

2026/7/17 21:49:36阅读更多 →
Sol Ultra项目:计算辅助证明解决Erdős图论难题的技术解析

Sol Ultra项目:计算辅助证明解决Erdős图论难题的技术解析

这次我们来看一个数学领域的突破性进展——Sol Ultra 项目成功解决了著名的 Erdős 问题 #793。这个项目不是传统的软件工具或AI模型,而是数学证明领域的重要成果,对于理解组合数学和图论中的基础问题具有重要意义。Erdős 问题是以著名数学家保罗Erdős…

2026/7/17 21:49:36阅读更多 →
TicketFlow AI 项目实践(六):模型压缩、LLM 分类与 Flask 部署

TicketFlow AI 项目实践(六):模型压缩、LLM 分类与 Flask 部署

完成BERT微调后,项目继续探索模型压缩、大模型分类和服务化。本篇是TicketFlow AI系列的工程落地总结。 一、为什么需要模型压缩 BERT模型语义能力较强,但权重较大、CPU推理成本较高。项目分别实现动态量化、非结构化剪枝和知识蒸馏,比较模…

2026/7/17 21:44:35阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/17 10:42:55阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/17 8:31:03阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/17 13:22:23阅读更多 →
VS Code 高效配置与个性化定制全攻略

VS Code 高效配置与个性化定制全攻略

1. VS Code 高效配置基础作为一款轻量级但功能强大的代码编辑器,VS Code 的默认配置已经能满足基本需求,但通过合理调整设置可以大幅提升编码效率。我使用 VS Code 已经有五年多时间,期间尝试过各种配置方案,总结出这套适合大多数…

2026/7/17 0:00:01阅读更多 →
从竞赛代码到桌面工具:让 SuperADD 与 SubspaceAD 真正跑进自己的图像

从竞赛代码到桌面工具:让 SuperADD 与 SubspaceAD 真正跑进自己的图像

在异常检测领域,很多优秀算法最初都是以研究代码的形式发布的。它们能够在固定测试集上复现实验结果,却不一定能被普通用户直接拿来测试自己的图片。尤其是最近很多算法仅提供在固定测试集的测试环境,而gradio的demo演示也不会提供。 对工程应用和在自己的图片上进行测试来…

2026/7/17 0:00:01阅读更多 →
WinRAR高效配置指南:从基础安装到高级压缩实战

WinRAR高效配置指南:从基础安装到高级压缩实战

前几天帮同事处理一个客户发来的压缩包,解压时系统自带的工具弹出一串乱码,换用 WinRAR 却顺利打开了。这种看似简单的场景,恰恰暴露了不同压缩工具在处理非标准编码、分卷压缩或加密文件时的差异。WinRAR 作为一款老牌工具,真正价…

2026/7/17 0:00:01阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/16 20:13:14阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/17 13:22:38阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/17 17:26:50阅读更多 →