首頁  >  文章  >  運維  >  linux建立檔案失敗的原因有哪些

linux建立檔案失敗的原因有哪些

青灯夜游
青灯夜游原創
2022-06-10 19:18:416738瀏覽

linux建立檔案失敗的原因:1、目前目錄對應的磁碟空間不足;在某個目錄下建立檔案時,實際上是在這個目錄對應的磁碟上操作,如果這個磁碟已經滿了,自然就創建失敗。 2.inode不足;由於一個文件對應一個inode,當磁碟裡的小文件過多時,就會出現block數量還很多,但是inode分配完了,也就是空間還很多,但是也無法創建,那是因為創建文件時,申請inode號失敗。

linux建立檔案失敗的原因有哪些

本教學操作環境:linux7.3系統、Dell G3電腦。

建立檔案失敗

Linux系統中建立檔案失敗是比較常見的,當然這裡的建立檔案不單單指使用者手動建立文件,更多的情況是一些網路服務,日誌系統等需要持續寫文件,創建文件,真正用戶創建文件失敗的情況比較少見。接下來我們分析一些,為什麼會創建失敗。

檔案建立失敗的原因:

1、目前目錄對應的磁碟空間不足

根據上面的描述,在某個目錄下建立檔案時,實際上是在這個目錄對應的磁碟上操作,如果這個磁碟已經滿了,自然就建立失敗,更具體的描述是:建立檔案時,申請block時失敗。可以用下面的指令查看:

# 查看当前目录所在磁盘的空间使用情况
df -h ./

2、inode不足

這是建立檔案失敗的另一個原因。由於一個檔案對應一個inode,當磁碟裡的小檔案過多時,就會出現block數量還很多,但是inode分配完了,也就是空間還很多,但是也無法創建,那是因為創建文件時,申請inode號失敗。可以用下面的指令確認是否是innode分配完了

# 查看当前目录所在磁盘的inode的使用情况
df -i ./

#擴展知識:幾個關鍵的名詞

  • superblock:用比較通俗的話來解釋就是:superblock手底下管著一片磁碟區域,凡是對文件的操作(創建,訪問,刪除)都要經過superblock,充當磁碟管理大管家的角色。

  • inode:隨磁碟格式化而預先劃分的小的磁碟區域,一般每個inode為128字節,用於記錄檔案的權限,屬性,佔用block等資訊。而每個文件對應一個inode,inode的申請,歸還由superblock管理,inode的數量是有限的。

  • block:檔案內容真正存放的地方,區塊的大小也是隨磁碟格式化而劃分,根據系統不一樣,每個區塊可以是1K,2K,4K大小,一個文件的內容必須佔用整數塊block,用完剩下的空間,就浪費了。例如:每個區塊為4K,假設有一個檔案大小為1K,那麼也需要分配一個區塊給他,這塊剩餘的3K就不能被其他檔案使用了。叫做磁碟碎片。另一個情況是一個檔案是10K,那麼他需要佔用3個區塊,實際使用率為10/12,而這三個區塊的編號都是記錄在這個檔案對應的inode裡。

  • 掛載點:在Linux系統中,每個實體磁碟都是掛載在某個目錄下,在這個目錄下建立文件,就等於在這塊實體磁碟上寫東西。

    通俗點說:一塊實體磁碟首先是掛載在檔案樹的某個目錄上,實體磁碟被劃分為多個區域,每個區域都有一個管理該區域的superblock,該區域隨磁碟格式化預先分割為一定數量並且進行編號的inode和block,一個inode對應一個文件,創建新文件時,需要去superblock那先申請一個inode號,再根據文件大小,申請若干個block,在inode中記錄檔案的屬性,權限,佔用的block編號,最後把檔案的真正內容寫入分配好的block。

相關推薦:《Linux影片教學

以上是linux建立檔案失敗的原因有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn