前两天还没这个问题,今天 apt update 的时候报如下错误:
W: Failed to fetch http://mirrors.ustc.edu.cn/ubuntu/dists/trusty-security/main/source/Sources Hash Sum mismatch
W: Failed to fetch http://mirrors.ustc.edu.cn/ubuntu/dists/trusty-security/main/binary-amd64/Packages Hash Sum mismatch
W: Failed to fetch http://mirrors.ustc.edu.cn/ubuntu/dists/trusty-security/main/binary-i386/Packages Hash Sum mismatch
是从校内 PXE 安装的,也就是默认的 sources.list。
刚手动把 sources.list 里面的地址都改成 https 也是一样的错,而且现在 trusty updates 也 mismatch 了:
Fetched 32.3 MB in 18s (1792 kB/s)
W: Failed to fetch https://mirrors.ustc.edu.cn/ubuntu/dists/trusty-updates/main/binary-amd64/Packages Hash Sum mismatch
W: Failed to fetch https://mirrors.ustc.edu.cn/ubuntu/dists/trusty-updates/main/binary-i386/Packages Hash Sum mismatch
E: Some index files failed to download. They have been ignored, or old ones used instead.
尝试过
apt-get clean
apt-get update
也没效果
我清空了 /var/lib/apt/lists/partial (其实之前也清过整个 lists 目录),这次请求没带 range 头,有正常返回,但还是报 mismatch。
实际请求的两个文件是:
http://mirrors.ustc.edu.cn/ubuntu/dists/trusty-updates/main/binary-amd64/Packages.bz2
http://mirrors.ustc.edu.cn/ubuntu/dists/trusty-updates/main/binary-i386/Packages.bz2
在服务器上直接 wget 了一下,不知道 apt 是用什么做校验的,手动做了一下 sha1 是:
455c979631f761fbd34a387876932aaa538b3252
35ec1429efa6c85c5061663db4222feec7efdaee
另外注意到有一个 404 的请求 GET /ubuntu/dists/trusty/InRelease 不知道是否和这个问题相关
我清空了
/var/lib/apt/lists/partial(其实之前也清过整个 lists 目录),这次请求没带 range 头,有正常返回,但还是报 mismatch。实际请求的两个文件是:
http://mirrors.ustc.edu.cn/ubuntu/dists/trusty-updates/main/binary-amd64/Packages.bz2 http://mirrors.ustc.edu.cn/ubuntu/dists/trusty-updates/main/binary-i386/Packages.bz2在服务器上直接 wget 了一下,不知道 apt 是用什么做校验的,手动做了一下 sha1 是:
455c979631f761fbd34a387876932aaa538b3252 35ec1429efa6c85c5061663db4222feec7efdaee另外注意到有一个 404 的请求
GET /ubuntu/dists/trusty/InRelease不知道是否和这个问题相关
--
按理说,如果每一级的镜像都是用ftpsync同步的话,ftpsync会保证在同步的过程中始终是一致的(所有跟索引相关的文件会一起更新)。从目前mirrors.ustc的trace目录(http://mirrors.ustc.edu.cn/ubuntu/project/trace/)看,路径是 mirrors.ustc.edu.cn -> mirror.pnl.gov -> wahoo.canonical.com -> ...,这里有mirror.pnl.gov,说明它用了ftpsync,而它的上游已经是canonical的域名,往上肯定都用的ftpsync。这么看的话,这个链条上应该没有问题。猜测有这样的可能:* mirror.pnl.gov 的直接上游不是 wahoo.canonical.com,而是一个没有用ftpsync同步的站点,因此没有留下trace文件。* ftpsync 有bug,这个的可能性不大,如果是这样的话,应该早就被修了,ftpsync已经有10个月没有更新了。从mirror.pnl.gov的trace目录(http://mirror.pnl.gov/ubuntu/project/trace/)看,比目前mirrors.ustc的多了一跳 likho.canonical.com,说明 mirror.pnl.gov 最近刚刚更换了上游(或者其没有使用ftpsync的直接上游更换了上游)。