You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Amazon EC2实例挂载新卷后仍报No space left on device错误

问题根因

从执行结果可以直接定位问题:

  • 系统根分区/dev/xvda1使用率已经达到100%,仅剩63M剩余空间,是触发OSError: [Errno 28] No space left on device报错的直接原因
  • 新创建的100GiB存储卷已经被内核识别(对应设备为/dev/xvdf),但未完成文件系统创建、挂载流程,操作系统不会向未挂载的块设备写入数据,因此新卷完全没有被利用,报错会持续出现。
操作步骤

注意:所有操作需要使用有sudo权限的用户执行,操作前确认块设备名不要写错,避免误操作损坏根分区数据。

  • 为新卷创建ext4文件系统(新创建的空卷可直接执行该操作,若卷内有存量数据请勿执行,会清空所有数据)
    sudo mkfs -t ext4 /dev/xvdf
    
    如果执行时提示临时空间不足,可先删除根分区下无用的临时文件、旧日志释放少量空间,比如清理/tmp目录下的过期文件、/var/log下的轮转旧日志即可。
  • 创建用于挂载新卷的目录,建议将S3下载路径统一放在该目录下,例如创建/data目录:
    sudo mkdir -p /data
    
  • 临时挂载新卷到该目录:
    sudo mount /dev/xvdf /data
    
  • 配置开机自动挂载,避免实例重启后卷自动失联:
    • 首先查询新卷的UUID,执行命令:
      sudo blkid /dev/xvdf
      
      输出中UUID="xxxx-xxxx"字段的内容就是卷的唯一UUID,复制该值。
    • 编辑fstab配置文件:
      sudo vi /etc/fstab
      
      在文件末尾新增一行,替换其中的UUID值为你刚才复制的内容:
      UUID=你复制的UUID值  /data  ext4  defaults,nofail  0  2
      
      配置中nofail参数可以保证卷挂载异常时不会阻塞实例启动,避免无法远程连接的问题。保存退出后执行以下命令验证配置是否正确,无输出则代表配置正常:
      sudo mount -a
      
  • 验证挂载结果,执行df -h,如果输出中存在/dev/xvdf挂载到/data、可用空间约100G的条目,就代表新卷已经正常生效。

后续从S3下载文件时,将本地保存路径设置到/data目录下,就不会占用根分区空间,不会再触发磁盘不足的报错。
另外从lsblk输出可以看到还有一块8G的/dev/xvdb设备也处于未挂载状态,如果需要使用,按照上述相同流程操作即可。


内容的提问来源于stack exchange,提问作者Yafaa Ben Tili

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 17:48:13