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 下面的文件不是很多,建议看看其他家目录等下面是否有大文件,不需要的删除即可。还有就是有条件的,网上比较通用的解决办法就是扩容

小结

出现问题,从错误信息入手,找到根本原因,解决问题。

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值