“不是说好64G吗?怎么连个Python包都容不下?!”
——来自一个被NoSpaceLeftError气到冒烟的树莓派用户
事情是这样的:你兴冲冲地给树莓派插上一张崭新的64G SD卡,心想:“这下够我折腾一百个conda环境了吧!”
结果刚敲下 conda create -n pytorch python=3.9,系统就冷冷回你一句:
OSError: [Errno 28] No space left on device
???
64G卡,怎么就“没空间”了?!
别急,你的SD卡没坏,树莓派也没背叛你——它只是……太“谦虚”了。
🤔 问题真相:分区没扩容,64G只用了8G!
树莓派官方系统(比如Raspberry Pi OS)有个“祖传设定”:默认只给你分配一小块空间,哪怕你插的是1TB的卡(夸张了,但原理一样),它也只会先用个几GB,剩下的统统“晾着”。
所以你以为的64G全盘可用,其实是这样:
$ df -h /dev/mmcblk0*
Filesystem Size Used Avail Use% Mounted on
/dev/mmcblk0p1 44M 23M 21M 53% /boot
/dev/mmcblk0p2 7G 7G 0 100% / ← 看!根分区爆满了!
对,你没看错——64G的卡,系统只认了7G,还全被占满了。剩下的50多G?躺在那里吃灰呢!
✅ 解决方案:一键扩容,唤醒沉睡的50G!
树莓派早就给你准备好了“扩容神器”——raspi-config。操作简单到连我家猫都能学会(如果它有爪子能敲键盘的话):
步骤走起:
-
打开终端,输入:
sudo raspi-config -
用方向键选中 → Advanced Options → Expand Filesystem
-
回车确认,然后重启:
sudo reboot -
重启后再次检查:
df -h输出变成这样就对了:
/dev/mmcblk0p2 59G 8G 49G 14% /👏 恭喜!你的64G卡终于“完全体”觉醒!
🧠 小知识:为什么64G显示59G?
因为厂商用的是十进制(1GB = 10⁹字节),而系统用二进制(1GiB = 2³⁰字节),所以64G ≈ 59.6 GiB。这不是缩水,这是数学的浪漫(和厂商的小心机)。
💡 总结
- 插大容量SD卡 ≠ 自动全盘可用
- 树莓派默认不扩容,需手动“唤醒”剩余空间
raspi-config是你的最佳拍档- 扩容后,conda、Docker、甚至小型K8s集群,统统安排!
下次再遇到“64G卡装不下pip”,别砸树莓派——它只是需要你轻轻点一下“Expand Filesystem”而已 😎
树莓派OS内心OS:
“你给我64G,我却只敢用7G……不是我不行,是你没点‘扩容’啊!”
欢迎点赞 + 关注,下期教你《如何在树莓派上用conda跑通Stable Diffusion(且不炸内存)》✨