linux的mount是什麼意思

2022-04-12 19:00:59

在linux中,mount的意思為「掛載」,用於將裝置檔案系統和linux檔案系統,通過指定目錄進行關聯;語法有「mount [-t 系統型別] [-L 卷標名] [-o 特殊選項] [-n] 裝置檔名 掛載點」、「mount -a」等。

本教學操作環境:linux5.9.8系統、Dell G3電腦。

Linux 系統中「一切皆檔案」,所有檔案都放置在以根目錄為樹根的樹形目錄結構中。在 Linux 看來,任何硬體裝置也都是檔案,它們各有自己的一套檔案系統(檔案目錄結構)。

因此產生的問題是,當在 Linux 系統中使用這些硬體裝置時,只有將Linux本身的檔案目錄與硬體裝置的檔案目錄合二為一,硬體裝置才能為我們所用。合二為一的過程稱為「掛載」。

掛載,指的就是將裝置檔案中的頂級目錄連線到 Linux 根目錄下的某一目錄(最好是空目錄),存取此目錄就等同於存取裝置檔案。

掛載指的是將硬體裝置的檔案系統和 Linux 系統中的檔案系統,通過指定目錄(作為掛載點)進行關聯。而要將檔案系統掛載到 Linux 系統上,就需要使用 mount 掛載命令。

mount 命令的常用格式有以下幾種:

mount [-l]

單純使用 mount 命令,會顯示出系統中已掛載的裝置資訊,使用 -l 選項,會額外顯示出卷標名稱(讀者可自行執行,檢視輸出結果);

mount -a

-a 選項的含義是自動檢查 /etc/fstab 檔案中有無疏漏被掛載的裝置檔案,如果有,則進行自動掛載操作。這裡簡單介紹一下 /etc/fstab 檔案,此檔案是自動掛載檔案,系統開機時會主動讀取 /etc/fstab 這個檔案中的內容,根據該檔案的設定,系統會自動掛載指定裝置。有關自動掛載(修改此檔案)的具體介紹,會在後續文章中講解。

mount [-t 系統型別] [-L 卷標名] [-o 特殊選項] [-n] 裝置檔名 掛載點

各選項的含義分別是:

  • -t 系統型別:指定欲掛載的檔案系統型別。Linux 常見的支援型別有 EXT2、EXT3、EXT4、iso9660(光碟格式)、vfat、reiserfs 等。如果不指定具體型別,掛載時 Linux 會自動檢測。

  • -L 卷標名:除了使用裝置檔名(例如 /dev/hdc6)之外,還可以利用檔案系統的卷標名稱進行掛載。

  • -n:在預設情況下,系統會將實際掛載的情況實時寫入 /etc/mtab 檔案中,但在某些場景下(例如單人維護模式),為了避免出現問題,會刻意不寫入,此時就需要使用這個選項;

  • -o 特殊選項:可以指定掛載的額外選項,比如讀寫許可權、同步/非同步等,如果不指定,則使用預設值(defaults)。具體的特殊選項參見表 1;

表 1 mount 命令選項及功能
選項功能
rw/ro是否對掛載的檔案系統擁有讀寫許可權,rw 為預設值,表示擁有讀寫許可權;ro 表示唯讀許可權。
async/sync此檔案系統是否使用同步寫入(sync)或非同步(async)的記憶體機制,預設為非同步 async。
dev/nodev是否允許從該檔案系統的 block 檔案中提取資料,為了保證資料安裝,預設是 nodev。
auto/noauto是否允許此檔案系統被以 mount -a 的方式進行自動掛載,預設是 auto。
suid/nosuid設定檔案系統是否擁有 SetUID 和 SetGID 許可權,預設是擁有。
exec/noexec設定在檔案系統中是否允許執行可執行檔案,預設是允許。
user/nouser設定此檔案系統是否允許讓普通使用者使用 mount 執行實現掛載,預設是不允許(nouser),僅有 root 可以。
defaults定義預設值,相當於 rw、suid、dev、exec、auto、nouser、async 這 7 個選項。
remount重新掛載已掛載的檔案系統,一般用於指定修改特殊許可權。

【例 1】

[root@localhost ~]# mount
#檢視系統中已經掛載的檔案系統,注意有虛擬檔案系統
/dev/sda3 on / type ext4 (rw)  <--含義是,將 /dev/sda3 分割區掛載到了 / 目錄上,檔案系統是 ext4,具有讀寫許可權
proc on /proc type proc (rw)
sysfe on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw, gid=5, mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fe/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfe/rpc_pipefs type rpc_pipefs (rw)

【例 2】

修改特殊許可權。通過例 1 我們檢視到,/boot 分割區已經被掛載了,而且採用的是 defaults 選項。這裡我們重新掛載分割區,並採用 noexec 許可權禁止執行檔案執行,看看會出現什麼情況(注意不要用 / 分割區做實驗,否則系統命令也就不能執行了。

[root@localhost ~]# mount -o remount noexec /boot
#重新掛載 /boot 分割區,並使用 noexec 許可權
[root@localhost sh]# cd /boot
#寫一個 shell 指令碼,看是否會執行
[root@localhost boot]#vi hello.sh
#!/bin/bash
echo "hello!!"
[root@localhost boot]# chmod 755 hello.sh
[root@localhost boot]# ./hello.sh
-bash:./hello.sh:許可權不夠
#雖然賦予了hello.sh執行許可權,但是仍然無法執行
[root@localhost boot]# mount -o remount exec /boot
#記得改回來,否則會影響系統啟動

對於特殊選項的修改,除非特殊場景下需要,否則不建議大家隨意修改,非常容易造成系統出現問題,而且還找不到問題的根源。

【例 3】掛載分割區。

[root@localhost ~]# mkdir /mnt/disk1
#建立掛載點目錄
[root@localhost ~]# mount /dev/sdb1 /mnt/disk1
#掛載分割區

/dev/sdb1 分割區還沒有被劃分。我們在這裡只看看掛載分割區的方式,非常簡單,甚至不需要使用 "-ext4" 命令指定檔案系統,因為系統可以自動檢測。

可能會想,為什麼使用 Linux 系統的硬碟分割區這麼麻煩,而不能像 Windows 系統那樣,硬碟安裝上就可以使用?

其實,硬碟分割區(裝置)掛載和解除安裝(使用 umount 命令)的概念源自 UNIX,UNIX 系統一般是作為伺服器使用的,系統安全非常重要,特別是在網路上,最簡單有效的方法就是「不使用的硬碟分割區(裝置)不掛載」,因為沒有掛載的硬碟分割區是無法存取的,這樣系統也就更安全了。

另外,這樣也可以減少掛載的硬碟分割區數量,相應地,也就可以減少系統維護檔案的規模,當然也就減少了系統的開銷,即提高了系統的效率。

相關推薦:《Linux視訊教學

以上就是linux的mount是什麼意思的詳細內容,更多請關注TW511.COM其它相關文章!