问题源头

背景

如果你出现了原本虚拟机的源一直都可以用,但是最近在使用虚拟机下载、更新源,一直报错正在尝试其他镜像,但是却没有成功的情况下就可以试试是否是下面的原因造成的。(前提是你的网络能够ping到公网)

原因

源不稳定
DNS解析问题

使用wireshark抓取流量可以验证

在虚拟机上使用nslookup去解析一个网址

nslookup www.baidu.com

使用wireshark抓取虚拟机网卡的流量,我这里是vmnet8。可以发现是有dns解析ip的回包的,如果你的只有向外发的包,但是没有回包,那就是DNS出不去。

虚拟机打开系统盘镜像提示出错Peter Anvin et al Failed to load COM32_centos

解决办法(以centos为例子)

源不稳定解决办法

首先是需要备份原有的源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
安装wget
yum install -y wget
拉取国内的源
#这里是阿里的源,比较推荐
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
其他源
阿里源:https://opsx.alibaba.com/mirror/
华为源:https://mirrors.huaweicloud.com/
网易源:http://mirrors.163.com/
清华源:https://mirrors.tuna.tsinghua.edu.cn/
腾讯源:https://mirrors.cloud.tencent.com/
清除源缓存
yum clean all
刷新缓存 | 生成新缓存
yum makecache
验证
yunm update

DNS解析问题解决办法(一)

首先查看你的网卡配置

目录在/etc/sysconfig/network-scripts/

虚拟机打开系统盘镜像提示出错Peter Anvin et al Failed to load COM32_网络安全_02

找到你的外网网卡,我的是ifcfg-ens33,使用vim编辑网卡配置。

虚拟机打开系统盘镜像提示出错Peter Anvin et al Failed to load COM32_网络安全_03


添加图示的两行

DNS1=114.114.114.114
DNS2=8.8.8.8

退出然后重启网卡

systemctl restart network

使用yum尝试源是否可用

yum update

DNS解析问题解决办法(二)

1、打开虚拟机的网络配置界面,点击编辑里面的虚拟机网络编辑器

虚拟机打开系统盘镜像提示出错Peter Anvin et al Failed to load COM32_linux_04


2、点击NAT设置

虚拟机打开系统盘镜像提示出错Peter Anvin et al Failed to load COM32_ubuntu_05

3、点击DNS设置

虚拟机打开系统盘镜像提示出错Peter Anvin et al Failed to load COM32_centos_06

4、手动配置DNS解析ip

虚拟机打开系统盘镜像提示出错Peter Anvin et al Failed to load COM32_网络安全_07

5、如果点进去点不动的话,就在第二步的位置点击dhcp设置然后再进去设置,就可以了

虚拟机打开系统盘镜像提示出错Peter Anvin et al Failed to load COM32_centos_08

DNS解析问题解决办法(三)

最后如果单独使用不可以就两个方法都使用,就可以解决。TOC