簡單地講解Linux的檔案系統及相關的掛載命令

Linux檔案系統

簡單地講解Linux的檔案系統及相關的掛載命令

和windows的C盤D盤E盤的概念一樣,這個“檔案系統”或者叫“組織體系”是軟體級別的,是linux系統“內在”的體系,就像你腦子裡的一個“想法”,並無需依賴於任何的實際一樣。

:idea: linux的系統組織方式是——整個系統從根開始,按樹形目錄依次向下逐漸擴大,分類存放不同用途的檔案,/讀作“斜線”,英文slash;當其寫作一個路徑時,第一個/表示根,即root,其他的/表示路徑分割符,但都讀作“斜線”或“slash”。

OK,現在讓我們把“理想”變成“現實”吧!

:idea: 系統啟動時,首先有一個分割槽被掛載到了/,可以理解為該分割槽被分配了/這個奇怪“碟符”(注意,在windows裡,這個符號被用做命令引數引導符號,而反斜線,英文backslash作為路徑分割符,習慣不同而已,就像英國行車靠左一樣,沒啥可奇怪的)。

這個被掛載為/的分割槽,就叫做根分割槽(不管它是主分割槽還是邏輯分割槽),它從此開始在整兒linux系統裡具有了特殊的`地位,因為整兒電腦裡的所有硬碟,包括其上的所有其他分割槽,不管是主分割槽、邏輯分割槽,都將以這個“根分割槽”為主幹,開始構造linux大樹,並最終成為這顆樹上的一個分支或樹葉。整個linux的系統結構裡,有且只有一個root(根分割槽),不可能有第二個(其實,任何一個分割槽,都可以掛載為/,windows分割槽也可以。只不過掛載根分割槽的目的是啟動系統,如果/下面沒有linux核心及其所需的系統檔案的話,將無法引導系統而已。所以這個根分割槽並不神祕)。

:idea: 你的其他分割槽只能被繼續掛載到/(根分割槽)下的某個目錄裡,比如“/mnt”或者“/media”或者“/什麼什麼”目錄,看你喜歡嘍。掛載好之後,當你向這個目錄讀寫資料的時候,其實是在向被掛載到該目錄的另一個分割槽讀寫資料。多個分割槽在同一個時候只能被掛載到多個不同的目錄,比如“/mnt/a”、“/media/123”或者“/home/anywhere”,任何一個處於/之下的目錄,都可以用來作為掛載其他分割槽的“平臺”,當然系統需要的目錄可不要用哈,你自己新建你自己的用吧。

掛載好之後,你硬盤裡的資料,就可以通過類似/path/to/anywhere這樣的方式找到;如果沒有掛載就找不到嘍。

用一個庸俗的比喻來說,“/”相當於c:,而“/etc、/bin、/sbin、/lib”這些目錄大概相當於c:windows和c:program files,“/home”相當於c:Documents and Settings,而當你把第二分割槽掛載到“/mnt/partition2”的時候,這個目錄就相當於d:了

mount

mount 用於掛載一個檔案系統,需要 root 使用者執行。一個磁碟可分為若干個分割槽,在分割槽上面可以建立檔案系統,而掛載點則是提供一個訪問的入口,將一個分割槽的檔案系統掛載到某個目錄中,稱這個目錄為掛載點,並且可以通過這個掛載點訪問該檔案系統中的內容。

例如一塊硬碟在 Linux 中表示為 /dev/sda 那麼它上面的分割槽應該表示為 /dev/sda1 、/dev/sda2 。

# mount ### 輸出系統目前的掛載資訊

# mount /dev/sda1 /mnt ### 將 sda1 掛載到 /mnt 中

# cd /mnt ### 直接通過 /mnt 訪問內容

# mount -o remount,rw /mnt ### 重新掛載 sda1 到 /mnt 並設定為 可讀寫

# mount -a ### 掛載 fstab 檔案配置好的檔案系統

umount

umount 與 mount 相反,是解除安裝一個掛載點,即取消該入口。

# umount /mnt ### 解除安裝 /mnt 這個掛載點的檔案系統

# umount -a ### 解除安裝所有已掛載的檔案系統