你們好,我是高勝寒,本文是Linux運維-按部就班學運維-基礎篇的第48篇原創文章。node
今天咱們來聊聊mount的使用vim
mountcentos
掛載選項 -t 文件系統類型 -o 選項1,選項2…
示例:
mount -t ext4 -o acl /dev/sdb1 /mnt/
例句暫時看不懂也不要緊,一會咱們細細道來.運維
目前centos7的系統爲XFS異步
關於上文的 -t參數,咱們不少時候是不寫的,可是-t參數指定文件系統類型這件事卻很重要。咱們能夠經過查看filesystems配置文件,來查看當前系統都支持哪些文件系統async
上述示例裏第二個參數 -oide
-o後面指定的是掛載選項,掛載選項有不少測試
選項 | 含義 |
---|---|
rw | 讀寫 |
ro | 只讀 |
suid | 支持suid |
dev | 支持設備文件 |
nodev | 不支持設備文件 |
noexec | 不容許執行二進制文件 |
exec | 容許執行二進制文件 |
auto | mount -a 開機自動掛載 |
noauto | mount -a 開機不自動掛載 |
async | 異步寫入 |
sync | 同步同入 |
noatime | 不更新訪問時間atime |
usrquota | 支持用戶級磁盤配額功能 |
grpquota | 支持組級磁盤配額功能 |
acl | 支持acl功能 (訪問控制列表) |
remount | 在線從新掛載 |
因此在這個示例中mount -t ext4 -o acl /dev/sdb1 /mnt/, -o後面的acl表示的就是支持訪問控制列表。ui
到這裏,相信這條示例命令你也看懂了,但看懂了只是開始,接下來,咱們詳細聊下關於mount的前世此生。centos7
參數 | 含義 |
---|---|
-r | 只讀 |
-w | 讀寫 默認 |
-F | 這個命令一般和 -a 一塊兒使用,它會爲每個 mount 的動做產生一個行程負責執行 |
-v | 顯示較訊息,一般和 -f 用來除錯。 |
-L | 將含有特定標籤的硬盤分割掛上。 |
-U | 將檔案分割序號爲 的檔案系統掛下。-L 和 -U 必須在/proc/partition 這種檔案存在時纔有意義。 |
-t | 指定檔案系統的型態,一般沒必要指定。mount 會自動選擇正確的型態。 |
-a | 將 /etc/fstab 中定義的全部檔案系統掛上,此操做可實現開機自動掛載的要求。而當寫入/etc/fstab文件後,掛載操做也能夠只指定掛載源或掛載點 |
exec/noexec
[root@gaosh-1 ~]# ll /dev/sdb* 目前有一塊sdb1的盤brw-rw----. 1 root disk 8, 16 6月 25 17:01 /dev/sdb brw-rw----. 1 root disk 8, 17 6月 25 17:31 /dev/sdb1[root@gaosh-1 ~]#
建立兩個目錄,一個用於掛載可執行權限目錄,一個用於掛載不可執行權限目錄
掛載並測試:
[root@gaosh-1 ~]# mount /dev/sdb1 /mnt/gexec 掛載到可執行二進制目錄gexec[root@gaosh-1 ~]# cp -rf /bin/date /mnt/gexec #拷貝一個二進制文件過來測試[root@gaosh-1 ~]# /mnt/gexec/date #執行命令發現能夠執行成功2020年 06月 25日 星期四 21:13:51 CST[root@gaosh-1 ~]#
上述的例子證實了,掛載後能夠執行二進制目錄,可是沒有證實若是加了參數noexec,就不能執行二進制, 咱們來試試
[root@gaosh-1 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 20G 3.8G 15G 21% / tmpfs 1.8G 228K 1.8G 1% /dev/shm /dev/sda1 190M 40M 141M 22% /boot /dev/sdb1 4.9G 11M 4.6G 1% /mnt/gexec[root@gaosh-1 ~]# umount /mnt/gexec/ 先卸載掉從新掛載到另一個目錄 nexec[root@gaosh-1 ~]#
接下來咱們使用不支持可執行權限的掛載方法,noexec,並測試
[root@gaosh-1 ~]# mount -o noexec /dev/sdb1 /mnt/nexec/ #此處使用-o noexec參數
測試:
能夠看到,一樣是拷貝過去二進制文件,可是執行的時候卻提示權限不夠。
[root@gaosh-1 ~]# mkdir /mnt/test1[root@gaosh-1 ~]# mount /dev/sdb1 /mnt/test1/[root@gaosh-1 ~]# mount/dev/sdb1 on /mnt/test1 type ext4 (rw)
不加參數,默認是異步寫入,能夠看到,rw權限
[root@gaosh-1 test1]# time cp -rf /etc/ /mnt/test1 #查看寫入時間real 0m0.112s user 0m0.000s sys 0m0.111s
若是加了 -o sync參數咱們來看一下:
[root@gaosh-1 ~]# umount /mnt/test1/ #卸載掉test1[root@gaosh-1 ~]# mkdir /mnt/test2 # 建立test2目錄[root@gaosh-1 ~]# mount -o sync /dev/sdb1 /mnt/test2 使用sync同步寫入掛載/dev/sdb1 on /mnt/test2 type ext4 (rw,sync) #能夠看到rw,後面多了個同步寫入
[root@gaosh-1 ~]# time cp -rf /etc/ /mnt/test2 查看寫入時間real 0m5.267s user 0m0.004s sys 0m1.322s
能夠明顯看到同步時間較長一些:由於同步的時候client獲取響應須要等待刷盤時間。但並非全部狀況下異步都比同步快。
因此這裏勝寒表示: 時間快慢僅在此實驗有效。
設置自動掛載
vim /etc/fstab
查看一下,目前沒有掛載:
執行mount -a自動掛載
[root@gaosh-1 ~]# mount/dev/sdb1 on /mnt/test1 type ext4 (rw,acl)
查看uuid
[root@gaosh-1 ~]# blkid /dev/sdb1/dev/sdb1: UUID="37c948a1-d0b9-49ff-923c-f3eac30eb0f3" TYPE="ext4"
vim /etc/fstab
保存退出:而後使用 mount -a
雖然mount的參數比較多,但不是每一個參數都須要掌握,學會使用 /etc/fstab, 設置自動掛載。
我是高勝寒,一個在教培行業不忘初心的人,歡迎點贊收藏,咱們下篇文章再見!