linux命令df -h和df -hi的区别,用以解决IOError: [Errno 28] No space left on device:

本文解析了一个常见的磁盘管理问题,即使磁盘显示仍有空间,却无法存储文件的原因。通过对比df-h与df-hi命令的使用,揭示了inode耗尽才是真正的罪魁祸首。文章还深入解释了inode的概念及其在文件系统中的作用。
部署运行你感兴趣的模型镜像

今天遇到一个小问题,明明磁盘还有空间,为什么总是显示磁盘没有空间存放?

IOError: [Errno 28] No space left on device:

通过df -h命令查看磁盘空间占用情况,发现还有内容可以使用

然后我就手动地进行copy文件进这个目录,发现也是报错没有空间可以存放copy的文件。

然后我怀疑是不是磁盘存在坏区?导致剩下的空间不能够继续使用了?

然后问了下小组同学,使用df -hi

发现占用比例为100%,终于知道问题的所在了。

但是还是不明白df -h 和df -hi的区别是什么?然后找到了这篇文章https://www.douban.com/group/topic/2833196/

df命令详细用法
a:显示全部的档案系统和各分割区的磁盘使用情形
i:显示i -nodes的使用量
k:大小用k来表示 (默认值)
t:显示某一个档案系统的所有分割区磁盘使用量
x:显示不是某一个档案系统的所有分割区磁盘使用量
T:显示每个分割区所属的档案系统名称
常用命令:df -hi
指令 df 可以显示目前所有档案系统的最大可用空间及使用情形

另外,我们还可以使用参数 -i 来查看目前档案系统 inode 的使用情形。有的时候虽然档案系统还有空间,但若没有足够的 inode 来存放档案的信息,一样会不能增加新的档案。

小提示
还记得什么是 inode 吗?所谓的 inode 是用来存放档案及目录的基本信息 (metadata),包含时间、档名、使用者及群组等。在分割扇区时,系统会先做出一堆 inode 以供以后使用,inode 的数量关系着系统中可以建立的档案及目录总数。如果要存的档案大部分都很小,则同样大小的硬盘中会有较多的档案,也就是说需要较多的 inode 来挂档案及目录。

 

参考链接:https://www.douban.com/group/topic/2833196/

 

 

 

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

### Docker Compose 配置文件不存在的解决方案 当尝试运行 `docker-compose up` 或其他命令时,如果提示错误 **Errno 2: No such file or directory**, 这通常意味着当前目录下缺少名为 `docker-compose.yml` 的配置文件[^1]。 以下是可能的原因以及对应的解决方法: #### 原因分析 1. 当前工作目录不正确:未切换到包含 `docker-compose.yml` 文件的实际路径。 2. 文件名拼写错误:可能是由于大小写敏感或其他字符差异导致无法找到目标文件。 3. 文件确实缺失:尚未创建或上传所需的 `docker-compose.yml` 文件。 --- #### 解决方案 ##### 方法一:确认当前工作目录是否正确 确保已进入包含 `docker-compose.yml` 文件的工作目录。可以使用以命令验证: ```bash ls -l docker-compose.yml ``` 如果没有显示该文件,则需要导航至正确的目录或者将此文件复制到当前位置。例如: ```bash cd /path/to/your/project/ ``` ##### 方法二:检查文件名称是否存在拼写错误 Linux macOS 对文件名区分大小写,而 Windows 不区分。因此,在跨平台操作过程中可能会引入命名冲突。可以通过上述 `ls` 命令仔细核对实际存在的文件名,并调整调用方式。比如,如果是 `Docker-compose.yml` 而不是全小写的版本,则需重命名为标准形式: ```bash mv Docker-compose.yml docker-compose.yml ``` ##### 方法三:创建一个新的 `docker-compose.yml` 文件 如果完全丢失了这个必要的定义文档,则可以从头构建它。下面是一个简单的 MySQL 数据库实例作为模板参考[^2]: ```yaml version: '3' services: db: image: mysql:5.7 restart: always environment: MYSQL_ROOT_PASSWORD: example volumes: - ./data:/var/lib/mysql ``` 保存以上内容为 `docker-compose.yml`, 然后再次启动服务试试看。 ##### 方法四:处理权限不足引发的问题 有时即使存在指定文件仍会抛出找不到资源类异常(如提到过的 mysqld 报错),这往往涉及访问控制列表ACL设定不当所致[^3]。针对这种情况可采取如下措施之一来修正读取障碍: - 修改宿主机对应存储位置属性允许程序正常触达; - 显式声明绑定挂载点并赋予适当权利。 --- ### 总结 通过逐一排查上述几个方面——即核实所在路径、校正标签表述准确性、重新生成必要结构体以及优化授权机制——基本能够有效应对由 “No such file” 所触发的一系列连锁反应现象。 问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值