Linux磁盘分区及文件系统管理之基础概念
設備文件
關聯至設備的驅動程序,是設備的訪問入口
設備號
Major 主設備號,區分設備類型,用于標明設備所需要的驅動程序
Minor 次設備號,區分同種類型下的不同設備
創建設備文件
mknod 每一個設備就是一個節點。
查看設備
10代表的是主設備號
175,235,260代表的次設備號。
引用磁盤設備的方式
1、設備名稱 2、卷標 3、UUID
磁盤設備
1、IDE 設備名稱為:/dev/hd[a-z]
2、SCSI、SATA、USB、SAS設備名稱為:/dev/sd[a-z]
如果磁盤設備有分區該如何標識?/dev/sda1 /dev/sda2
注意:CentOS6 和CentOS7 統統將硬盤設備文件標識為/dev/sd
磁盤分區
磁盤分區有兩種方式:MBR和GPT
先來說說MBR 不是MBA哈
0 sector(0號扇區,主引導扇區)用于存放Master Boot Record,主引導記錄,比如Windows啟動時讓你選擇啟動系統。
每個扇區有512個字節,MBR中如何使用分區空間呢?1、前446字節存放Bootloader,這是個程序,用于引導啟用操作系統 2、中間64字節,存放分區表,每16個字節標識一個分區,所以一個磁盤最多有4個主分區,這個是改變不到的。
現在的系統可以將分區表的最后一部分拿來作為指向其他存儲空間的記錄。這個分區表可以指向一個硬盤,將該硬盤的一部分或者全部作為新的分區表。最后一個主分區改名為擴展分區,這樣擴展分區不能用于存儲數據。擴展分區指向邏輯分區(邏輯分區的數量不定)
注意:除去主分區就是最后一部分,可以是1個主分區加一個擴展分區,也可以是2個主分區加一個擴展分區。
主分區的分區號只有1 2 3 4
邏輯分區的分區號從5開始。
格式化
低級格式化,是出廠的時候做的,用來劃分磁道
高級格式化,就是創建文件系統
高級格式化
在指定的分區內首先創建元數據的存儲空間,類似于目錄,作用是有效快速的查詢數據。這樣一個分區就被劃分為兩種存儲空間,一個空間用于存放元數據,另一個空間用于存放真實數據。
文件的元數據是inode-->Index node 索引節點:包含文件大小,權限,屬主、屬組時間戳、數據塊指針(這個指針就限制了單位文件大小),元數據不包括文件名,文件名在數據磁盤中存放,因為文件名是目錄文件的真實數據。
其實元數據就是一個數據結構,每個文件的元數據組成元素都一樣。格式化的時候就把元數據創建好了,只是元數據的內容是空的。
數據存放
在文件系統中,數據存放并不以扇區為單位,而是以塊為單位。若干個扇區組成一個數據塊。文件系統用數據塊存放數據,數據塊的分配是整塊分配的,不會出現小數點塊。
數據塊形成后,由系統分配數據塊的存放內容類型,有些數據塊存放元數據,有些數據塊存放真實數據。
符號鏈接文件(軟鏈接文件)
普通文件的元數據都是指向真實數據,但鏈接文件的元數據指向的是另一個文件的元數據(數據塊指針存儲的是真實文件的訪問路徑)
符號鏈接支持對目錄創建符號鏈接,可以跨文件系統(指向不同的分區)。如果原文件被刪除,符號鏈接文件就失效了。訪問符號鏈接文件不能得到任何信息。符號鏈接的權限為777
硬鏈接文件
指向同一個inode的不同文件。目錄不支持硬鏈接,硬鏈接不能跨文件系統,創建硬鏈接會增加inode計數。
什么時候會用到鏈接文件
當需要多人同時對一個文件進行修改,但是又不想讓操作員知道真實的文件名的時候。
設備文件
再來說說設備文件,設備文件的數據塊中存放的是設備的主設備號和次設備號
磁盤塊位圖索引(bitmap index位圖索引)
用于標識磁盤塊是否為空,indoe也有位圖索引。
預留空間
用于Root用戶使用,留多少(CentOS7 預留5%),誰決定?由文件系統管理工具決定,創建文件系統的時候需要指定參數。
塊組 data block group
這個概念太底層化了,以后有了具體應用在具體描述。這里只需要知道磁盤并不是只有兩個數據區(元數據區和數據區),磁盤先被劃分為數據塊,由數據塊組成塊組,每個塊組都有元數據區和數據區。元數據區存放了本數據組中可用的數據塊的編號。在元數據區還存放了一個叫超級塊的數據(super block),這個數據不止一份,這個數據主要是向外告知這個磁盤的基本情況(有多少個塊組,每個塊組的存儲容量)
重點說下inode
68開頭的數字就是inode號,機器是別的是inode號,人識別的是文件名,inode類似于頁碼,根據頁碼去找出數據。
文件系統目錄
首先,根目錄是內核可以識別的(這個是前提,我現在解釋不清楚)。根目錄的inode在內核中,然后根據根目錄的inode找到根目錄的元數據,根據元數據找到根目錄的數據塊存儲塊。根的數據存儲塊中包含了根目錄下的一級目錄的目錄名和與其對應的inode編號。
交換文件系統 Swap
這個文件系統簡單點說就是把磁盤空間拿來當做內存來用。
系統目錄注意事項
/bin /sbin /etc /lib /lib64 這幾個分區必須在根分區
/usr /var 這兩個目錄可以單獨分區。
創建文件系統工具
mkfs格式化工具是一個通用工具,針對不不同的操作系統也會有不同的工具。mkfs其實是調用了其他具體的格式化工具,這樣可以為管理員提供統一的操作接口。具體的格式化工具有:1、mkfs.ext2 2、mkfs.ext3 3、mkfs.ext4 4、mkfs.xfs等。
檢測及修復文件系統的工具
fsck 這個工具也是一個統一的調用程序,具體的工具有fsck.ext2 fsck.ext3
查看文件系統屬性的工具
dumpes2fs
調整文件系統特性的工具
tune2fs
內核級文件系統的組成部分
1、文件系統驅動
lsmod查看內核中包含的文件系統驅動,也有可能找不到(可能已經作為內核的一部分)能看到的是額外添加到內核中的。
2、文件系統管理工具,由用戶空間的應用程序提供。
轉載于:https://blog.51cto.com/yueyue207/2070026
總結
以上是生活随笔為你收集整理的Linux磁盘分区及文件系统管理之基础概念的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决计算机问题的一般步骤
- 下一篇: 给你们讲讲我自己是怎么学习Linux系统