簡單地講解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 ### 卸載所有已掛載的文件系統