linux中的inode简单介绍

最近在linux上创建目录的时候出现mkdir:Cannot create directory***: No space left on device, 但是df的时候发现空间还有几百G(有同事是中文的机器出现Mkdir: 无法创建目录***,设备上没有空间)。不能继续创建目录或者touch文件的原因是Inode满了。

Inode的数量是有限制的,每个文件对应一个Inode, 那么如何查看inode的最大数量呢,

1
2
3
4
[work@*** ~]$ df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/cciss/c0d0p2    1154176  172807  981369   15% /
/dev/cciss/c0d0p3    88309760   51951 88257809    1% /home

可以看到Inode的总量,已经使用的Inode数量,和剩余数量。
如果watch -n 1 “df -i”一下, 然后去创建一个文件, 会发现已用的加一,未用的减一
简单了解下Inode在文件系统中的地位:

Linux会为每一个文件分配一个唯一的inode节点。在linux中,文件的文件名、文件属性、文件内容是分别存储的:文件名存放在目录项(即 dentry)中,文件属性存放在inode中,文件内容存放在block中。Linux在查找文件时,首先先读取dentry,dentry中存储的文 件名和inode编号的一个映射表, 根据这个表找到inode编号,再根据inode找到磁盘中的文件。
可以用ls -i查看文件对应的inode编号, 也可以直接stat一个文件, 会有很全的信息。

我的blog原创转过来的,欢迎多多交流。

本文固定链接: http://xiaoneit.com/blog/2012/02/inode/ | 坚持就是胜利

该日志由 shapherd 于2012年02月01日发表在 linux 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: Inode简介 | 坚持就是胜利
关键字: ,
posted @ 2012-02-07 16:31 ShaPherD 阅读(...) 评论(...) 编辑 收藏