KVM virbr0 加载失败

【问题描述】

Skip to end of metadata Go to start of metadata【问题描述】

kvm 安装完成查看自己建的网络virtbr0没了,ifconfig 后果然没了virbr0

=============================================================

然后尝试 virsh net-start default,又得到dnsmasq的错误:

error: Failed to start network default  error: internal error Child process (dnsmasq --strict-order --bind-interfaces

 --pid-file=/var/run/libvirt/network/default.pid --conf-file= --except-interface lo --listen-address 192.168.122.1 --dhcp-range 192.168.122.2,192.168.122.254

 --dhcp-lease-max=253 --dhcp-no-override) exited with status 2.

=========================================================

/var/log/message

Aug 28 19:27:16 ezzze dnsmasq[4357]: failed to create listening socket for 192.168.122.1: Address already in use Aug 28 19:27:16 ezzze dnsmasq[4357]: FAILED to start up

 

【思路分析】

 经过google查找资料

发现你要是单独安装dnsmasq和libvirt就会出现这个问题....

具体的扯皮在https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/231060

两边的人都不愿意改....但是提供了解决方案:

Following advice in http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=505522 We could for example have:

/etc/dnsmasq.d/libvirt   bind-interfaces   except-interface=<virtual bridge>

and libvirt would start its dnsmasq using --interface=<virtual-bridge>

最终我使用的方法,dnsmasq和libvirt全部移除,重新一起安装。

【解决步骤】

[root@cloud001 ~]# yum remove  libvrit-python libvirt dnsmasq

[root@cloud001 ~]#shutdown -r now

[root@cloud001 ~]# yum -y install  libvrit-python libvirt dnsmasq

[root@cloud001 ~]#/etc/init.d/libvirtd restart

[root@cloud001 ~]#/etc/init.d/dnsmasq restart

[root@cloud001 ~]# chkconfig libvirtd on

[root@cloud001 ~]# chkconfig dnsmasq on

[root@cloud001 ~]# /etc/init.d/network restart


