Linux 使用Unzip提示write error (disk full?). Continue? (y/n/^C)的解决方法
环境: 14.04.1-Ubuntu
涉及工具: unzip
问题: 磁盘空间不足。
error: file_write: write: No space left on device.
背景
同事使用服务器的时候,发现有个问题,就是编译的时候没有任何问题,就是在打包的时候,无论如何都不成功。从提示的错误信息来看,是磁盘空间已满,但是用 df 一看磁盘,还有 10TB+ 的空间,因此就没有下文了。
root cause
从详细的错误信息来看,提示了没有足够的空间。
Extracted DST_PARTITIONS[boot]: 31457280 bytes
Converting Android sparse image system.img to RAW.
error: file_write: write: No space left on device
再接着往下看,提示的是/tmp目录空间不足。
/tmp/targetfiles-SHfgHl/SYSTEM/app/speech-dialog/speech-dialog.apk: write error (disk full?). Continue? (y/n/^C)
warning: /tmp/targetfiles-SHfgHl/SYSTEM/app/speech-dialog/speech-dialog.apk is probably truncated
用命令 df 查看 /tmp 还有多大的空间。还剩余4.7GB。而不是查看整个机器的剩余空间。
~~~:~/xxx$ sudo df -h /tmp
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 109G 99G 4.7G 98% /
解决方法
因此找到问题的根本原因,把 /tmp 下面的清除即可,注意不是 /。
sudo rm -rfv /tmp/* ## not rm -rfv /*
然后在执行相关的unzip命令。安卓镜像包的打包命令可以参看,这个文件flashfiles_from_target_files,具体命令如下。
bin/bash -c "device/intel/build/releasetools/flashfiles_from_target_files '--unified-variants' --mv_config_default=out/********
如果上面的问题还有没有。请继续往下看。还有注意看上面的 tmp 目录是分区 /dev/sda2 挂载到 更目录的 /,因此tmp属于更目录里面的内容,因此是共享这个Size的。如果 tmp 下面的文件不是很多,建议看看其他家目录等下面是否有大文件,不需要的删除即可。还有就是有条件的,网上比较通用的解决办法就是扩容!
小结
出现问题,从错误信息入手,找到根本原因,解决问题。
作者:叉叉敌
博客:https://chasays.github.io/
微信公众号:Chasays, 欢迎关注一起吹牛逼,也可以加个人微信号「xxd_0225」互吹。
本博客大多为学习笔记或读书笔记,本文如对您有帮助,还请多推荐下此文,如有错误欢迎指正,相互学习,共同进步。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现