linux文件系統詳解
1.linux文件體系:一切皆文件和文件目錄樹的資源管理方式一起構成了linux的文件體系,讓linux操作系統可以方便地使用系統資源
2.硬盤分區:分區本身並不是必須的,我們完全可以把一整塊硬盤當成一個分區,但從數據的安全性和系統性能的角度來看,分區還是必不可少的;每塊硬盤上最重要的第一扇區,擁有硬盤主引導記錄(MBR)【占446bytes】及分區表(partition table)【占64bytes】,硬盤主引導記錄放有最基本的引導加載程序,是系統開機啟動的關鍵環節,而分區表則跟分區有關(由於只有64bytes,最多只能記錄4個分區,四個分區不夠用,所以有了擴展分區。。。)
操作系統規定:
1.四塊分區每塊都可以是主分區或擴展分區
2.擴展分區最多只能有一個(也沒必要有多個)
3.擴展分區可以進一步分割為多個邏輯分區
4.擴展分區只是邏輯概念,本身不能被訪問,也就是不能被格式化後作為數據訪問的分區,能夠作為數據訪問的分區只有主分區和邏輯分區
5.邏輯分區的數量依操作系統而不同,在 Linux 系統中,IDE 硬盤最多有 59 個邏輯分區(5 號到 63 號), SATA 硬盤則有 11 個邏輯分區(5 號到 15 號)
磁盤分區必須被格式化,成為一個文件系統
3.一個掛載點就是一個文件夾,將分區掛載到一個掛載點,掛載點就成了分區的入口。沒有掛載分區的掛載點將使用根目錄的空間,沒有掛載到掛載點的分區是無法訪問的,如上邊第四個邏輯分區。
例如,如果分區 /dev/hda5 被 掛載在 /usr 上,這意味著所有在 /usr 之下的文件和目錄在物理意義上位於 /dev/hda5 上。因此文件 /usr/share/doc/FAQ/txt/Linux-FAQ 被儲存在 /dev/hda5上,而文件 /etc/X11/gdm/Sessions/Gnome 卻不是。 繼續以上的例子,/usr 之下的一個或多個目錄還有可能是其它分區的掛載點。例如,某個分區(假設為,/dev/hda7)可以被掛載到 /usr/local 下,這意味著 /usr/local/man/whatis 將位於 /dev/hda7 上而不是 /dev/hda5 上。 linux系統中每個分區都是一個文件系統,都有自己的目錄層次結構。linux會將這些分屬不同分區的、單獨的文件系統按一定的方式形成一個系統的總的目錄層次結構。將一個文件系統的頂層目錄掛到另一個文件系統的子目錄上,使它們成為一個整體,稱為掛載。把該子目錄稱為掛載點。
註意:1、掛載點必須是一個目錄。
2、一個分區掛載在一個已存在的目錄上,這個目錄可以不為空,但掛載後這個目錄下以前的內容將不可用
4.上面提到:磁盤分區必須被格式化,成為一個文件系統;這個文件系統有兩部分構成:inode和block
inode和block在分區格式化完成時數量和大小就已經決定了,除非重新格式化,不然無法再次修改
inode:centos 5 默認128bytes;centos 6 默認256bytes,用於存放文件的的屬性和權限信息以及block的位置信息,唯獨不包含文件名(有大小的)
block:用於存放文件的數據,包括文件名,固定大小(1k,2k,4k),一個block只能被一個文件使用,block並不是越大越好------太大--->浪費硬盤空間;太小--->影響讀寫性能
系統在查找一個文件時,先通過文件對應的inode,讀取inode中的權限信息和對應的block位置信息,再根據inode裏規定的用戶的權限,讓用戶讀取或者操作文件
linux文件系統詳解