Ubuntu 18.04.1 LTS 執行 apt update 遇到 Hash Sum mismatch 的處理方式

栏目: 数据库 · 发布时间: 5年前

内容简介:今天在某一台 Ubuntu 18.04.1 LTS 主機上執行通常會有以下處理方式:我後來查出是以下檔案的內容不一樣了:
Ubuntu 18.04.1 LTS 執行 apt update 遇到 Hash Sum mismatch 的處理方式

今天在某一台 Ubuntu 18.04.1 LTS 主機上執行 apt update 更新套件來源資訊,不過卻一直發生 Hash Sum mismatch 的錯誤,一度懷疑 Ubuntu 的套件來源發生問題,浪費了十幾分鐘查問題,到最後竟然是換了 ISP 線路才正常。

錯誤訊息

apt update
Get:21 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages [526 kB]
Err:21 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
  Hash Sum mismatch
  Hashes of expected file:
   - Filesize:525764 [weak]
   - SHA256:e084a46b59774b00b1513bc6760173cf8398756416523c1a38604a28ba7011d0
   - SHA1:d589b82b10751d8c12cecedde103cce3b818c15c [weak]
   - MD5Sum:e5bff5faf851cd2c241f048a42185eae [weak]
  Hashes of received file:
   - SHA256:7983fc1019239792f31690cfebe04116a15911c9c825055cfc884009b3f35028
   - SHA1:72c2cf0fb90b19b66b2a2fb88102e4f9067ecdd6 [weak]
   - MD5Sum:dd2a727af1900ed5293d7015f3130127 [weak]
   - Filesize:525764 [weak]
  Last modification reported: Tue, 19 Feb 2019 07:09:43 +0000
  Release file created at: Tue, 19 Feb 2019 11:15:50 +0000

發生 Hash Sum mismatch 常見的處理方式

通常會有以下處理方式:

  1. 清空 APT 快取

    sudo rm -rf /var/lib/apt/lists/*
    sudo apt clean
    sudo apt update
  2. 更換 Mirror 網址

    也有可能是特定鏡像主機(Mirror Host)發生檔案異常,可以試試不同的 鏡像主機位址

  3. 切換不同的 ISP 線路

    有些 ADSL 網路提供者會架設透明的代理伺服器(Transparent Proxy),以節省頻寬使用,可是這樣很有可能會讓用戶端快取到舊版的內容,導致 SHA256 雜湊不匹配,就會引發這個問題。

    我這次的問題,就是將筆電的網路切換到手機的 4G 線路才正常!

追查錯誤

我後來查出是以下檔案的內容不一樣了:

http://archive.ubuntu.com/ubuntu/dists/bionic-updates/main/binary-amd64/by-hash/SHA256/e084a46b59774b00b1513bc6760173cf8398756416523c1a38604a28ba7011d0

首先,我先嘗試透過 SHA256 檢查檔案雜湊值,只要雜湊值不一樣,就會引發 Hash Sum mismatch 的問題。

wget -q http://archive.ubuntu.com/ubuntu/dists/bionic-updates/main/binary-amd64/by-hash/SHA256/e084a46b59774b00b1513bc6760173cf8398756416523c1a38604a28ba7011d0
sha256sum e084a46b59774b00b1513bc6760173cf8398756416523c1a38604a28ba7011d0
rm -f e084a46b59774b00b1513bc6760173cf8398756416523c1a38604a28ba7011d0

這段命令的執行結果,必須完全等同於檔名,才是驗證正確的檔案內容。

e084a46b59774b00b1513bc6760173cf8398756416523c1a38604a28ba7011d0  e084a46b59774b00b1513bc6760173cf8398756416523c1a38604a28ba7011d0

但我家中的 ADSL 網路,卻出現以下結果:

7983fc1019239792f31690cfebe04116a15911c9c825055cfc884009b3f35028  e084a46b59774b00b1513bc6760173cf8398756416523c1a38604a28ba7011d0

確定下載的檔案不一樣,接著就要看檔案內容差異了。

我用不同網路下載相同檔案,並透過 xz 進行解壓縮,下載與解壓縮的命令如下:

curl -L -o e084a46b59774b00b1513bc6760173cf8398756416523c1a38604a28ba7011d0.xz http://archive.ubuntu.com/ubuntu/dists/bionic-updates/main/binary-amd64/by-hash/SHA256/e084a46b59774b00b1513bc6760173cf8398756416523c1a38604a28ba7011d0
xz -d e084a46b59774b00b1513bc6760173cf8398756416523c1a38604a28ba7011d0.xz

比對兩個網路下載的檔案後發現,內容真的不太一樣,如下圖示:

Ubuntu 18.04.1 LTS 執行 apt update 遇到 Hash Sum mismatch 的處理方式

差異的部分相當詭異,只有 Phased-Update-Percentage 的部分有變化,這部分可以從 PhasedUpdates - Ubuntu Wiki 了解是什麼玩意。無法通過 SHA256 驗證的版本,其 Phased-Update-Percentage 數值較小,能通過 SHA256 驗證的版本,其數值較大。

不過這看起來不像 Proxy Server 會發生的問題,因為如果他快取到舊版內容,照理說檔名不會是這個名字,因為檔名必須等於 SHA256 雜湊後的值才對,怎麼會是這個值?如果是 ISP 造成的,為什麼我的 ISP 要修改這個檔案內容?我目前尚無法解釋這問題是怎樣造成的,如果有知道原因的人,麻煩留言給我,謝謝!


以上所述就是小编给大家介绍的《Ubuntu 18.04.1 LTS 執行 apt update 遇到 Hash Sum mismatch 的處理方式》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

伏牛传

伏牛传

张天一 / 机械工业出版社 / 2016-5 / 39.00元

编辑推荐: 伏牛堂创始人张天一独家揭秘 社群品牌运营背后的规律和逻辑 90后创业者张天一白手起家,在伏牛堂创立一年之际,已是京城大众点评口碑最佳湖南牛肉粉店、获得四轮数千万投资,他是如何做到的? 餐饮品牌伏牛堂如何建设20万人的青年人生活社群 “霸蛮社”,并快速成为知名品牌? 内容推荐: 《伏牛传:一个社群品牌的内部运营笔记》是一本餐饮社群品牌的内部运营笔记,90后创......一起来看看 《伏牛传》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具