inode与block(简单介绍及用法)

本文介绍了Linux文件系统中的inode和block概念。inode用于存储文件元信息,每个文件对应一个inode,而block则存储实际文件内容。inode满时仍可创建文件但无法写入数据,分区空间耗尽后虽不能新增文件,但能创建空文件。理解这两者对于优化磁盘使用和管理至关重要。

前言:磁盘格式化的时候会把磁盘分为两部分,分别是inode和block

inode

inode(index node):索引节点

  • 记录文件的属性
  • 一个文件占用一个inode,同时记录此文件数据所在的block number
  • 每个inode占大小为128bytes
  • 正是因为inode存在,所以我们的磁盘没有实际的大

查看文件的inode号 或者用 ll -i
[root@w66 ~]# stat ying
在这里插入图片描述
查看磁盘可用inode
[root@w66 ~]# df -i
在这里插入图片描述

block

block:块

  • Linux下叫block,Windows下叫簇
  • 存储文件实际数据
  • 实际存储文件的内容,若文件较大,会占用多个block
  • 每读取一个block就会消耗一次磁盘IO
  • block默认大小为4k
  • 若文件小于block,则该block的剩余容量就不会被使用
  • block并非越大越好,Block太大对于小文件的存放就会浪费磁盘空间

在这里插入图片描述
关于inode与block的两个问题
问题1:分区中,文件的数量和什么有关系

观察某个分区的inode
df -i 这里inode总数是5136
在这里插入图片描述在该磁盘中创造大量文件
在这里插入图片描述
再次查看inode 可用0
在这里插入图片描述虽然inode满了,但可以试着往文件里写内容

问题2:当分区空间大小消耗完毕,还能否新增文件

试着往1.txt写满内容
在这里插入图片描述

df -Th可以看出来 可用空间0 但inode显示可用
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

虽然磁盘满了,此时不可以写入内容,但可以创造文件,因为inode还有很多,但无法写入数据

### 可能原因分析 即使磁盘的 `inode` 和 `block` 空间都充足,仍可能出现“磁盘空间不足无法写入”的错误提示。这种现象通常由以下几个潜在问题引起: 1. **文件系统损坏** 如果文件系统的元数据结构(如超级块、位图等)遭到破坏,可能导致操作系统误判磁盘状态,从而阻止进一步写入操作[^4]。 2. **权限或配额限制** 用户可能受到磁盘配额(Disk Quota)的约束,尽管物理磁盘仍有剩余空间,但由于用户的可用额度已满,导致无法继续写入新数据[^5]。 3. **挂载选项限制** 某些情况下,文件系统可能是以只读模式挂载的。即便磁盘有足够的空间,也无法执行写入操作[^1]。 4. **特殊保留空间** 在某些文件系统中(例如 ext4),为了防止根分区完全耗尽而导致系统崩溃,默认会预留一定比例的空间供特权用户使用。如果普通用户尝试超出其可访问范围,则可能会收到此类错误消息[^4]。 5. **硬件层面的问题** 存储介质可能存在坏道或其他形式的硬件故障,这也会引发类似的警告信息,即使表面上看似乎还有足够的容量可供利用[^3]。 6. **日志子系统阻塞** 对于支持事务型日志功能的文件系统来说,假如日志区域填满而未能及时清理的话,同样会造成看似矛盾的现象——即整体看来尚有许多空闲位置却依旧报告缺乏资源来完成新的I/O请求[^4]。 --- ### 解决方案建议 针对以上提到的各种可能性,下面列举了几种排查修复措施: #### 方法一:验证文件系统健康状况 运行以下命令检查是否有任何结构性损伤存在: ```bash sudo fsck /dev/sdXn ``` 这里 `/dev/sdXn` 表示具体的分区标识符,请依据实际情况替换相应参。注意,在线状态下对活跃分区做全面扫描有可能带来风险,最好是在单用户模式或者重启进入救援环境后再实施此项操作[^4]。 #### 方法二:审查磁盘配额设置 确认当前登录账户是否受限于特定限额之内: ```bash repquota -a ``` 如果有发现异常高的用量接近甚至达到上限值,则需调整相应的策略配置文件 `/etc/fstab` 并重新加载服务生效变化[^5]。 #### 方法三:核查实际挂载属性 通过如下指令获取目标卷的实际装载方式详情: ```bash mount | grep sdXn ``` 观察输出结果里是否存在诸如 `ro`(Read Only) 这样的关键字标记。如果是这样,那么就需要找出背后的原因所在,并采取适当手段恢复正常工作流程[^1]。 #### 方法四:评估隐藏预留百分比影响 查询现有布局下预留给管理员阶层的比例是多少: ```bash tune2fs -l /dev/sdXn | grep 'Reserved block count' ``` 必要时降低这个值以便释放更多公共资源给一般进程调用: ```bash tune2fs -m 0 /dev/sdXn ``` 不过要注意这样做之后一旦真的遇到紧急情况下的极端条件时也许就没有余地去挽救局面了,所以务必谨慎行事[^4]。 #### 方法五:检测底层设备稳定性 借助专门工具诊断固态硬盘/机械硬盘内部组件的工作效率以及完好程度: ```bash smartctl --all /dev/sdX ``` 仔细解读返回的各项指标含义,特别是那些反映历史记录趋势的部分字段,像 Reallocated_Sector_Ct 或 Offline_Uncorrectable 。一旦察觉到可疑迹象就应该考虑更换受损部件以防万一。 #### 方法六:清理工控缓冲池 对于启用 journaling mechanism 的实例而言,定期整理冗长堆积的日志条目有助于缓解压力源积累带来的负面效应: ```bash logrotate config-file-path ``` 当然前提是得事先准备好合理的轮转计划定义文档才行。 --- ### 总结说明 综上所述,“磁盘空间充足但仍报错磁盘不足无法写入”这一复杂场景往往涉及多个维度的因素交互作用所致。只有经过细致深入的剖析过程才能准确定位根本诱因并施加有效的干预举措加以消除隐患。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值