TL;DR
Codex 的使用额度刷新了。我心想,这下可以放开了干。结果 Codex 连新对话都建不了,屏幕上只有一行 No space left on device (os error 28)。
原因既不是 AI,也不是云端,更不是限流,而是 Mac 的 SSD 真的被塞满了。
删掉没用的文件后,立刻恢复正常。这件事让我明白:在 AI 时代的开发环境里,有“使用额度”和“本地存储”两个互不相干的油箱。而且在掏钱加购 SSD 之前,先做一遍日本制造业最熟悉的 2S(整理、整顿),性价比高得离谱。2S 是日本工厂用来保持车间整洁的 5S 管理法里的前两步。
Codex:“额度恢复啦!”
Mac:“剩余空间,零!”
Codex:“我就想写个几 KB 的锁文件……”
Mac:“没地方了。”
人类:“啥也干不了”
1. 先是“额度刷新狂欢”
2026 年 8 月 31 日,一条关于 Codex / ChatGPT Work 使用额度刷新的公告在 X 上火了。帖子说“太平洋时间下午 6 点刷新”,气氛完全是过节:尽管用,把最新功能都试一遍。
从日本这边看,时差有点绕。8 月美国西海岸通常是 PDT(UTC-7),所以当地 18 点换算成日本时间,大约是第二天上午 10 点。如果严格按 PST(UTC-8)算,则是 11 点左右。不管哪种算法,到了日本的上午晚些时候,刷新都已经完成了。
OpenAI 官方帮助页面也说明,符合条件的用户可能会获得一次性的 Codex / ChatGPT Work 使用上限重置。另一套叫“banked reset”的机制则明确写着:使用完整重置后,5 小时额度和每周额度都会刷新。
所以这一天大家的期待值很高。
“好,油箱加满。今天能放开跑了。”
不过紧接着我就发现,另一个油箱是空的。
2. 可 Codex 就是什么都干不了
刷新之后,我打开 Codex 准备开工,却发现新对话初始化不了。
报错的核心是这样的:
failed to open thread writer lock ...
No space left on device (os error 28)
这里要注意的是,thread writer lock 并不是什么大文件。
简单说,锁文件就是一块牌子,上面写着“这份数据我正在写”。它是个很小的管理文件,用来防止多个进程同时把同一段对话或状态搞坏。
可是一旦存储空间接近零,连这么小的一块牌子都放不下。
也就是说,这个高性能 AI 停摆的原因是:
“连几 KB 的停车位都没有”。
未来感和居委会气息,在这里奇妙地共存了。
3. os error 28 到底在说什么
No space left on device 几乎就是字面意思:设备上没有剩余空间了。
这次是 Mac 的存储空间真的耗尽了。我删掉一些没用的文件腾出空间,Codex 当场就复活了。
所以诊断过程非常干净:
- Codex 想写入对话用的文件
- 操作系统以“没有空间”为由拒绝
- Codex 初始化失败
- 删除没用的数据
- 可以写入了
- 立即恢复
明明是云端 AI,最后却栽在本地磁盘的物理空间上。
说起来理所当然,但平时用惯了云服务,很容易忘掉这一点。
4. SSD 满了,不只是“存不了东西”
磁盘空间不够,麻烦可不只出现在保存大视频的时候。
应用平时会不停地写入大量小文件。
- 锁文件
- 临时文件
- 日志
- 缓存
- 设置和状态数据
- 数据库更新
- Git 对象和工作数据
- 构建产物
- 系统和应用的临时空间
所以空闲空间彻底枯竭时,哪怕看上去只是个“聊天界面”,也可能启动失败,或者建不了新对话。
Apple 官方也建议:当 Mac 的启动磁盘几乎满了,就到“系统设置 → 通用 → 储存空间”查看占用情况,通过删除不需要的文件、转移到外置存储、清空废纸篓等方式腾出空间。
5. “额度”和“SSD 容量”是两本完全不同的账
这次最有意思的就是这一点。
Codex 至少受两种资源约束。
| 资源 | 耗尽后会怎样? | 这次的情况 |
|---|---|---|
| Codex / Work 使用额度 | 模型运行受限 | 已刷新并恢复 |
| Mac 的本地容量 | 无法写入状态、日志、锁文件等 | 几乎为零 |
也就是说,
云端:满油
本地:没油
这就像有人递给你一辆加满油的车,可停车场的出口却被水泥封死了。
额度回来了,并不代表电脑的内存、SSD、网络、权限、Git 状态也跟着恢复。
越是天天跑 AI 智能体,就越需要把这些“多个油箱”分开来看。
6. 腾出空间,当场就修好了
实际的处理方法很简单。
删掉不需要的数据,腾出空闲空间。
仅此而已,Codex 就恢复了。
这种可复现性很重要。如果明明空出了几十 GB 还报同样的错,就该怀疑别的原因;但这次是“真的没空间 → 删除 → 修好”,原因和对策一条线连起来了。
这时候“要不要马上买块 SSD”的念头就冒出来了。
可是 SSD 并不便宜。
而最后冒出来的答案,居然来自制造业。
先做 2S。
7. 买 SSD 之前先 2S:数码版“红牌作战”
2S 就是 5S 里的前两个 S。
- 整理(Seiri):把要的和不要的分开,不要的扔掉
- 整顿(Seiton):把要的东西放在需要时能马上拿到的位置
放到电脑上完全一样。
一看到容量不足,人很容易条件反射地想“买个 1TB SSD 吧”。但如果存储里躺着 100GB 的无用文件,那买 SSD 就等于仓库乱了,于是去扩建仓库。
先贴红牌。(在日本工厂里,红牌是贴在“可能不需要的东西”上的标签,方便大家在丢弃前一起确认。)
数码 2S 要看的地方
Downloads里留着的旧 ZIP、DMG 和安装包- 只用过一次的视频、图片原始素材
- 旧的 Git clone 和重复的仓库
- 用完的构建产物
- 如果用 Docker,多余的 image / container / volume
- 如果用 Xcode,多余的 Simulator 和 DerivedData
- 旧的 iPhone / iPad 备份
- 膨胀的日志和崩溃报告
- 卸载应用后残留的无用数据
- 废纸篓
不过,看不懂是什么的系统文件夹,仅凭占用大就全删,那不叫 2S,叫爆破拆除。
尤其是可能包含开发环境设置、认证信息、会话的文件夹,先弄清楚是什么数据再动手。
8. 1TB 够不够?做完 2S 再回答就容易了
要买外置 SSD 的话,1TB 够吗?
这取决于你的使用量,但判断的顺序很重要。
- 先删掉不需要的东西
- 测一下只算真正需要的数据占多少 GB
- 观察一两个月会增长多少
- 如果内置 SSD 还是常年爆满,再考虑扩容
如果你主要处理文章、代码、Git,没有大量 4K 视频、虚拟机、本地大模型,再加一块 1TB 外置盘,往往就是相当宽裕的余量。
反过来,如果做完 2S 腾出了几百 GB,
买 SSD:延期
钱包:幸存
也完全有可能。
买之前先测量,这同样是一种漂亮的改善活动。
9. 防止再犯:Mac 也需要“设备保全”
既然已经跌到过 0GB,以后就别再用到极限了。
- 每月看一次“系统设置 → 通用 → 储存空间”
- 定期清理“下载”文件夹
- 按大小排序检查大文件夹
- 别把一次性的 clone 和生成物扔在那儿不管
- 别把废纸篓当成“自以为删掉了的仓库”
- 重要数据先备份再整理
- 内置 SSD 始终留出余量
“剩余空间”可不是能用到最后 1GB 的库存。
不如把一定的余量当成系统和应用干活用的工作空间。
工厂里要是连过道都堆满材料,人就没法走了。
Mac 也是一样。
10. 结论:AI 时代,2S 照样管用
把这件事浓缩成一句话:
Codex 的额度全部恢复了,但 SSD 剩余空间是 0,连几 KB 的锁文件都建不了,整个停摆。删掉没用的东西后就好了。
而得到的教训,意外地很传统。
- 看容量
- 读报错信息
- 扔掉不要的东西
- 整理好要用的东西
- 留出余量
排查最前沿 AI 的故障,最后冒出来的概念居然是 2S。
技术不断进步,偶尔也会回到工厂。
Codex:“我能用最新模型推理。”
Mac:“可我剩余空间是 0GB。”
2S:“那边,我给你贴张红牌。”
Sources
- OpenAI Help Center — Using Codex with your ChatGPT plan
https://help.openai.com/en/articles/11369540-using-codex-with-your-chatgpt-plan - OpenAI Help Center — How banked Codex resets work
https://help.openai.com/en/articles/20001498-how-banked-codex-resets-work - Apple Support — Free up storage space on Mac
https://support.apple.com/en-us/102624 - X post referenced in the episode
https://x.com/thsottiaux/status/2094144275957350900
