Linux 掛載管理(mount)
標籤:mount,umount
概述
在上一章增加linux作業系統空間中已經使用過了mount命令對分割槽進行掛載,這一章詳細介紹掛載管理,該命令涉及的知識點也挺多的而且也還比較重要,是需要掌握的一個命令。
掛載分割槽
mount基本語法
mount [引數] /dev/sdb1(需要掛載的分割槽) /sdb1(掛載目錄)
引數是可選的,也可以不帶引數,引數的使用方法(-o ro,sync,atime)。
引數:
-t:指定檔案系統型別
mount -t ext4 /dev/sdb1 /sdb1
-o:指定掛載選項
ro,rw:只讀或者讀寫的方式掛載,預設是rw.
sync:不適用快取,所有操作直接讀寫磁碟。
async:適用快取,預設方式。
noatime:每次訪問檔案時不更新檔案的訪問時間。
atime:每次訪問檔案時更新檔案的訪問時間,預設方式。
user:任何使用者都可以掛載
nouser:只有超級使用者才可以掛載
auto:系統開機自動掛載
noauto:系統開機不自動掛載
remount:重新掛載檔案系統。
檢視當前已掛載的分割槽
mount
通過mount不帶引數命令可以檢視當前系統的所有掛載分割槽情況,包括分割槽的掛載點、分割槽型別、引數等。
檢視掛載分割槽下的檔案 ls /sdb1
每個掛載分割槽下面都會有一個Lost+found資料夾,該資料夾用來存放檔案的損壞資料,例如使用fsck檢查分割槽命令的錯誤資訊就寫入該資料夾(命令:fsck /dev/sdb1)。
修改分割槽只讀
mount -o remount,ro /dev/sdb1 /sdb1
把sdb1修改為只讀後,使用touch無法建立檔案。
不更新檔案訪問時間
mount -o remount,rw,noatime /dev/sdb1 /sdb1
特別是對效能要求很高的系統中,可以將檔案系統設為不更新訪問檔案的時間,比如存放資料庫檔案的分割槽,由於訪問非常頻繁,如果每次訪問都更新訪問時間對效能會造成一定的影響,這時我們可以將該分割槽設定成不更新訪問檔案的時間來提高效能。
stat命令
可以使用stat命令檢視檔案的訪問時間
stat test
這裡是因為我後面對引數做過修改,加上noatime引數後確實不會對訪問時間進行修改,大家可以試一下;
不使用快取
開啟快取的目的是為了提高讀寫的效能,即你對一個數據的讀寫先讀寫快取,因為快取的讀寫速度要遠遠高於磁碟,這樣就會提高讀寫的效能,但是帶來效能的同時也會存在丟失修改的風險,當寫入快取的時候突然斷電那麼這個時候快取的資料就有可能會丟失了,造成沒有寫入磁碟。不過現在linux檔案系統型別比如ext3,ext4預設都會記錄日誌,即分割槽中會存在128M大小的日誌空間用來記錄對磁碟的讀寫操作,這也是為了保證資料的丟失修改的一個措施。如果對資料要求很嚴格的系統可以不適用快取,但是絕大多數情況下都是適用快取,這也是linux預設的方式。
mount -o remount,rw,noatime,sync /dev/sdb1 /sdb1
解除安裝分割槽
umount語法
umount /dev/sdb1(分割槽) 或者 umount /sdb1(掛載點)
解除安裝sdb1分割槽
解除安裝失敗,這裡提示裝置繁忙
fuser命令
可以使用fuser命令檢視檔案系統佔用的程序
fuser -m /sdb1(掛載點)
或者
fuser -m /dev/sdb1(分割槽)
可以看到2821程序正在佔用。
lsof命令
檢視正在被使用的檔案,losf命令是list open file的縮寫。
lsof /sdb1(掛載點)
通過losf命令可以檢視正在被使用的檔案,可以看到是bash正在使用,因為當前我就是在sdb1資料夾下面,當前的命令視窗正在使用,切換到別的目錄下面
當切換到別的路徑下面後,再使用umount命令就可以解除安裝分割槽,使用mount檢視分割槽資訊可以看到sdb1分割槽已經被解除安裝了.
修改配置檔案
mount掛載分割槽在系統重啟之後需要重新掛載,修改/etc/fstab檔案可使掛載永久生效
vim /etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass> UUID=9905757a-a2a3-4a4a-abc7-ece61efeb531 / ext4 defaults 1 1 UUID=7981f23f-e636-474c-bf10-65adc5c56397 /boot ext4 defaults 1 2 UUID=d0000d2a-a161-4961-b843-d4ba060ad24c swap swap defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 /dev/sdb6 /sdb6 ext4 sync,noatime 0 0
file system:第一列是分割槽號
mount point:掛載點
type:檔案型別
option:-o引數,defaults: rw, suid, dev, exec, auto, nouser, and async
如果不使用default預設引數,那麼可以使用逗號分隔指定引數
ro,rw:只讀或者讀寫的方式掛載,預設是rw.
sync:不適用快取,所有操作直接讀寫磁碟。
async:適用快取,預設方式。
noatime:每次訪問檔案時不更新檔案的訪問時間。
atime:每次訪問檔案時更新檔案的訪問時間,預設方式。
user:任何使用者都可以掛載
nouser:只有超級使用者才可以掛載
auto:系統開機自動掛載
noauto:系統開機不自動掛載
dump:當其值設定為1時,將允許dump備份程式備份;設定為0時,忽略備份操作
pass:fsck磁碟檢查設定,其值是一個順序。當其值為0時,永遠不檢查;而 / 根目錄分割槽永遠都為1。其它分割槽從2開始,數字越小越先檢查,如果兩個分割槽的數字相同,則同時檢查。
通過mont和df命令檢視到的邏輯分割槽名和配置檔案中配置的邏輯分割槽名不一樣,但是二者的意思是一樣的,不要被誤解
補充
掛載ios映象檔案
mount -o loop iso映象檔案 掛載點
例:
mount -o loop CentOS-6.7-x86_64-bin-DVD1.iso /iso
使掛載立即生效
sync
總結
mount命令比較重要的知識點就是合理的使用引數,當然同樣要記住mount掛載在伺服器重新啟動後又需要重新掛載,如果想永久掛載還是需要去修改/etc/fstab檔案,因為這些引數會對我們系統的效能造成影響。一天連續寫了兩篇文章真的很累,現在已經凌晨了,洗洗睡。
備註:
本站點所有隨筆都是原創,歡迎大家轉載;但轉載時必須註明文章來源,且在文章開頭明顯處給明連結,否則保留追究責任的權利。
《歡迎交流討論》