mount 命令用來掛載文件系統(tǒng)。其基本命令格式為:
mount -t type [-o options] device dir
device:指定要掛載的設(shè)備,比如磁盤、光驅(qū)等。
dir:指定把文件系統(tǒng)掛載到哪個目錄。
type:指定掛載的文件系統(tǒng)類型,一般不用指定,mount 命令能夠自行判斷。
options:指定掛載參數(shù),比如 ro 表示以只讀方式掛載文件系統(tǒng)。
可以通過 man page 和 -h 選項來獲得最直接的幫助文檔:
$ man mount $ mount -h
雖然多數(shù)情況下我們不用指定 -t 參數(shù)顯式地說明文件系統(tǒng)的類型,但文件系統(tǒng)的類型對 mount 命令來說確實是非常重要的。原因是假如你要掛載一個當前系統(tǒng)不支持的文件系統(tǒng),它是沒辦法工作的。當前系統(tǒng)支持的文件系統(tǒng)類型是由內(nèi)核來決定的,比如 ext2、ext3、ext4、sysfs 和 proc 等常見的文件系統(tǒng)默認都是被支持的。我們可以通過查看 /proc/filesystems 文件來觀察當前系統(tǒng)具體都支持哪些文件系統(tǒng):
$ cat /proc/filesystems
第一列說明文件系統(tǒng)是否需要掛載在一個塊設(shè)備上, nodev 表明后面的文件系統(tǒng)不需要掛接在塊設(shè)備上。 第二列是內(nèi)核支持的文件系統(tǒng)。
通過 mount 命令查看已掛載的文件系統(tǒng),會輸出豐富的信息,如下圖所示:
讓我們先來解釋一下輸出信息的格式和含義。輸出中的每行代表掛載的一個文件系統(tǒng),其格式為:
fs_spec on fs_file type fs_vfstype (fs_mntopts)
fs_spec:掛載的塊設(shè)備或遠程文件系統(tǒng)
fs_file:文件系統(tǒng)的掛載點
fs_vfstype:文件系統(tǒng)的類型
fs_mntopts:與文件系統(tǒng)相關(guān)的更多選項,不同的文件系統(tǒng)其選項也不太一樣
比如上圖中的第一行含義為:掛載的設(shè)備為%20sysfs,掛載點為%20/sys,文件系統(tǒng)的類型為%20sysfs。括號中的%20rw%20表示以可讀寫的方式掛載文件系統(tǒng),noexec%20表示不能在該文件系統(tǒng)上直接運行程序。
/etc/fstab
/etc/mtab
/proc/mounts
mount%20-a%20會將%20/etc/fstab%20中定義的所有掛載點都掛上(一般是在系統(tǒng)啟動時的腳本中調(diào)用,自己最好別用!)。
mount%20和%20umount%20命令會在%20/etc/mtab%20文件中維護當前掛載的文件系統(tǒng)的列表,這個文件在目前的系統(tǒng)中還是被支持的。但是更好的方式是用鏈接文件%20/proc/mounts%20代替%20/etc/mtab%20文件。這是因為在用戶空間中維護的普通文件%20/etc/mtab%20很難穩(wěn)定可靠的與%20namespaces、containers%20等%20Linux%20的高級功能協(xié)作。在%20ubuntu%2016.04%20上,%20/etc/mtab%20和%20/proc/mounts%20一樣,都是指向%20/proc/self/mounts%20的鏈接文件。
下面我們介紹一些%20mount%20命令的常見用例。
輸出系統(tǒng)掛載的所有文件系統(tǒng)
如果執(zhí)行%20mount%20命令時不加任何參數(shù),就會輸出系統(tǒng)掛載的所有文件系統(tǒng):
$%20mount
輸出指定類型的文件系統(tǒng)
通過%20-t%20參數(shù)可以只輸出指定類型的文件系統(tǒng),比如下面的命令只會輸出%20tmpfs%20類型的文件系統(tǒng):
$%20mount%20-t%20tmpfs
對于一個磁盤分區(qū),我們可以使用%20mkfs%20命令把磁盤分區(qū)格式化為指定的文件系統(tǒng),比如%20ext4:
$ sudo mkfs -t ext4 /dev/sdb1
然后把該分區(qū)掛載到 /mnt 目錄:
$ sudo mount /dev/sdb1 /mnt