『學了就忘』Linux基礎命令 — 37、Linux中掛載操作的相關命令


掛載就是把設備文件名和已經建立的空目錄鏈接起來的過程,就叫做掛載。

1、mount命令介紹

(1)mount命令說明

Linux系統中所有存儲設備都必須掛載才能使用,包括硬盤。

  • 命令名稱:mount
  • 命令所在路徑:/bin/mount
  • 執行權限:所有用戶

mount命令的使用示例:

# 查詢系統中已經掛我的設備,-l會顯示卷標名稱
[root@localhost ~]# mount [-l]

(2)mount命令格式

[root@localhost ~]# mount [-t 文件系統] [-L卷標名] [-o特殊選項] 設備文件名 掛載點

# 注意:在Linux系統中\ 的意思表示換行符, 代表上邊兩行是一行內容。

選項:
  -t文件系統:加入文件系統類型來指定掛載的類型,可以ext3、ext4、iso9660等文件系統。(不寫也沒事,Linux系統默認光盤U盤都能自動識別)。
  -L卷標名:掛載指定卷標的分區,而不是安裝設備文件名掛載。(現在基本上用不到了,可以不關注。)
  -o特殊選項:可以指定掛載的額外選項,比如讀寫權限、同步異步等,如果不指定則默認值生效。

舉例:

[root@localhost ~]# mount -t iso9660 /dev/sr0 /mnt/cdrom/

2、mount命令示例

直接輸入mount 命令,就是查詢系統中已經存在的掛載設備。

[root@localhost ~]# mount
/dev/sda3 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

# 其中只有
# /dev/sda3 on / type ext4 (rw)-->/dev/sda3掛載到根目錄下,文件系統是ext4,權限是讀寫。
# /dev/sda1 on /boot type ext4 (rw)  有用,其他都是干擾項.

# 還要注意,swap分區是不需要掛載點的,是給系統內核直接訪問的分區,mount命令是查看不到的。

3、mount -a命令說明

# 依據配置文件/etc/fstab的內容,自動掛載
[root@localhost ~]# mount -a

-aaauto,自動的意思。

Linux系統的硬盤是開機自動掛載的。但是光盤和U盤這類移動存儲設備,是不推薦開機自動掛載的。

如果光盤和U盤這類移動存儲設備設置了開機自動掛載,開機時一旦你忘記放光盤或者U盤,系統就會無條件的尋找這個分區,如果找不到的話,就會系統啟動錯誤。這樣的錯誤其實修復起來並不難,但是一定要在本機上進行操作。

Linux系統自動掛載就是依照/etc/fstab文件進行自動掛載的。這個文件是一個非常脆軟的文件,一旦這個文件寫錯,系統會啟動報錯。

執行查看/etc/fstab文件命令:[root@localhost ~]# vim /etc/fstab

如下圖所示:

image

mount -a命令可以看作是掃描一下/etc/fstab文件,看看里邊的內容有沒有寫錯,如果寫錯會報錯。

Red Hat 6以后的Linux系統中,/etc/fstab文件的容錯性明顯的增強了。Red Hat 5以前出現一個字母的拼寫錯誤都是不行的,Red Hat 6以后除了關鍵位置的信息不能有錯誤,其他的出現錯誤也不會報錯,所以有時候用mount -a命令掃描,不一定會出現錯誤,,所以不能盲目信任mount -a命令的結果。這個記住就好。(后邊會說如果該文件有錯誤怎么修復)

4、-o特殊選項說明

我們先查看一下前面說的/etc/fstab文件,Linux系統的自動掛載配置文件。

image

上圖中紅框內就是分區掛載的默認權限。下面詳細說明一下掛載的權限:

  • atime/noatime:更新訪問時間或不更新訪問時間。訪問分區文件時,是否更新文件的訪問時間,默認為更新。
  • async/sync:異步/同步,默認為異步。
  • auto/noauto :自動/手動,mount -a命令執行時,是否會自動安裝/etc/fstab文件內容掛載,默認為自動。
  • exec/noexec:執行或不執行,設定是否允許在文件系統中執行可執行文件,默認是exec允許。
  • rw/ro:讀寫/只讀,文件系統掛載時,是否具有讀寫權限,默認是rw
  • suid/nosuid:具有或不具有SUID權限,設定文件系統是否具有SUIDSGID的權限,默認是具有。
  • user/nouser:允許或不允許普通用戶掛載,設定文件系統是否允許普通用戶掛載,默認是不允許,只有root可以掛載分區。
  • defaults:定義默認值,相當於rwsuiddevexecautonouserasync 這七個選項。
  • remount:重新掛載已經掛載的文件系統,一般用於指定修改特殊權限。
  • usrquota:寫入代表文件系統支持用戶磁盤配額,默認不支持。
  • grpquota:寫入代表文件系統支持組磁盤配額,默認不支持。

說明:

  • defaults權限代表最上邊7種權限中,有一個是默認值。這個默認值一般不需要進行修改,默認選項就很好。
  • 比如exec/noexec選項,如果選擇noexec,那整個分區中的文件都不能執行,如果是根目錄定義成noexec,那整個系統都無法啟動,即使想修改也不行,因為mount命令都執行不了了。

5、exec/noexec選項說明

請看下面示例:

# 1、查看系統中已經掛載的文件系統,注意有虛擬文件系統
# 命令結果是代表:/dev/sda3分區掛載到/目錄,文件系統是ext4,權限是讀寫
[root@localhost] # mount
/dev/sda3 on/type ext4(rw)proc on/proc type proc(rw)
sysfs on/sys type sysfs(rw)
devpts on/dev/pts type devpts(rw,gid=5,mode=620)
tmpfs on/dev/shm type tmpfs(rw)
/dev/sdal on/boot type ext4(rw)
none on/proc/sys/fs/binfmt_misc type binfmt_misc(rw)
sunrpe on/var/lib/nfs/rpe_pipefs type rpc_pipefs(rw)


# 2、修改特殊權限
# 我們查看到/boot分區已經被掛載,而且采用的defaults 選項,那么我們重新掛載分區,並采用 noexec
[root@localhost ~]# mount -o remount,noexec /boot(臨時生效)

# 然后用mount命令查詢一下分區,boot分區多了noexec權限
# /dev/sdal on /boot type ext4 (rw,noexec)

# 權限禁止執行文件執行,看看會出現什么情況(注意不要用根分區做試驗,#不然系統命令也不能執行了)。
# 執行一個shell腳本
[root@localhost boot]# ./hello.sh
-bash:./hello.sh:權限不夠

# 再修改回來權限,就可以執行了。
[root@localhost ~]# mount -o remount,exec /boot

這個練習也要記住remount的作用和使用方法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM