Linux 磁盘与文件系统管理
文件系統(tǒng)組成:
superblock:記錄次filesystem的整體信息,包括inode/block的總量,使用量,剩余量等
inode:記錄文件的屬性,一個(gè)文件占用一個(gè)inode,同時(shí)記錄次文件的數(shù)據(jù)所在的block號(hào)碼
block:實(shí)際記錄文件的內(nèi)容,若文件太大,會(huì)占用多個(gè)block
磁盤(pán)重組:文件寫(xiě)入的block太過(guò)于離散,此時(shí)文件讀取的性能會(huì)下降
MBR:磁盤(pán)最前面的512個(gè)字節(jié)的特殊分區(qū),不屬于磁盤(pán)上的任何分區(qū),因此分區(qū)空間內(nèi)的格式化命令不能清除主引導(dǎo)分區(qū)
只能通過(guò)重新格式化磁盤(pán)或者特殊的工具
Linux的Ext2文件系統(tǒng):
在格式化的時(shí)候區(qū)分為多個(gè)區(qū)塊群組(block group)的,每個(gè)區(qū)塊群組都有獨(dú)立的inode/block/superblock
文件系統(tǒng)最前面有一個(gè)開(kāi)機(jī)扇區(qū)(boot sector),可以安裝開(kāi)機(jī)管理程序,而不用覆蓋整顆磁盤(pán)唯一的MBR
data block(數(shù)據(jù)塊)
在ext2文件系統(tǒng)中支持的block大小有1k,2k及4k
block大小 1KB 2KB 4KB
最大單一文件 16GB 256GB 2TB
最大文件系統(tǒng)總?cè)萘?2T 8T 16T
inode table
記錄的數(shù)據(jù):
該文件的存取模式(read/write/excute)
該文件的擁有者與群組(owner/group)
該文件的容量
該文件創(chuàng)建或狀態(tài)改變的時(shí)間(ctime)
最近一次訪問(wèn)時(shí)間(atime)
最近修改時(shí)間(mtime)
定義文件特性的旗標(biāo)(SUID,,,,)
該文件真正內(nèi)容的指向
12個(gè)直接指向: 12*1K=12K
間接指向: 256*1K=256K
每筆block號(hào)碼的記錄花去4Bytes,因此1K的大小能記錄256筆記錄
雙間接:256*256*1K
三間接:256*256*256*1K
總額:12+256_256*256+256*256*256(K) = 16GB
(算法不適合2K及4K的block大小,會(huì)收到Ext2文件系統(tǒng)本身的限制)
superblock:
記錄信息
block與inode的總量
未使用與已使用的inode/block數(shù)量
block與inode的大小
filesystem的掛載時(shí)間,最近一次寫(xiě)入數(shù)據(jù)時(shí)間,最后一次磁盤(pán)檢查時(shí)間等
一個(gè)valid bit數(shù)值,已被掛載為0,未被掛載為1
文件系統(tǒng)常用操作:
?
du:文件或者目錄名稱-s:列出總量-h:以容易讀的方式展示?
ln:符號(hào)鏈接-s: 如果不加任何參數(shù)表示-s,為軟連接-P: 硬連接-f: 如果存在,詢問(wèn)是否覆蓋ln -s /etc/passwd /tmp/a 前面實(shí)體,后面新鏈接
磁盤(pán)的分區(qū),格式化,檢驗(yàn)與掛載
?
blkid:列出設(shè)備的UUID等參數(shù)parted:列出磁盤(pán)的分區(qū)表類型與分區(qū)信息parted /dev/sda print?
fdisk:查看分區(qū)mkfs:格式化分區(qū)fsck:磁盤(pán)檢驗(yàn)?
mount:磁盤(pán)掛載-a:依照配置文件把所有未掛載的磁盤(pán)都掛載上來(lái)-l:僅輸出目前掛載信息-t:文件系統(tǒng)種類-o:在掛載時(shí)額外增加參數(shù)remote: 重新掛載..... umount:-f:強(qiáng)制卸載-l:立刻卸載-n:不更新/etc/mtab情況下卸載?
開(kāi)機(jī)掛載:
/etc/fstab
/etc/mtab
交換分區(qū):swap
?
轉(zhuǎn)載于:https://www.cnblogs.com/djoker/p/9390869.html
總結(jié)
以上是生活随笔為你收集整理的Linux 磁盘与文件系统管理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Linux文件属性和权限
- 下一篇: Linux设置SSH登录(SecureC