本文小編為大家詳細介紹“linux創建文件失敗的原因是什么”,內容詳細,步驟清晰,細節處理妥當,希望這篇“linux創建文件失敗的原因是什么”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
linux創建文件失敗的原因:1、當前目錄對應的磁盤空間不足;在某個目錄下創建文件時,實際上是在這個目錄對應的磁盤上操作,如果這個磁盤已經滿了,自然就創建失敗。2、inode不足;由于一個文件對應一個inode,當磁盤里的小文件過多時,就會出現block數量還很多,但是inode分配完了,也就是空間還很多,但是也無法創建,那是因為創建文件時,申請inode號失敗。
本教程操作環境:linux7.3系統、Dell G3電腦。
創建文件失敗
Linux系統中創建文件失敗是比較常見的,當然這里的創建文件不單單指用戶手動創建文件,更多的情況是一些網絡服務,日志系統等需要持續寫文件,創建文件,真正用戶創建文件失敗的情況比較少見。接下來我們分析一些,為什么會創建失敗。
文件創建失敗的原因:
1、當前目錄對應的磁盤空間不足
根據上面的描述,在某個目錄下創建文件時,實際上是在這個目錄對應的磁盤上操作,如果這個磁盤已經滿了,自然就創建失敗,更具體的描述是:創建文件時,申請block時失敗??梢杂孟旅娴拿畈榭矗?/p>
# 查看當前目錄所在磁盤的空間使用情況 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創建文件失敗的原因是什么”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。