在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;
選項 | 功能 |
---|---|
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是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!