virsh 查看设备清单
排查虚机时最常看三类设备:网卡来自哪个虚拟网络、磁盘挂在哪条总线上、guest 内接口拿到了什么地址。virsh 对应提供 domiflist(网卡清单)、domblklist(磁盘清单,加 --details 看细节)和 domifaddr(接口地址)三条命令,是宿主侧定位问题的第一组动作。
基本信息
| 网卡清单 | virsh domiflist vm1,输出接口名、类型、来源网络、MAC 与型号 |
|---|---|
| 磁盘清单 | virsh domblklist vm1,加 --details 显示类型、设备与目标总线 |
| 接口地址 | virsh domifaddr vm1 --source agent|lease|arp |
| 来源差异 | agent 需 guest 内装了 qemu-guest-agent;lease 读 libvirt 的 DHCP 租约;arp 依赖地址解析 |
| 辅助命令 | virsh domstats、virsh domblkinfo 可给出更细的块设备信息 |
典型使用场景
- 网卡对不上账:确认虚机到底连在哪个虚拟网络,是否绑错网段
- 磁盘总线核查:排盘符漂移与 fstab 挂载失败时先看总线与目标设备名
- 查 guest 的 IP:网络不通但虚机在跑,用地址查询定位是哪一层的问题
- 变更前记录:动网络或磁盘配置前先存一份设备现状
- 容量巡检:结合块设备信息核对磁盘容量与宿主实际文件
设备排查三连
设备排查三连
virsh domiflist vm1 # 网卡:来源网络与型号
virsh domblklist vm1 --details # 磁盘:路径、类型与目标总线
virsh domifaddr vm1 --source agent # 需 guest 内已装 qemu-guest-agent
virsh domifaddr vm1 --source lease # 从 libvirt DHCP 租约读取
virsh domblklist vm1 # 先看清单再决定要不要进 guest 查输出字段读法
| 命令 | 字段 | 含义 |
|---|---|---|
| domiflist | Source | 连接到的虚拟网络或网桥名 |
| domiflist | Model | 网卡型号,virtio 性能优于兼容型号 |
| domblklist | Target | guest 内看到的设备名,如 vda、sda |
| domifaddr | Address | guest 内接口地址,需来源方式支持 |
--source agent 依赖 guest 内的 qemu-guest-agent:没装或服务没起时会直接报错,改用 lease 或 arp 方式即可。
domblklist 显示的路径是宿主侧文件或设备,可能带 backing 链;只看路径名就断定磁盘来源容易误判,必要时用 info 命令查镜像层级。
设备清单只是排查起点:网卡对不上就查虚拟网络与端口组,磁盘对不上就查存储池与镜像链,先在宿主侧确认配置再决定是否进 guest 里查。
装机阶段就把客户机代理装好,能省掉大量「怎么知道 guest 内 IP」的麻烦;没装时只能靠 DHCP 租约或 ARP 表近似推断,结论未必可靠。