前面講過,Linux 系統中“一切皆文件”,所有文件都放置在以根目錄為樹根的樹形目錄結構中。在 Linux 看來,任何硬體設備也都是文件,它們各有自己的一套文件系統(文件目錄結構)。 因此產生的問題是,當在 Linux 系統中使用這些硬體設備時,只有將Linux本身的文件目錄與硬體設備的文件目錄合二 ...
前面講過,Linux 系統中“一切皆文件”,所有文件都放置在以根目錄為樹根的樹形目錄結構中。在 Linux 看來,任何硬體設備也都是文件,它們各有自己的一套文件系統(文件目錄結構)。
因此產生的問題是,當在 Linux 系統中使用這些硬體設備時,只有將Linux本身的文件目錄與硬體設備的文件目錄合二為一,硬體設備才能為我們所用。合二為一的過程稱為“掛載”。
如果不掛載,通過Linux系統中的圖形界面系統可以查看找到硬體設備,但命令行方式無法找到。
掛載,指的就是將設備文件中的頂級目錄連接到 Linux 根目錄下的某一目錄(最好是空目錄),訪問此目錄就等同於訪問設備文件。
糾正一個誤區,並不是根目錄下任何一個目錄都可以作為掛載點,由於掛載操作會使得原有目錄中文件被隱藏,因此根目錄以及系統原有目錄都不要作為掛載點,會造成系統異常甚至崩潰,掛載點最好是新建的空目錄。
舉個例子,我們想通過命令行訪問某個 U 盤中的數據,圖 1 所示為 U 盤文件目錄結構和 Linux 系統中的文件目錄結構。
圖 1 U 盤和 Linux 系統文件目錄結構
圖 1 中可以看到,目前 U 盤和 Linux 系統文件分屬兩個文件系統,還無法使用命令行找到 U 盤文件,需要將兩個文件系統進行掛載。
接下來,我們在根目錄下新建一個目錄 /sdb-u,通過掛載命令將 U 盤文件系統掛載到此目錄,掛載效果如圖 2 所示。
圖 2 文件系統掛載
可以看到,U 盤文件系統已經成為 Linux 文件系統目錄的一部分,此時訪問 /sdb-u/ 就等同於訪問 U 盤。
前面講過,根目錄下的 /dev/ 目錄文件負責所有的硬體設備文件,事實上,當 U 盤插入 Linux 後,系統也確實會給 U 盤分配一個目錄文件(比如 sdb1),就位於 /dev/ 目錄下(/dev/sdb1),但無法通過 /dev/sdb1/ 直接訪問 U 盤數據,訪問此目錄只會提供給你此設備的一些基本信息(比如容量)。
總之,Linux 系統使用任何硬體設備,都必須將設備文件與已有目錄文件進行掛載。
具體的掛載以及卸載指令後續章節會詳細介紹。
十年磨一劍