為什么新建文件時,所在文件系統還有大量剩余空間,卻提示此文件系統空間已滿??

一:答疑解惑:

   這是因為該文件所在分區的inode號被用盡,雖然分區的剩余容量還有很多。

二:基本原理:

  inode為何物block又為何物?以及,inode都有哪些特征?

  ①我們知道,在linux文件系統中,文件名只是計算機用來給人看,而計算機本身只識別文件所對應的數字或編號,而這個編號或數字就是inode(大小為128bytes)。inode用來記錄文件的屬性,一個文件占用一個inode,同時inode還記錄此文件的數據所在的block號碼。

  ※文件屬性大致包括:

    1.文件的訪問模式

    2.文件所有者和所屬組

    3.文件大小

    4.時間戳(atime,mtime,ctime)

    5.定義文件特征的標志(flag),如SetID等。

    6.文件真正內容的指向

  ②block也叫做數據塊,用來存放文件中的數據。當文件大小大于block大小事,則一個block文件可占用多個block塊,呈上,如果文件小于block,則該block剩余空間將不能被使用。

好,如果到這里,你還有些似懂非懂,那就廢話不多說,直接上圖:

             為什么新建文件時,所在文件系統還有大量剩余空間,卻提示此文件系統空間已滿?? 

  ③inode的特點:

    1.每個inode大小為均為128bytes

    2.每個文件只會占用一個inode,而一個inode可以被多個文件名所引用,而后面的這種屬性也就是硬鏈接(hard link)的原理。

    3.每個分區都有固定的inode數量,因此,文件系統能夠創建的文件數量與inode的數量有關,所以,當文件系統inode號被用光后,就無法再添加新的文件。

    4.系統讀取文件的順序;找到文件名所對應inode–>分析inode所記錄的文件權限是否與用戶權限相符合–>若符合,則讀取inode所對應的block。

   好了,都說光說不練假把式,要想了解inode的真正含義,還得實踐出真知,實驗如下:

 三:實驗:

  第一步:將/dev/sda1 掛載到新創建的目錄 /zdd 下,并通過df -h 和 df -i 查看此分區的磁盤內存使用情況和磁盤inode使用情況:

     為什么新建文件時,所在文件系統還有大量剩余空間,卻提示此文件系統空間已滿??  

               圖一

   第二步:從圖一中我們看到,此分區的內存和inode號還有很大剩余,那么,接下來就在/zdd 下創建65525個文件,文件名分別是file{11..65535}:

     為什么新建文件時,所在文件系統還有大量剩余空間,卻提示此文件系統空間已滿??

                圖二

  第三步:由圖二可以看出,創建大量文件后,/dev/sda1雖然磁盤空間僅用了將近1%,但inode號卻用了將近100%,只剩下1個可以使用,所以,在創建到第二個新文件時,意料之中就會發生圖三創建失敗的結果:

                      為什么新建文件時,所在文件系統還有大量剩余空間,卻提示此文件系統空間已滿??

                                                                           圖三

    為什么新建文件時,所在文件系統還有大量剩余空間,卻提示此文件系統空間已滿??

                 圖四

  好了,到這里,標題中的問題基本上已經得到了解決,而有關inode和block的相關內容事實上遠不止這些,所以,騷年,靜下心來多學習思考吧,只有豐富了頭腦,才能擁有一身本事報效我們可愛的祖國為什么新建文件時,所在文件系統還有大量剩余空間,卻提示此文件系統空間已滿??,來,跟著我一起念:富強、民主、文明、和諧、敬業、、、、、、、、、、、、、、

原創文章,作者:yunyunyu,如若轉載,請注明出處:http://www.www58058.com/82233

(1)
yunyunyuyunyunyu
上一篇 2017-07-22 22:13
下一篇 2017-07-23 13:36

相關推薦

  • linux文件管理類、bash的基礎命令以及習題。

    文件管理工具:cp, mv, rm cp命令:copy 源文件:目標文件; 單源復制:cp [OPTION]… [-T] SOURCE DEST 多源復制:cp [OPTION]… SOURCE… DIRECTORY         cp&nb…

    Linux干貨 2016-11-05
  • 內核編譯

    下載內核并解壓:tar -xvf linux-4.14.9.tar.xz -C ./linux/     接下來是 ? ?make ? config ?。 (具體參照 ? ?《make ? config ?的幾種類型》) 一般采用??# ?make ? menuconfig?? 的方式 是這個樣子的: 此處有可能需要幾個包,選擇最簡單的y…

    2018-01-01
  • keepalived的原理及安裝應用

    keepalived的主從模式,keepalived的日志功能和主主模式

    2018-03-13
  • iptables之nat

    NAT網絡地址轉換SNAT:修改IP報文中的源IP地址 本地向互聯網請求讓本地網絡中的主機可使用統一地址與外部通信,從而實現地址偽裝請求:修改源IP,如果修改則由光梨園定義響應:修改目標IP,由nat自動根據會話表中追蹤機制實現相應修改DNAT:修改目標地址轉換 外網服務器向其他客戶端請求請求:由外網主機發起,修改其目標地址,由管理員定義相應:修改源地址,但…

    2017-11-12
  • Lamp應用

    練習:分別使用CentOS 7和CentOS 6實現以下任務 (1) 配置三個基于名稱的虛擬主機; (a) discuzX (b) wordpress (c) https: phpMyAdmin (2) 對discuzX的主頁做壓測; 分別給出并發10, 100, 200, 500等每秒的響應數 建立私有CA (umask 077;openssl genrs…

    Linux干貨 2016-10-12
  • Linux上功能強大的文本編輯工具—vim

    vim–Vi Improved是一款全屏文本編輯器 vi: Visual Interface,文本編輯器 可見,vim是vi的升級版,所以我們當然要學習vim! vim的功能強大,自然命令、用法也會種類繁多,想要用的得心應手自然是需要長期的實際操作的,正所謂工欲善其事必先利其器,我們要想能夠在linux上從容應對繁多的文本編輯,無疑vim編輯器是…

    Linux干貨 2016-08-12
欧美性久久久久