Linux檔案系統

2021-08-21 12:17:01 字數 2709 閱讀 1265

檔案系統

計算機的檔案系統是一種儲存和組織計算機資料的方法,借助於檔案系統,使用者或程式對檔案的訪問和查詢變得容易。 linux支援的檔案系統格式有:ext2, ext3, ext4, reiserfs, xfs, btrfs, fat, fat32, ntfs等。本文中,我並不打算展開對這些檔案系統的詳細解釋,只是簡單說出以下這些結論:

ext2, ext3, ext4是linux系統上最常用的檔案系統,發展到ext4時已經十分穩定,沒有特別要求時,一般都可以使用;

reiserfs是用b+樹作為資料結構的檔案系統,在處理小檔案時有較好的效能,在實踐中,reiserfs在處理檔案小於1k小檔案時,甚至效率可以比ext3快約10倍;

xfs使用64位管理空間,在多檔案、大檔案系統、空間利用率等方面相比ext4更有優勢。從centos 7開始,預設的檔案系統就由此前的ext4改為xfs了,由於檔案規模的不斷增大,日後ext4可能會被xfs所取代。

btrfs官方宣稱其為「下一代檔案系統」,雖然從理念上看btrfs確實可能存在不錯的效果,但截至目前,它的效能表現還是太差了,不建議使用。

【ext4、xfs、btrfs的詳細對比,感興趣的讀者可以看看這篇benchmark:ext3 vs ext4 vs xfs vs btrfs linux filesystems benchmark】

linux雖然支援fat、fat32、ntfs,但僅僅是為了相容性,這三個檔案系統很容易產生磁碟碎片(儘管ntfs上已有不小改善),linux系統下一般是不會輕易使用的。

掛載點掛載點是linux中的磁碟檔案系統的入口目錄。

掛載點與其功能描述如下:

/根目錄,存放系統命令和使用者資料等(如果下面掛載點沒有單獨的分割槽,它們都將在根目錄的分割槽中)

/boot

/home

使用者目錄,存放普通使用者的資料

/tmp

臨時檔案

/usr

是red hat linux系統存放軟體的地方,如有可能應將最大空間分給它: /usr/local 自已安裝程式安裝在此 /usr/x1186 x-windows目錄,存放一些x-windows的配置檔案 /usr/include 系統標頭檔案,儲存一些c語言的標頭檔案 /usr/src linux核心源**,linux系統所安裝的核心源**都儲存在此 /usr/bin 對/bin目錄的一些補充 /usr/sbin 對/sbin目錄的一些補充 /usr/share/doc 使用者文件

/var

不斷變化的資料,伺服器的一些服務、日誌放在下面: /var/www:一般web存放網頁的目錄 /var/mail:postfix郵件的存放郵件的目錄 /var/log:系統日誌記錄 /var/spool:存放一些郵件、新聞、列印佇列等。

/opt

(option可選的)附加的應用程式軟體包

/bin

基本命令執行檔案

/dev

裝置檔案

/etc

主機特定的系統配置

/lib

基本共享庫以及核心模組

/media

用於移動介質的掛載點

/mnt

用於臨時掛載檔案系統或者別的硬體裝置(如光碟機、軟碟機)

/proc

系統資訊的虛擬目錄(2.4 和 2.6 核心),這些資訊是在記憶體中,由系統自己產生的。

/root

root 使用者的目錄

/sbin

基本系統命令執行檔案

/sys

系統資訊的虛擬目錄(2.6 核心)

/srv

系統提供的用於 service 的資料

/lost+found

這個目錄在大多數情況下都是空的。但是如果你正在工作突然停電,或是沒有用正常方式關機,在你重新啟動機器的時候,有些檔案就會找不到應該存放的地方,對於這些檔案,系統將他們放在這個目錄下。

當然上面這麼多掛載點,實際上是沒有比較每個目錄都單獨進行掛載,我們只需要根據自己的實際使用需要對個別目錄進行掛載,這樣系統結構看起來也會精簡很多。最少的時候,我們只需要掛載/就可以了(當然這樣並不好)。

分割槽根據掛載點的不同,對磁碟進行分割槽,選擇最合適的檔案系統,可以使計算機的效能、管理達到最優。

分割槽有很多的優點,例如:

1)保護資料;假如誤操作,有分割槽的情況下就可能保護一部分資料免受誤操作的影響;重灌作業系統時,如果原先的系統中/home與/兩個掛載點是對應著兩個不同分割槽時,/home目錄就不會受到影響;

2)針對不同掛載點的特性選擇檔案系統,開啟不同的掛載選項(如是否需要即時同步,是否開啟日誌,是否啟用壓縮)以更好地發揮效能,比如對/var使用reiserfs(這裡面的檔案通常小而繁雜),對/home使用xfs(超大容量支援可能是使用者檔案比較需求的),對/使用ext4(更加穩定)。

3)分割槽可以縮小硬碟搜尋範圍,提高效率。

我舉一例比較典型的分割槽方案:

掛載點分割槽

檔案系統

分配詳情

/boot

啟動分割槽

ext4

只需要幾百m即可,可以容納下兩三個核心足矣。

/swap

交換分割槽

swap

物理記憶體的1.5-2倍,物理記憶體夠大也可不分配

/根分割槽

ext4

桌面系統給個100g~200g足矣。

/home

家分割槽xfs

剩下的可以全部分配給家分割槽

參考文獻

linux 檔案系統 Linux 檔案系統結構介紹

ubuntu 像所有類unix系統一樣 在分層樹中組織檔案,其中的關係就像父母和孩子一樣。目錄可以包含其他目錄以及常規檔案,它們是樹的 葉子 樹的任何元素都可以通過路徑名引用 絕對路徑以字元 標識根目錄,其中包含所有其他目錄和檔案 開頭,然後列出必須遍歷以到達該元素的每個子目錄,每個子目錄用 符號分...

Linux檔案系統

linux目錄結構 根目錄 bin 可執行檔案目錄 boot 核心引導檔案 vmlinuz,initrd.img等 dev 裝置檔案儲存目錄,應用程式對這些檔案讀寫和控制可訪問實際裝置 etc 系統配置和一些伺服器配置檔案的位置,如帳號及密碼配置檔案。home 普通使用者目錄 lib 庫檔案目錄 l...

Linux檔案系統

之前對磁碟分割槽已經有了詳細的描述,這篇主要介紹檔案系統 linux的檔案系統是出了名的 下面就 大概介紹下 可以把檔案系統大概分成 superblock inodeblock datablock 三部分 superblock superblock記錄檔案系統的基本資訊比如每塊資料塊的大小,空閒磁碟...