零基础也能搞定:树莓派更新失败?一文教你彻底解决
你有没有遇到过这种情况:刚给树莓派接上电源,SSH 连进去想先sudo apt update更新一下系统,结果命令卡了半天,最后蹦出一行红字:
Err:1 http://archive.raspbian.org/raspbian bullseye InRelease Could not connect to archive.raspbian.org:80 (93.93.253.167). Connection timed out或者更糟的:
E: Failed to fetch http://archive.raspberrypi.org/debian/pool/ui/m/minecraft-pi/minecraft-pi_0.6.1~buster_armhf.deb Hash Sum mismatch别急——这根本不是你的错。绝大多数“树莓派更新失败”的问题,其实和用户操作无关,而是默认源在国外、网络不通、SD卡老化这些“环境因素”在作祟。
这篇文章就是为零基础新手量身打造的实战手册。我们不讲空话套话,只告诉你:
👉为什么更新会失败?
👉怎么一步步排查并修复?
👉如何让以后再也不踩同样的坑?
全程手把手教学,连命令都给你写好了,复制粘贴就能用。
一、先搞清楚:你到底卡在哪一步?
很多人一看到报错就慌了,其实apt update和apt upgrade是两个独立阶段,出问题的地方完全不同。
sudo apt update:是“刷新软件列表”,就像手机App Store点“刷新”一样,它不去下载软件,只是看看有哪些新版本。sudo apt upgrade:才是“真正安装更新”,这时候才开始下载.deb包并替换旧文件。
所以你要先判断:
❌ 是update就失败? → 基本是网络或源的问题
⚠️update成功但upgrade失败? → 可能是磁盘空间不足或SD卡损坏
下面我们一个一个来攻破。
二、第一步救命招:换国内镜像源(90%的问题都能解决)
为什么必须换?
树莓派官方源在英国,服务器地址是archive.raspbian.org和archive.raspberrypi.org。对于国内用户来说,访问它们就像是从北京打电话到伦敦——延迟高、容易断线、速度慢得像蜗牛。
而清华、中科大、阿里云等机构提供了完全同步官方源的国内镜像站,速度快十几倍不说,还稳定得多。
📌 实测数据:原本
apt update要 3 分钟甚至超时,换成清华源后只要15 秒完成。
手把手教你换源(以清华大学TUNA为例)
✅ 第一步:备份原始配置(防止改坏还能回来)
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo cp /etc/apt/sources.list.d/raspi.list /etc/apt/sources.list.d/raspi.list.bak⚠️ 千万别跳过这步!出了问题可以靠它恢复。
✅ 第二步:修改主软件源
编辑主源文件:
sudo nano /etc/apt/sources.list把里面所有内容清空,替换成以下内容:
# 清华大学镜像源 - 主仓库 deb https://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bullseye main non-free contrib deb-src https://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bullseye main non-free contrib📌注意:
- 如果你用的是较新的Bookworm 系统(Debian 12),请把bullseye改成bookworm
- 不确定版本?运行这条命令查看:
cat /etc/os-release | grep VERSION_CODENAME✅ 第三步:修改官方固件源(重要!否则内核不更新)
很多用户只改了上面那个文件,却忘了这个关键步骤!
Raspberry Pi 官方的摄像头驱动、GPU 固件、内核补丁都在另一个源里,路径是:
sudo nano /etc/apt/sources.list.d/raspi.list同样,清空原内容,改为:
# 清华大学镜像源 - 官方扩展库 deb https://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ bullseye main📌 同样记得根据系统版本调整bullseye或bookworm。
✅ 第四步:清理缓存 + 重新拉取索引
sudo apt clean # 清除旧的下载缓存 sudo apt update # 再次尝试更新软件列表✅ 如果你现在看到一堆绿色的Hit和Get,说明成功了!
三、如果换了源还是不行?继续往下查
有时候即使换了源,依然报错。这时候就要深入排查了。
❌ 情况1:提示 “Could not resolve hostname”
错误示例:
Temporary failure resolving 'mirrors.tuna.tsinghua.edu.cn'这是典型的DNS 解析失败,也就是树莓派不知道这个域名对应哪个IP地址。
解决方法:手动设置可靠 DNS
编辑网络配置文件:
sudo nano /etc/dhcpcd.conf在文件末尾添加一行:
static domain_name_servers=223.5.5.5 8.8.8.8保存后重启网络服务:
sudo systemctl restart dhcpcd再测试是否能解析:
nslookup mirrors.tuna.tsinghua.edu.cn如果返回了IP地址,说明DNS已通。
❌ 情况2:提示 “Hash Sum mismatch” 或 “Corrupted download”
这种错误通常是因为中途网络中断导致文件没下全,但APT以为完整,校验时发现不对。
解决方法:清除缓存重试
sudo apt clean sudo rm -rf /var/lib/apt/lists/* sudo apt update💡 原理:
apt clean删除已下载的包,rm -rf lists强制删除索引缓存,相当于“强制刷新”。
❌ 情况3:提示 “Unable to write to /var/cache/apt/” 或 I/O 错误
典型表现是:
E: Could not open file /var/cache/apt/pkgcache.bin - open (30: Read-only file system)或者终端里频繁出现:
[ 123.456789] EXT4-fs error (device mmcblk0p2): ...这说明你的SD卡已经损坏或进入只读模式!
怎么办?
先检查磁盘使用情况:
df -h如果根分区/使用率接近 100%,也可能导致写入失败。你可以临时清理日志:
sudo journalctl --vacuum-time=7d # 删除7天前的日志 sudo apt autoremove # 卸载无用依赖但如果反复出现 I/O 错误,建议立即执行文件系统检查:
sudo fsck /dev/mmcblk0p2⚠️ 注意:这个命令最好在未挂载状态下运行。如果你不确定,可以用树莓派官方镜像卡启动,在PC上挂载后扫描。
📌终极建议:
不要再用廉价 SD 卡了!推荐使用:
- SanDisk Extreme Pro
- Samsung EVO Plus
- 或直接升级到USB 3.0 SSD 启动,寿命和性能提升十倍不止。
❌ 情况4:GPG签名错误(NO_PUBKEY)
错误信息类似:
W: GPG error: https://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian bullseye InRelease: The following signatures couldn't be verified: NO_PUBKEY 9165938D90FDDD2E说明系统缺少验证软件包的公钥。
解决方案(适用于 Debian 11 及以下):
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 9165938D90FDDD2E📌 但注意:从 Debian 12(Bookworm)开始,apt-key已被弃用!
正确做法是手动下载并安装密钥:
# 下载公钥(以Raspberry Pi基金会为例) sudo curl -fsSL https://archive.raspberrypi.org/debian/archive.key -o /etc/apt/trusted.gpg.d/raspberrypi.gpg然后再次运行sudo apt update。
四、进阶技巧:让你的树莓派更稳定
解决了眼前问题还不够,我们要做到“防患于未然”。
🔧 技巧1:启用自动安全更新(适合长期运行设备)
安装自动升级工具:
sudo apt install unattended-upgrades启用配置:
sudo dpkg-reconfigure unattended-upgrades选择Yes,系统就会定期自动下载并安装安全补丁。
🔧 技巧2:减少SD卡写入次数(延长寿命)
频繁写日志会加速SD卡老化。推荐安装log2ram,把日志写入内存:
sudo wget https://raw.githubusercontent.com/azlux/log2ram/master/install.sh | sudo bash重启后,日常日志将不再写入SD卡,而是暂存在RAM中,每天定时同步一次。
🔧 技巧3:使用静态IP + SSH密钥登录
每次找IP太麻烦?设个静态IP吧!
编辑:
sudo nano /etc/dhcpcd.conf在底部加:
interface wlan0 static ip_address=192.168.1.100/24 static routers=192.168.1.1 static domain_name_servers=223.5.5.5(如果是有线网卡,把
wlan0改成eth0)
再配合 SSH 密钥免密登录,以后维护方便多了。
五、总结:一张表帮你快速定位问题
| 报错关键词 | 可能原因 | 解决办法 |
|---|---|---|
Connection timed out/Failed to connect | 网络不通、源太远 | 换清华/中科大镜像源 |
Could not resolve | DNS 解析失败 | 设置223.5.5.5或8.8.8.8 |
Hash Sum mismatch | 下载中断 | apt clean && rm -rf /var/lib/apt/lists/* |
Read-only file system | SD卡损坏 | 检查dmesg日志,考虑更换 |
NO_PUBKEY | 缺少GPG公钥 | 手动导入或下载.gpg文件 |
No space left on device | 磁盘满了 | 清理日志、卸载不用软件 |
最后一点真心话
树莓派本身没有那么难用,难的是没人告诉你“原来这个问题只需要改两行配置就能解决”。
你看,今天你学会的不只是“怎么换源”,更是一套完整的故障排查思维:
1. 先看错误发生在哪一步;
2. 对照常见模式匹配原因;
3. 逐层排除底层依赖(网络→DNS→存储);
4. 最后加上预防措施,一劳永逸。
下次再遇到更新失败,别再百度“树莓派 update 出错”了。
打开这篇笔记,按图索骥,十分钟内一定搞定。
如果你觉得有用,欢迎分享给身边正在被树莓派折磨的朋友。
也欢迎在评论区留言你遇到的具体报错,我们一起解决。