Libvirt默认网络已激活,为何virt-install提示找不到该网络?
问题分析与解决步骤
核心现象
执行virt-install创建虚拟机时报错:
ERROR Network not found: no network with matching name 'default'
但sudo virsh net-list --all显示default网络处于active状态,ip a能看到virbr0网桥(状态DOWN是正常现象,无虚拟机连接时网桥会处于该状态,不影响使用)。
可能原因与对应解决方案
1. 权限不足导致无法读取系统级网络配置
你执行virsh时加了sudo(对应系统级libvirt实例),但执行virt-install时未加sudo,默认会使用用户级实例(qemu:///session),而用户级实例下不存在default网络。
解决办法:
给virt-install加上sudo权限执行:
sudo virt-install --import --name ubuntu --cpu host --ram 4096 --disk ubuntu.qcow2 --os-variant ubuntu20.04 --network network=default
2. libvirt网络定义异常
如果加了sudo仍报错,检查default网络的XML配置是否正常:
sudo virsh net-dumpxml default
确认输出里的<name>标签值为default,如果名称不符,修改后重启网络:
sudo virsh net-destroy default sudo virsh net-edit default # 修改<name>字段为default sudo virsh net-start default
3. 指定libvirt连接URI
若系统中存在多个libvirt实例,手动指定连接到系统级实例:
sudo virt-install --connect qemu:///system --import --name ubuntu --cpu host --ram 4096 --disk ubuntu.qcow2 --os-variant ubuntu20.04 --network network=default
4. 重建default网络(终极方案)
如果以上操作都无效,删除并重建default网络:
sudo virsh net-destroy default sudo virsh net-undefine default sudo virsh net-define /usr/share/libvirt/networks/default.xml sudo virsh net-start default sudo virsh net-autostart default
完成后重新执行virt-install命令即可。
内容的提问来源于stack exchange,提问作者Lionishy
相关产品推荐
相关产品推荐

