轉載自: http://blog.csdn.net/intlgj/article/details/8575192
Linux 檔案系統結構介紹
Linux 作業系統有一些固定的目錄。各種Linux 發行版的目錄結構雖然不會一模一樣,但是不會有很大差異。知道了這些目錄的作用,不僅對你進行磁碟分割規劃很有協助,而且會讓你以後的日常維護工作變得輕鬆。
Ubuntu 檔案系統的主要目錄如表2.2 所示。
表2.2 Ubuntu Linux 檔案系統的主要目錄
| 目 錄 |
英文全名 |
用 途 |
| / |
/ |
整個目錄結構的起始點 ,所有其它檔案和目錄都在它下面 |
| /bin |
Binaries |
用來存放最常用的二進位命令 |
| /boot |
Boot |
包含引導Linux 的主要檔案 ,如grub 和核心檔案 等 |
| /dev |
Devices |
所有裝置都在該目錄下,包括硬碟和顯示器等 |
| /etc |
etc |
系統的所有設定檔都放在它下面 |
| /home |
Home |
存放各使用者的主目錄 ($HOME) 及其檔案和配置 |
| /lib |
Libraries |
系統的庫檔案 ,有點像Windows 的Program Files |
| /lost+found |
lost+found |
存放 系統異常時丟失的檔案 ( 如突然宕機) ,以利於恢複 |
| /media |
Media |
載入各種媒體,如光碟片、磁碟片等 |
| /mnt |
Mount |
載入各種檔案系統 |
| /opt |
Optionally |
用於存放安裝的“可選”程式 |
| /proc |
Processes |
包含進程等資訊 ,是記憶體的映射,不是真實目錄 |
| /root |
Root |
該目錄是root 使用者的根目錄 |
| /sbin |
System-only binaries |
存放系統專用的二進位命令 |
| /sys |
System |
存放系統資訊 |
| /tmp |
Temporary files |
存放臨時檔案 |
| /usr |
User |
存放 普通使用者的應用程式 ,庫檔案和文檔等 |
| /var |
Variable files |
存放那些在時間、大小、內容上會經常變化的檔案 |
表2.2 中各個目錄的用途,你應該很瞭解才行。只要瞭解了各個目錄的用途,你才能在硬碟分區時不至於犯下大的錯誤。 “分區”和“掛載點”
平時,我們在討論Linux 的“分區”時,常常混淆“掛載點”和“分區”的概念。其實只要大家都能明白就可以,不必摳字眼。不過,作為Linux 系統管理員,我們還是應該弄明白這兩個概念的差別。
我們平常所說的“/var 分區”,實際上說的是“掛載在/var 上的分區 ”,而“/var ”只是一個掛載點 。那麼什麼是“分區”呢。
在Linux 中,“分區”是一個一個的裝置,放在/dev 目錄下 。如果說IDE 硬碟,它們的名字應該是/dev/hda1、/dev/hda2 等;如果說SATA 或者SCSI 硬碟,它們的名字則是/dev/sda1 、/dev/sda2 等。 硬碟分區的表示方法
那麼什麼是hda 和sda 呢。它們分別是Hard Driver Number A 和SCSI Driver Number A 的簡寫,也就是說,hd 和sd 指出了硬碟的介面類型,後面的a 則是序號,表示第幾塊硬碟。第1 塊 IDE 硬碟是hda ,第2 塊 IDE硬碟是hdb ,依此類推;第1 塊SCSI 硬碟用sda 表示,那麼第2 塊SCSI 就是用sdb 表示了,依此類推,往後則是sdc 、sdd 等。
實際上,sd 表示的不僅僅是SCSI 裝置。除了IDE 裝置外,SCSI 、SATA 、USB 、Firewire 等介面的存放裝置都是以sd 表示的。
現在你應該已經知道,/dev/sdb2 指的是第2 塊SCSI 硬碟的第2 個分區 ,而/dev/hda5 指的是第1 塊IDE 硬碟的第5 個分區。
表2.3 Linux 硬碟分區表示方法
| |
IDE 介面硬碟 |
SCSI 介面硬碟 |
| 整個硬碟的表示方法 |
/dev/hda /dev/hdb /dev/hdc …… |
/dev/sda /dev/sdb /dev/sdc …… |
| 硬碟分區的表示方法 |
/dev/hda1, /dev/hda2… /dev/hdb1, /dev/hdb2… /dev/hdc1, /dev/hdc2… |
/dev/sda1, /dev/sda2… /dev/sdb1, /dev/sdb2… /dev/sdc1, /dev/sdc2… |
舊版本的Linux 核心中,所有IDE 相關的驅動代碼,不僅過於複雜,而且問題多多。於是,Linux 核心的開發人員們從Kernel 2.6.19 開始,提供了基於libata 的PATA 驅動程式,使得IDE 裝置可以像SCSI 裝置那樣使用。
所以,我們現在所使用的Ubuntu 中,無論你使用的是IDE 硬碟還是SATA 硬碟,你看到的裝置都是/dev/sdx而不是/dev/hdx 。從此,/dev/hdx 不複存在。
需要注意的是,在Linux 中,硬碟分區還有另外一種表示方法,這種方法是在grub 中使用的 。grub 起源於Grand Unified Bootloader ,是一個通用的電腦引導器,支援多種作業系統的多重開機 。在grub 中,不管是什麼介面的存放裝置,統統用hdx 來表示,其中x 是數字,從0 開始。比如,第1 塊硬碟的第1 個分區,表示為(hd0,0) 。 Linux 分區指南
使用任何Linux 系統,都要有至少兩個分區:一個是根分區,用“/ ”表示;另一個是swap (交換)分區。所以,最簡單的分區方法就是:先建立swap 分區,剩下的所有空間分配給根分區“/ ”。
swap 分區的尺寸,最小應該和記憶體一樣大,最大一般不超過記憶體的兩倍大小 。
swap 分區就像Windows 的虛擬記憶體分頁檔pagefile.sys ,系統在需要時會把它當作虛擬記憶體來使用。比方說在運行大型程式時、在記憶體最佳化時,或者在系統休眠時。系統休眠時,把整個記憶體的資料寫入swap 分區,這就是為什麼你的swap 分區的大小至少應該和記憶體一樣大的原因。
此外,最好把/boot 也單獨建立在一個分區上 。因為這個目錄下的檔案比較重要,萬一分區損壞,系統可能無法啟動。如果單獨建立為一個分區,其它分區損壞就不會影響它,從而提高了系統的穩定性。一般情況下,/boot 分區不需要太大,128MB 就足夠了。
至於其它分區,就要看你的實際需求了。
比方說,如果你的伺服器會有很多使用者登入上來放檔案,那麼/home 最好單獨分區 ,並給予足夠大的空間。
再比方說,如果你的伺服器是要放資料庫的,這個資料庫可能會變得很大,那麼/var 最好單獨分區 ,並給予足夠大的空間。因為資料庫預設是放在/var 下面的 。
Web 伺服器也是一樣,因為Web 頁面預設是放在/var 下面的 。所以,如果你認為會有人上傳大量的檔案,那麼最好也要把/var 單獨分區,並給予足夠大的空間。
提示 :作為伺服器,Hiweed 還建議把/tmp 單獨作為一個分區 。因為大部分應用程式都會向這個目錄寫入臨時檔案,雖然每次Ubuntu 重新啟動時這個目錄會被清空,但是沒有人會動不動重新啟動伺服器。 Linux 分區案例
Hiweed 在幫朋友的公司做系統架構時,在公司內部做了一台程式開發伺服器,在機房裡還有Web 伺服器和資料庫伺服器。
程式開發伺服器是給所以公司開發人員用的,他們要在“家目錄”中儲存大量的檔案。平時,他們的工作站在啟動時,是會自動將程式開發伺服器上自己的“家目錄”掛載到本地的。所以,這台伺服器的/home 是用得最多的,而且需要比較大的空間。
此外,由於是程式開發伺服器,我們還需要一個做版本管理的原始碼倉庫,這個倉庫是放在/var 下面的。雖然原始碼的檔案尺寸不會特別大,不需要特別大的空間,但是這些代碼非常重要,所以我們也要像保護/boot 那樣保護它們。
所以,對於這台程式開發伺服器,我們的資料分割配置(伺服器硬碟共有80 GB[10 GB] ,記憶體為1 GB[512 MB] ),請見表2.4 。
表2.4 程式開發伺服器資料分割配置
| 檔案系統 |
掛 載 點 |
大 小 |
分區格式 |
| /dev/sda1(主) |
/boot |
254 MB[254] |
ext2 |
| /dev/sda2(主) |
/ |
10 GB[2] |
ext4 |
| /dev/sda5 |
( 無) |
2 GB[768] |
swap |
| /dev/sda6 |
/var |
20.3 GB[2] |
ext4 |
| /dev/sda7 |
/home |
46.8 GB[4.3] |
ext4 |
| /dev/sda8 |
/tmp |
2 GB[768] |
ext4 |
以上資料分割配置只是一個參考,實際資料分割配置應該根據自己的實際情況而定。
我們的資料分割配置(2T)
| 檔案系統 |
掛載點 |
大小 |
分區格式 |
| sda2 |
/ |
500G |
ext4 |
| sda3 |
/boot |
2G |
ext4 |
| sda4 |
/home |
1.2T |
ext4 |
| sda5 |
|
20G |
swap |
| sda6 |
/tmp |
50G |
ext4 |
| sda7 |
/var |
200G |
ext4 |
/etc/fstab 介紹
Linux 系統中的所有靜態檔案系統,全部描述在/etc/fstab 這個檔案中。fstab 是File System Table 的簡寫,也就是“檔案系統表”。系統啟動時,正是通過fstab 中的資訊掛載各個分區的。fstab 的檔案系統條目有6 個欄位,格式如表2.5 所示。
表2.5 fstab 格式
| 設 備 |
掛載點 |
格 式 |
掛載選項 |
是否備份 |
檢查順序 |
| /dev/sdb2 |
/home |
Ext4 |
Defaults |
0 |
2 |
下面我們來介紹一下每個欄位的含義,如表2.6 所示。
表2.6 fstab 各欄位含義
| 字 段 |
描 述 |
| 裝置 |
存放裝置( 分區) 的名字或者UUID |
| 掛載點 |
要掛載到的目的檔案夾名稱。掛載後,從該檔案夾即可訪問裝置 |
| 格式 |
檔案系統的格式,如:ext4 |
| . 掛載選項 |
掛載的選項。和mount 命令的選項相同,詳情可參考man mount |
| 是否備份 |
啟用/ 禁用dump 備份 |