1. 程式人生 > >mount --linux掛載命令詳解

mount --linux掛載命令詳解

watermark etc 開機 內容 負責 fastab 就會 允許 mark

在linux操作系統中,mount命令是用於加載文件系統到指定的加載點。此命令最常用於掛載cdrom,使我們可以訪問cdrom中的數據,當你將光盤插入cdrom中時,Linux並不會自動掛載,必須使用Linux mount命令來手動完成掛載。在這裏需要註意的是,掛載點必須是一個已經存在的目錄,這個目錄可以不為空,但掛載後這個目錄下以前的內容將不可用,只有在umount卸載以後才會恢復正常,而且只有目錄才能被掛載,文件不可以被掛載,而如果掛載在非空目錄下可能會導致系統異常,所以建議掛載在空目錄下。對於經常使用的設備可寫入文件/etc/fastab,以使系統在每次開機時自動加載。mount加載設備的信息記錄再/etc/mtab文件中,可使用umount命令卸載清除記錄。

###用法: mount+掛載源 +掛載點 umount+掛載源 /掛載點

技術分享圖片

技術分享圖片

技術分享圖片

---------------------------------------------------------------------------------------

###參數:

-r 只讀

-w 讀寫 默認

-F:這個命令通常和 -a 一起使用,它會為每一個 mount 的動作產生一個行程負責執行。在系統需要掛上大量 NFS 檔案系統時可以加快掛上的動作。

-f:通常用在除錯的用途。它會使 mount 並不執行實際掛上的動作,而是模擬整個掛上的過程。通常會和 -v 一起使用。

-v:顯示較訊息,通常和 -f 用來除錯。

-L:將含有特定標簽的硬盤分割掛上。

-U:將檔案分割序號為 的檔案系統掛下。-L 和 -U 必須在/proc/partition 這種檔案存在時才有意義。

-t:指定檔案系統的型態,通常不必指定。mount 會自動選擇正確的型態。

-n:一般而言,mount 在掛上後會在 /etc/mtab 中寫入一筆資料。但在系統中沒有可寫入檔案系統存在的情況下可以用這個選項取消這個動作。而在這種操作下,運用mount命令跟df命令均無法查看掛載信息,但可以用proc/mounts查看,註意在linux操作系統中直接輸入mount命令,可以查詢已掛載的信息。

-a:將 /etc/fstab 中定義的所有檔案系統掛上,此操作可實現開機自動掛載的要求。而當寫入/etc/fstab文件後,掛載操作也可以只指定掛載源或掛載點,示例說明


(1)我們先把“/dev/sdb /app/testdisk ext4 defaults 0 0”掛載信息寫入“/etc/fstab”文件中,並查看系統掛載信息,可以看到/dev/sdb並未完成掛載。

技術分享圖片

技術分享圖片

(2)然後我們重啟系統,並再次查詢掛在信息,這次我們就可以看到/dev/sdb已被掛載。

技術分享圖片

(3)我們現在返回到第二步之前,我們不重啟系統然後執行以下“mount -a”命令,再查詢掛載信息,你會發現“/dev/sdb”又被掛載了。

技術分享圖片

由此,我們可以得出,實際上當計算機開機的時候也就相當於執行了“mount -a”命令,它把“/etc/fstab”文件裏的所有掛載信息全都執行了一遍。而當“/etc/fstab”文件裏有掛載信息後,我們在系統裏就可以只輸入掛載源或掛載點,然後系統就會自動從“/etc/fstab”文件讀取剩余信息,並完成掛載,操作如下

技術分享圖片

或輸入

技術分享圖片

-B 目錄掛載目錄,文件掛載文件 “df”命令無法查詢但 可以用“df -a”查看。我們先創建一個新目錄“test”,之前知道在系統如果執行mount /app app/test 操作,系統就會報錯,提示“/app”不是塊設備,但我們執行“mount -B /app app/test”就可以成功掛載,示例如下

技術分享圖片

“df”命令查不到,但用“df -a”可以查看到,如圖

技術分享圖片

但我們從圖上可以看出掛載在“/app/test”上的掛載源跟“/app”的掛載源是一樣的,也就是說並不是把“/app”掛載在“app/test”上,而是把“/app”的源“/dev/sda5”掛載在“/app/test”上。

-o async:打開非同步模式,所有的檔案讀寫動作都會用非同步模式執行。-o async為默認設置

-o sync:在同步模式下執行。

-o atime、-o noatime:當 atime 打開時,系統會在每次讀取檔案時更新檔案的『上一次調用時間』。當我們使用 flash 檔案系統時可能會選項把這個選項關閉以減少寫入的次數。-o atime 為默認設置,示例說明,如下

(1)我們先在“hello”文件下寫入內容,然後在“touch hello”使它的時間戳保持一致

技術分享圖片

(2)我們看一下“hello”這個文件,就可以改變它的“atime”,也就是說只要有訪問“atime”就會更新

技術分享圖片

(3)那我們如果想要關閉“atime”訪問自動更新,就可以在掛載的時候進行“mount -o noatime”操作

技術分享圖片

技術分享圖片

這樣我們就可以發現當有訪問的時候,“atime”也一直都保持不變,這樣我們就關閉了“ayime”時間。

-o auto、-o noauto:打開/關閉自動掛上模式。-o auto 為默認設置

-o dev、-o nodev-o exec、-o noexec允許執行檔被執行。-o dev 為默認設置

-o suid、-o nosuid:表示該目錄下的suid,sgid權限生效/不生效。-o suid 為默認設置

-o user、-o nouser:使用者可以執行 mount/umount 的動作。-o nouser 為默認設置

-o remount:將一個已經掛下的檔案系統重新用不同的方式掛上。例如原先是唯讀的系統,現在用可讀寫的模式重新掛上。

-o ro:用唯讀模式掛上。

-o rw:用可讀寫模式掛上。為默認設置

-o loop=:使用 loop 模式用來將一個檔案當成硬盤分割掛上系統。

-o defaults:使用預設的選項 rw, suid, dev, exec, auto, nouser, async,即默認設置。

---------------------------------------------------------------------------------------

###findmnt

findmnt MOUNT_POINT|device 查看掛載情況,操作如下

技術分享圖片

---------------------------------------------------------------------------------------

###卸載

umount 解除掛載命令

註意,進程正在使用的設備無法被卸載。

lsof +掛載點,查看在指定掛載點上運行的程序,顯示其進程號 kill +進程號 可以結束指定進程

技術分享圖片

當你結束了進程以後就可以執行卸載命令啦

技術分享圖片

fuser+掛載點 可以查看並殺死在掛載點上執行的程序

-v 詳細查看

-m 遞歸,如不加m,只查看掛載點自身,不查看子目錄

-k 結束進程

-vmk 組合選項可以一起使用

技術分享圖片

到這裏,關於mount命令的介紹基本上就結束了,總體上來說mount命令還是相對比較容易接受和掌握的,只要記清mount命令選項,在linux裏掛載、卸載將會變得非常的容易。

mount --linux掛載命令詳解