我遇到了与这个问题中描述的完全相同的问题:Kali Linux:apt-get 更新返回“哈希和不匹配”错误。然而,在您将其标记为重复之前,我已经尝试了那里以及许多其他网站上发布的解决方案,包括:
sudo apt-get clean
sudo rm -rf /var/lib/apt/lists/*
sudo apt-get update
使用备用官方镜像进行编辑/etc/apt/sources.list
,例如
deb http://mirrors.ocf.berkeley.edu/kali kali-rolling main non-free contrib
或deb https://http.kali.org/kali kali-rolling main non-free contrib
我第一次导入虚拟机后一切正常。我跑了一下sudo apt update
,发现大约 650 个软件包需要升级。我跑了一下sudo apt upgrade
,中途遇到了错误。该错误已使用 解决sudo apt --fix-broken install
,但此时哈希和错误开始出现。不幸的是,由于经过数小时的故障排除,我不再拥有先前错误的详细信息,但我相信这是由于数据损坏而提取包时发生的错误。
我尝试了多个官方镜像,但都出现同样的错误。另外,当我下载 Packages.gz 文件时这里apt
在我的 Windows 计算机(VM 主机)上并计算 SHA256 哈希值,我得到了打印为预期值的精确哈希值。这让我相信错误不是出在镜像上,而是出在我的虚拟机上。
我尝试的下一件事是wget https://mirrors.ocf.berkeley.edu/kali/dists/kali-rolling/main/binary-amd64/Packages.gz
,sha256sum Packages.gz
它提供了另一个不同的哈希输出。
需要明确的是,我看到同一个文件有 3 个不同的哈希值:
- 如预期显示的“正确”哈希值
apt
,这是 Windows 使用浏览器下载文件后生成的哈希值 - 计算出的哈希值不正确
apt
,导致错误 - 使用与浏览器下载相同的 URL 下载
sha256sum
文件后计算出的不同哈希值wget
我还应该注意,我在每个步骤中仅引用 SHA256 哈希值。当我运行时,其他哈希函数也不匹配sudo apt update
,但文件大小是相同的。我曾认为由于磁盘空间有限(毕竟是虚拟机),下载可能会失败,但我认为情况并非如此。
我缺少什么?
答案1
快速解决:
- 关闭 Kali 虚拟机。
bcdedit /set hypervisorlaunchtype off
在CMD中运行。- 重启。
解释:
此问题是由 Windows Hypervisor 平台引起的。这个问题暂时无法解决(据我所知)。
不过,部分修复即将完成。我说“部分”是因为它涉及禁用平台(也称为“Hyper-V”),这可能会破坏您安装的其他虚拟化解决方案,因为这是手动启用的。不管怎样,这里是如何禁用它并让你的 Kali VM 再次运行;
关闭 Kali 虚拟机。
按 Windows 徽标键 + X,然后按 A 以管理员身份运行命令提示符。
- 类型
bcdedit /set hypervisorlaunchtype off
- 当您看到“操作成功完成”时,输入
reboot
重启后,启动 Kali 并更新/升级。