今天在virtualbox(6.1.36 windows host)虚拟机中安装archlinux的时候使用reflector更新镜像列表的时候遇到如下报错,原因是什么?如何让reflector恢复正常?
root@archiso ~ # reflector --country China --age 12 --sort rate --save /etc/pacman.d/mirrorlist
error: failed to retrieve mirrorstatus data: URLError: <urlopen error [Errno 101] Network is unreachable>
但是另一台不在同一网络中的、昨天刚pacman -Syyu更新过的机器运行同样的命令则输出正常如下:
[root@arch ~]$ sudo reflector --country China --age 12 --sort rate --connection-timeout 60 --download-timeout 60
[2022-09-07 22:18:20] WARNING: failed to rate rsync download (rsync://mirrors.neusoft.edu.cn/archlinux/community/os/x86_64/community.db): [Errno 2] No such file or directory: 'rsync'
[2022-09-07 22:19:36] WARNING: failed to rate rsync download (rsync://mirrors.bfsu.edu.cn/archlinux/community/os/x86_64/community.db): [Errno 2] No such file or directory: 'rsync'
[2022-09-07 22:20:36] WARNING: failed to rate http(s) download (http://mirrors.hit.edu.cn/archlinux/community/os/x86_64/community.db): Download timed out after 60 second(s).
################################################################################
################# Arch Linux mirrorlist generated by Reflector #################
################################################################################
# With: reflector --country China --age 12 --sort rate --connection-timeout 60 --download-timeout 60
# When: 2022-09-07 14:20:36 UTC
# From: https://archlinux.org/mirrors/status/json/
# Retrieved: 2022-09-07 14:16:07 UTC
# Last Check: 2022-09-07 14:17:08 UTC
Server = http://mirrors.163.com/archlinux/$repo/os/$arch
Server = https://mirrors.bfsu.edu.cn/archlinux/$repo/os/$arch
Server = http://mirrors.neusoft.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.xjtu.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.sjtug.sjtu.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.neusoft.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
Server = rsync://mirrors.neusoft.edu.cn/archlinux/$repo/os/$arch
Server = rsync://mirrors.bfsu.edu.cn/archlinux/$repo/os/$arch
Server = http://mirrors.hit.edu.cn/archlinux/$repo/os/$arch
无效的解决方案:
Google检索:error: failed to retrieve mirrorstatus data: URLError: <urlopen error [Errno 101] Network is unreachable> :看了前10个和第一页其他感觉有关系的结果,但是没遇到一样的报错信息,有的是errno -3或者timeout等等,相关的检查网络的操作放在下面的环境信息里了
上面的检索结果里有一个提到了完全一致的报错信息https://www.yidajiabei.xyz/posts/arch-s … and-usage/,说是代理的问题,但是另一台正常的机器并没有代理,所以我认为不是这个问题
Google检索:site:archlinuxcn.org [Errno 101] :发现了 https://bbs.archlinuxcn.org/viewtopic.php?id=4835,尝试了讲pacman.conf中的两行“#XferCommand = /usr/bin/curl -L -C - -f -o %o %u”“#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u”分别取消注释,但是不行
环境信息如下:
镜像版本:
八月、九月两个镜像都会报错
archlinux-2022.08.05-x86_64.iso
archlinux-2022.09.03-x86_64.iso
网络情况:
ping baidu.com和8.8.8.8都是通的
设置了一个端口转发,将虚拟机的22转发到主机,但是直接在虚拟机中执行reflector命令也不行
ip a输出如下
root@archiso ~ # ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:c0:1c:78 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 metric 100 brd 10.0.2.255 scope global dynamic enp0s3
valid_lft 85981sec preferred_lft 85981sec
inet6 fe80::a00:27ff:fec0:1c78/64 scope link
valid_lft forever preferred_lft forever
其他:
手动直接改mirrorlist是可以正常使用pacman的
如果有排查问题的流程、搜索、问题描述不清楚等问题希望也一并指出
离线
不建议用 reflector,直接手搓 mirrorlist,只写你觉得比较好用的个别镜像站
离线
网络不可达就 ip r 看一下路由表。
离线
网络不可达就 ip r 看一下路由表。
命令输出如下,我没用过ip route命令,看到回复后简单搜索了一下,但是似乎没什么奇怪的?
root@archiso ~ # ip route | column -t
default via 10.0.2.2 dev enp0s3 proto dhcp src 10.0.2.15 metric 100
10.0.2.0/24 dev enp0s3 proto kernel scope link src 10.0.2.15 metric 100
10.0.2.2 dev enp0s3 proto dhcp scope link src 10.0.2.15 metric 100
192.168.3.1 via 10.0.2.2 dev enp0s3 proto dhcp src 10.0.2.15 metric 100
离线
不建议用 reflector,直接手搓 mirrorlist,只写你觉得比较好用的个别镜像站
目前使用了手写的方法,但是还是好奇为什么会出现这个问题,另外想问为什么不推荐reflector?是因为会经常出这种怪问题吗?
离线
目前使用了手写的方法,但是还是好奇为什么会出现这个问题,另外想问为什么不推荐reflector?是因为会经常出这种怪问题吗?
主要是 reflector 太复杂了,它的各种排序依据也不一定能客观地反映镜像站的状况,不如根据口碑和长期使用体验来手动选择镜像站。定期跑 reflector 还会让 mirrorlist 变得不稳定,让你的下载体验时好时坏,甚至可能间接导致部分更新。
离线
192.168.3.1 via 10.0.2.2 dev enp0s3 proto dhcp src 10.0.2.15 metric 100
这条就挺奇怪的。你这样能 ping 通 192.168.3.1 么?
另外你为什么要 column -t 啊。这样对齐是对齐了,但是对齐的东西又不一样。
离线
192.168.3.1 via 10.0.2.2 dev enp0s3 proto dhcp src 10.0.2.15 metric 100
这条就挺奇怪的。你这样能 ping 通 192.168.3.1 么?
另外你为什么要 column -t 啊。这样对齐是对齐了,但是对齐的东西又不一样。
可以ping通的,虚拟机使用的virtualbox的nat模式(不是nat网络),宿主机是直接插在路由器上的,路由器的地址是192.168.3.1
用column是因为看的文章里这么用的,经提醒发现确实是只有看起来齐了...
最近编辑记录 raner (2022-09-11 00:40:45)
离线