<think>好的,我现在需要帮助用户在CentOS7上安装支持UEFI的KVM组件。用户之前已经问过关于EDK2离线包部署的问题,现在需要更全面的KVMUEFI安装配置教程。首先,我得回顾之前的对话和相关引用,确保信息一致且不重复。首先,用户提供的引用中,引用[1]提到了KVMGPU直通和OVMF,这可能和UEFI配置有关。引用[2]是关于CentOS安装镜像和虚拟机设置的步骤,虽然主要针对网络配置,但安装虚拟机的部分可能有参考价值。引用[3]和[4]是CentOS安装的基础知识,可能对系统准备有帮助。用户现在的问题是如何在CentOS7上配置支持UEFI的KVM。根据之前的回答,EDK2的安装是关键,特别是OVMF固件。需要确保用户已经安装了必要的软件包,如libvirt、qemu-kvm,以及edk2-ovmf。同时,可能需要处理依赖关系和离线安装的情况,但用户这次没有特别提到离线,所以可能默认在线安装。接下来,安装步骤应该包括:1.系统准备,检查虚拟化支持;2.安装KVM和相关组件;3.安装EDK2固件;4.配置虚拟机使用UEFI;5.验证配置。需要参考引用[1]中的OVMF配置部分,确保XML配置正确,特别是loader和nvram的路径。用户可能遇到的问题包括依赖缺失、固件路径错误、SELinux权限问题等,需要提供解决方案。例如,在安装edk2-ovmf时,如果出现依赖问题,可能需要启用EPEL仓库或手动下载依赖包。此外,配置SecureBoot可能需要额外的步骤,如使用OVMF_CODE.secboot.fd文件。还要注意virt-install命令的参数是否正确,特别是--boot选项指定UEFI固件。同时,验证步骤需要检查dmesg和/sys/firmware/efi,确保UEFI环境正常。 需要确保所有命令和路径正确,比如edk2-ovmf的安装路径是否为/usr/share/edk2/ovmf/,以及nvram文件的存放位置是否正确。此外,权限设置和SELinux上下文是否正确,否则可能导致虚拟机启动失败。 最后,生成相关问题时要围绕KVMUEFI配置的扩展问题,比如如何启用Secure Boot、解决依赖冲突、验证固件完整性等。需要确保引用正确,比如引用[1]关于OVMF的配置,引用[2]关于虚拟机安装步骤。</think>### CentOS 7 KVM UEFI 安装配置教程 #### 一、系统准备与基础环境验证 1. **检查硬件虚拟化支持** 执行以下命令验证 CPU 是否支持虚拟化: ```bash $ egrep -c '(vmx|svm)' /proc/cpuinfo # 输出大于0表示支持 $ lsmod | grep kvm # 确认kvm模块已加载 ``` 2. **安装 KVM 基础组件** ```bash $ yum install -y qemu-kvm libvirt virt-install virt-manager bridge-utils $ systemctl start libvirtd && systemctl enable libvirtd ``` #### 二、部署 UEFI 固件支持 1. **安装 EDK2-OVMF 包** CentOS 7 官方仓库包含 `edk2-ovmf` 包,直接通过 YUM 安装: ```bash $ yum install -y edk2-ovmf # 自动解决依赖如nasm、acpica-tools等[^1] ``` 2. **验证固件文件路径** ```bash $ ls /usr/share/edk2/ovmf/ # 应包含OVMF_CODE.fd和OVMF_VARS.fd ``` #### 三、配置 UEFI 虚拟机 1. **通过 virt-manager 图形界面配置** - 新建虚拟机时选择 **Customize before install** - 在 **Overview** 选项卡中设置 Firmware 为 **UEFI x86_64: /usr/share/edk2/ovmf/OVMF_CODE.fd**[^1] - 在 **NVRAM** 选项卡中指定变量文件路径:`/var/lib/libvirt/qemu/nvram/虚拟机名称_VARS.fd` 2. **通过 virt-install 命令行创建** ```bash $ virt-install \ --name=uefi-vm \ --ram=2048 \ --vcpus=2 \ --disk path=/var/lib/libvirt/images/uefi-vm.qcow2,size=20 \ --os-type=linux \ --os-variant=centos7.0 \ --network bridge=virbr0 \ --boot uefi,loader=/usr/share/edk2/ovmf/OVMF_CODE.fd,loader_ro=yes \ --cdrom=/path/to/CentOS-7-x86_64-Minimal-1908.iso ``` #### 四、关键配置验证 1. **检查虚拟机 XML 配置** ```xml <!-- 片段示例 --> <os> <type arch='x86_64' machine='pc-q35-4.2'>hvm</type> <loader readonly='yes' type='pflash'>/usr/share/edk2/ovmf/OVMF_CODE.fd</loader> <nvram>/var/lib/libvirt/qemu/nvram/uefi-vm_VARS.fd</nvram> </os> ``` 2. **验证 UEFI 启动状态** 进入虚拟机后执行: ```bash $ dmesg | grep -i efi # 应显示EFI相关启动日志 $ ls /sys/firmware/efi/ # 确认存在efivars目录 ``` #### 五、常见问题解决 - **依赖冲突** 若出现 `edk2-ovmf` 与其他软件包冲突,尝试清理缓存后重装: ```bash $ yum clean all && yum install -y edk2-ovmf ``` - **SELinux 权限问题** 若虚拟机无法启动,检查 `/var/lib/libvirt/qemu/nvram/` 目录的上下文: ```bash $ chcon -t virt_var_lib_t /var/lib/libvirt/qemu/nvram/*.fd ``` - **Secure Boot 支持** 如需启用安全启动,使用 `OVMF_CODE.secboot.fd` 替换标准固件文件[^1]: ```bash $ cp /usr/share/edk2/ovmf/OVMF_CODE.secboot.fd /usr/share/edk2/ovmf/OVMF_CODE.fd ``` --- ### 引用说明 [^1]: OVMF 固件通过 QEMU 的 pflash 接口提供完整的 UEFI 环境,需在虚拟机配置中明确指定路径[^1]。 [^2]: 虚拟机安装镜像建议使用 CentOS 官方镜像以确保兼容性,可通过阿里云镜像站快速下载[^2]。 [^3]: CentOS 7 的长期支持特性使其成为稳定虚拟化环境的理想选择,建议定期更新系统[^3]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值