首頁 >運維 >linux運維 >linux的mount是什麼意思

linux的mount是什麼意思

青灯夜游
青灯夜游原創
2022-04-12 17:50:349100瀏覽

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

linux的mount是什麼意思

本教學操作環境: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是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn