linux創(chuàng)建文件失敗的原因有哪些
Linux創(chuàng)建文件失敗的原因:1、當前目錄對應的磁盤空間不足;在某個目錄下創(chuàng)建文件時,實際上是在這個目錄對應的磁盤上操作,如果這個磁盤已經(jīng)滿了,自然就創(chuàng)建失敗。2、inode不足;由于一個文件對應一個inode,當磁盤里的小文件過多時,就會出現(xiàn)block數(shù)量還很多,但是inode分配完了,也就是空間還很多,但是也無法創(chuàng)建,那是因為創(chuàng)建文件時,申請inode號失敗。
程序員必備接口測試調(diào)試工具:立即使用
Apipost = Postman + Swagger + Mock + Jmeter
Api設計、調(diào)試、文檔、自動化測試工具
后端、前端、測試,同時在線協(xié)作,內(nèi)容實時同步
本教程操作環(huán)境:linux7.3系統(tǒng)、Dell G3電腦。
創(chuàng)建文件失敗
Linux系統(tǒng)中創(chuàng)建文件失敗是比較常見的,當然這里的創(chuàng)建文件不單單指用戶手動創(chuàng)建文件,更多的情況是一些網(wǎng)絡服務,日志系統(tǒng)等需要持續(xù)寫文件,創(chuàng)建文件,真正用戶創(chuàng)建文件失敗的情況比較少見。接下來我們分析一些,為什么會創(chuàng)建失敗。
文件創(chuàng)建失敗的原因:
1、當前目錄對應的磁盤空間不足
根據(jù)上面的描述,在某個目錄下創(chuàng)建文件時,實際上是在這個目錄對應的磁盤上操作,如果這個磁盤已經(jīng)滿了,自然就創(chuàng)建失敗,更具體的描述是:創(chuàng)建文件時,申請block時失敗。可以用下面的命令查看:
# 查看當前目錄所在磁盤的空間使用情況 df -h ./
2、inode不足
這是創(chuàng)建文件失敗的另一個原因。由于一個文件對應一個inode,當磁盤里的小文件過多時,就會出現(xiàn)block數(shù)量還很多,但是inode分配完了,也就是空間還很多,但是也無法創(chuàng)建,那是因為創(chuàng)建文件時,申請inode號失敗??梢杂孟旅娴拿畲_認是否是innode分配完了
# 查看當前目錄所在磁盤的inode的使用情況 df -i ./
擴展知識:幾個關鍵的名詞
superblock:用比較通俗的話來解釋就是:superblock手底下管著一片磁盤區(qū)域,凡是對文件的操作(創(chuàng)建,訪問,刪除)都要經(jīng)過superblock,充當磁盤管理大管家的角色。
inode:隨磁盤格式化而預先劃分的小的磁盤區(qū)域,一般每個inode為128字節(jié),用于記錄文件的權(quán)限,屬性,占用block等信息。且每個文件對應一個inode,inode的申請,歸還由superblock管理,inode的數(shù)量是有限的。
block:文件內(nèi)容真正存放的地方,塊的大小也是隨磁盤格式化而劃分,根據(jù)系統(tǒng)不一樣,每個塊可以是1K,2K,4K大小,一個文件的內(nèi)容必須占用整數(shù)塊block,用完剩下的空間,就浪費了。比如:每個塊為4K,假設有一個文件大小為1K,那么也需要分配一個塊給他,這塊剩余的3K就不能被其他文件使用了。叫做磁盤碎片。另一個情況是一個文件是10K,那么他需要占用3個塊,實際使用率為10/12,并且這三個塊的編號都是記錄在這個文件對應的inode里。
掛載點:在Linux系統(tǒng)中,每個物理磁盤都是掛載在某個目錄下,在這個目錄下創(chuàng)建文件,就等于在這塊物理磁盤上寫東西。
通俗點說:一塊物理磁盤首先是掛載在文件樹的某個目錄上,物理磁盤被劃分為多個區(qū)域,每個區(qū)域有一個管理該區(qū)域的superblock,該區(qū)域隨磁盤格式化預先劃分為一定數(shù)量并且進行編號的inode和block,一個inode對應一個文件,創(chuàng)建新文件時,需要去superblock那先申請一個inode號,再根據(jù)文件大小,申請若干個block,在inode中記錄文件的屬性,權(quán)限,占用的block編號,最后把文件的真正內(nèi)容寫入分配好的block中。
相關推薦:《Linux視頻教程》
以上就是linux創(chuàng)建文件失敗的原因有哪些的詳細內(nèi)容,更多請關注其它相關文章!
版權(quán)聲明:
本站所有文章和圖片均來自用戶分享和網(wǎng)絡收集,文章和圖片版權(quán)歸原作者及原出處所有,僅供學習與參考,請勿用于商業(yè)用途,如果損害了您的權(quán)利,請聯(lián)系網(wǎng)站客服處理。