为什么硬盘明明还有空间,linux却说硬盘空间不足?inode;mkdir: 无法创建目录shen1: 设备上没有空间...
現(xiàn)象:df -h顯示硬盤還有14G空間,但是touch file/mkdir directory都失敗,提示硬盤沒有空間
原因:df -ia查看下inode的使用情況,發(fā)現(xiàn)已經(jīng)爆了,(下圖顯示使用88%,還沒有用完)
那么,inode究竟是什么?為什么它使用完,就不能創(chuàng)建文件和文件夾了?
解釋:文件儲(chǔ)存在硬盤上,硬盤的最小存儲(chǔ)單位叫做"扇區(qū)"(Sector)。每個(gè)扇區(qū)儲(chǔ)存512字節(jié)(相當(dāng)于0.5KB)。
操作系統(tǒng)讀取硬盤的時(shí)候,不會(huì)一個(gè)個(gè)扇區(qū)地讀取,這樣效率太低,而是一次性連續(xù)讀取多個(gè)扇區(qū),即一次性讀取一個(gè)"塊"(block)。這種由多個(gè)扇區(qū)組成的"塊",是文件存取的最小單位。"塊"的大小,最常見的是4KB,即連續(xù)八個(gè) sector組成一個(gè) block。
文件數(shù)據(jù)都儲(chǔ)存在"塊"中,那么很顯然,我們還必須找到一個(gè)地方儲(chǔ)存文件的元信息,比如文件的創(chuàng)建者、文件的創(chuàng)建日期、文件的大小等等。這種儲(chǔ)存文件元信息的區(qū)域就叫做inode,中文譯名為"索引節(jié)點(diǎn)"。
每一個(gè)文件都有對(duì)應(yīng)的inode,里面包含了與該文件有關(guān)的一些信息
可以使用stat命令查看inode的信息:stat example.txt
?
另外,單個(gè)目錄下子目錄的數(shù)量也是有限制的
?
統(tǒng)計(jì)目錄inode占用數(shù)目:
find */ ! -type l | cut -d / -f 1 | uniq -c
find */ -exec stat -c "%n %i" {} \;|awk -F "[/ ]" '{if(! a[$1-$NF]++) l[$1]++}END{for (i in l) print i,l[i]}'
?
?
參考:
1、http://www.ruanyifeng.com/blog/2011/12/inode.html
2、https://www.jianshu.com/p/6978bddd69af
3、http://blog.51cto.com/13520924/2092364
4、https://blog.csdn.net/lidan3959/article/details/16981137
?
轉(zhuǎn)載于:https://www.cnblogs.com/shengulong/p/9069187.html
總結(jié)
以上是生活随笔為你收集整理的为什么硬盘明明还有空间,linux却说硬盘空间不足?inode;mkdir: 无法创建目录shen1: 设备上没有空间...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JS设置CSS样式的集中方式
- 下一篇: 并查集及其补集应用