掛載就是把裝置檔名和已經建立的空目錄連結起來的過程,就叫做掛載。
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
-a
的a
是auto
,自動的意思。
Linux系統的硬碟是開機自動掛載的。但是光碟和U盤這類移動儲存裝置,是不推薦開機自動掛載的。
如果光碟和U盤這類移動儲存裝置設定了開機自動掛載,開機時一旦你忘記放光碟或者U盤,系統就會無條件的尋找這個分割槽,如果找不到的話,就會系統啟動錯誤。這樣的錯誤其實修復起來並不難,但是一定要在本機上進行操作。
Linux系統自動掛載就是依照/etc/fstab
檔案進行自動掛載的。這個檔案是一個非常脆軟的檔案,一旦這個檔案寫錯,系統會啟動報錯。
執行檢視/etc/fstab
檔案命令:[root@localhost ~]# vim /etc/fstab
如下圖所示:
而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系統的自動掛載配置檔案。
上圖中紅框內就是分割槽掛載的預設許可權。下面詳細說明一下掛載的許可權:
atime/noatime
:更新訪問時間或不更新訪問時間。訪問分割槽檔案時,是否更新檔案的訪問時間,預設為更新。async/sync
:非同步/同步,預設為非同步。auto/noauto
:自動/手動,mount -a
命令執行時,是否會自動安裝/etc/fstab
檔案內容掛載,預設為自動。exec/noexec
:執行或不執行,設定是否允許在檔案系統中執行可執行檔案,預設是exec
允許。rw/ro
:讀寫/只讀,檔案系統掛載時,是否具有讀寫許可權,預設是rw
。suid/nosuid
:具有或不具有SUID
許可權,設定檔案系統是否具有SUID
和SGID
的許可權,預設是具有。user/nouser
:允許或不允許普通使用者掛載,設定檔案系統是否允許普通使用者掛載,預設是不允許,只有root
可以掛載分割槽。defaults
:定義預設值,相當於rw
,suid
,dev
,exec
,auto
,nouser
,async
這七個選項。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
的作用和使用方法。