[转载]Linux基础知识之挂载详解(mount,umount及开机自动挂载)
?
掛載概念簡(jiǎn)述:
根文件系統(tǒng)之外的其他文件要想能夠被訪問,都必須通過“關(guān)聯(lián)”至根文件系統(tǒng)上的某個(gè)目錄來實(shí)現(xiàn),此關(guān)聯(lián)操作即為“掛載”,此目錄即為“掛載點(diǎn)”,解除此關(guān)聯(lián)關(guān)系的過程稱之為“卸載”
1.掛載:根文件系統(tǒng)外通過關(guān)聯(lián)至根文件系統(tǒng)上的某個(gè)目錄來實(shí)現(xiàn)訪問
2.掛載點(diǎn):mount_point,用于作為另一個(gè)文件系統(tǒng)的訪問入口;
(1) 事先存在;
(2) 應(yīng)該使用未被或不會(huì)被其它進(jìn)程使用到的目錄;
(3) 掛載點(diǎn)下原有的文件將會(huì)被隱藏;
?
掛載與卸載
掛載方法:mount DECE MOUNT_POINT
? ? mount:通過查看/etc/mtab(文章最后會(huì)對(duì)/etc/mtab有個(gè)解釋)文件顯示當(dāng)前系統(tǒng)已掛載的所有設(shè)備
命令使用格式:mount [-fnrsvw] [-t vfstype] [-o options] device dir
device:指明要掛載的設(shè)備;
(1)?設(shè)備文件:例如/dev/sda5
(2)?卷標(biāo):-L 'LABEL', 例如 -L 'MYDATA'
(3)?UUID, -U 'UUID':例如 -U '0c50523c-43f1-45e7-85c0-a126711d406e'
(4)?偽文件系統(tǒng)名稱:proc, sysfs, devtmpfs, configfs
dir:掛載點(diǎn)
? ? 事先存在;建議使用空目錄;
? ? 進(jìn)程正在使用中的設(shè)備無法被卸載;
常用命令選項(xiàng):
? ? -t vsftype:指定要掛載的設(shè)備上的文件系統(tǒng)類型;
? ? -r: readonly,只讀掛載;
? ? -w: read and write, 讀寫掛載;
? ? -n: 不更新/etc/mtab;?
? ? -a:自動(dòng)掛載所有支持自動(dòng)掛載的設(shè)備;(定義在了/etc/fstab文件中,且掛載選項(xiàng)中有“自動(dòng)掛載”功能)
? ? -L 'LABEL': 以卷標(biāo)指定掛載設(shè)備;
? ? -U 'UUID': 以UUID指定要掛載的設(shè)備;
? ? -B, --bind: 綁定目錄到另一個(gè)目錄上;
注意:查看內(nèi)核追蹤到的已掛載的所有設(shè)備:cat /proc/mounts
………………………………………………………………………………………………………………………
? ? -o options:(掛載文件系統(tǒng)的選項(xiàng))
? ? ? async:異步模式;
? ? ? sync:同步模式;
? ? ? atime/noatime:包含目錄和文件;
? ? ? diratime/nodiratime:目錄的訪問時(shí)間戳
? ? ? auto/noauto:是否支持自動(dòng)掛載
? ? ? exec/noexec:是否支持將文件系統(tǒng)上應(yīng)用程序運(yùn)行為進(jìn)程
? ? ? dev/nodev:是否支持在此文件系統(tǒng)上使用設(shè)備文件;
? ? ? suid/nosuid:是否支持在此文件系統(tǒng)上使用特殊權(quán)限
? ? ? remount:重新掛載
? ? ? ro:只讀
? ? ? rw:讀寫
? ? ? user/nouser:是否允許普通用戶掛載此設(shè)備
? ? ? acl:啟用此文件系統(tǒng)上的acl功能
注意:上述選項(xiàng)可多個(gè)同時(shí)使用,彼此使用逗號(hào)分隔;
?默認(rèn)掛載選項(xiàng):defaults:rw, suid,?dev, exec, auto, nouser, and async
上述信息可以通過查看超級(jí)塊信息看到,這里不再對(duì)其進(jìn)行演示。
………………………………………………………………………………………………………………………
命令演示:
1、指定文件系統(tǒng)將塊設(shè)備掛載至指定空文件夾內(nèi):演示內(nèi)容:1)沒有指定文件系統(tǒng),命令是否能正確執(zhí)行;2)指定錯(cuò)誤文件系統(tǒng),命令是否能正確執(zhí)行;3)掛載點(diǎn)有內(nèi)容的文件夾,查看被掛載后其內(nèi)容是否消失。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | [root@localhost?/]#?fdisk?-l ... ? ?設(shè)備?Boot? ? ? Start? ? ? ? ?End? ? ? Blocks? ?Id? System /dev/sdb1? ? ? ? ? ??2048? ? ?2099199? ? ?1048576? ?83? Linux /dev/sdb2? ? ? ? ?2099200? ? ?4196351? ? ?1048576? ? 5? Extended /dev/sdb5? ? ? ? ?2101248? ? ?2306047? ? ? 102400? ?83? Linux /dev/sdb6? ? ? ? ?2308096? ? ?2512895? ? ? 102400? ?83? Linux /dev/sdb7? ? ? ? ?2514944? ? ?2719743? ? ? 102400? ?83? Linux /dev/sdb8? ? ? ? ?2721792? ? ?2926591? ? ? 102400? ?83? Linux ... [root@localhost?/]#?mount?/dev/sdb8?/device [root@localhost?/]#?df 文件系統(tǒng)? ? ? ? ? ? ? ? ? ?1K-塊? ? 已用? ? ?可用?已用%?掛載點(diǎn) /dev/mapper/CentOS-root?18307072?4724136?13582936? ?26%?/ devtmpfs? ? ? ? ? ? ? ? ? 485368? ? ? ?0? ?485368? ? 0%?/dev tmpfs? ? ? ? ? ? ? ? ? ? ?500664? ? ? 84? ?500580? ? 1%?/dev/shm tmpfs? ? ? ? ? ? ? ? ? ? ?500664? ? 7160? ?493504? ? 2%?/run tmpfs? ? ? ? ? ? ? ? ? ? ?500664? ? ? ?0? ?500664? ? 0%?/sys/fs/cgroup /dev/sda1? ? ? ? ? ? ? ? ?508588? 142620? ?365968? ?29%?/boot tmpfs? ? ? ? ? ? ? ? ? ? ?100136? ? ? 20? ?100116? ? 1%?/run/user/42 tmpfs? ? ? ? ? ? ? ? ? ? ?100136? ? ? ?0? ?100136? ? 0%?/run/user/0 /dev/sdb8? ? ? ? ? ? ? ? ??98988? ? 5280? ? 93708? ? 6%?/device [root@localhost?/]#?blkid?/dev/sdb8 /dev/sdb8:?UUID="a3c4bf06-3695-45e8-8a07-a063498f0578"?TYPE="xfs"? [root@localhost?/]#?umount?/device [root@localhost?/]#?mount?-t?ext2?/dev/sdb8?/device mount:?文件系統(tǒng)類型錯(cuò)誤、選項(xiàng)錯(cuò)誤、/dev/sdb8?上有壞超級(jí)塊、 ? ? ? ?缺少代碼頁或助手程序,或其他錯(cuò)誤 [root@localhost?/]#?cd?/device/ [root@localhost?device]#?ll 總用量?0 [root@localhost?device]#?touch?11?22 [root@localhost?device]#?ll 總用量?0 -rw-r--r--.?1?root?root?0?8月? 23?10:14?11 -rw-r--r--.?1?root?root?0?8月? 23?10:14?22 [root@localhost?device]#?ll 總用量?0 [root@localhost?device]#?ll?-a 總用量?4 drwxr-xr-x.? 2?root?root? ? 6?8月? 23?09:27?. dr-xr-xr-x.?21?root?root?4096?8月? 23?09:29?.. [root@localhost?device]#?cd?.. [root@localhost?/]#?umount?/device/ [root@localhost?/]#?cd?/device/ [root@localhost?device]#?ll 總用量?0 -rw-r--r--.?1?root?root?0?8月? 23?10:14?11 -rw-r--r--.?1?root?root?0?8月? 23?10:14?22 |
通過上述演示,說明了如下事實(shí):1)沒有指定文件系統(tǒng),塊設(shè)備也可以正常掛載;2)指定與塊設(shè)備不一致的文件系統(tǒng)類型則命令報(bào)錯(cuò);3)掛載點(diǎn)有內(nèi)容的文件夾,在掛載后內(nèi)容消失,卸載后內(nèi)容重現(xiàn),也就是說掛載后會(huì)將原文件內(nèi)容掩蓋,但并不對(duì)其進(jìn)行其他操作。
………………………………………………………………………………………………………………………
2、演示內(nèi)容:1)指定卷標(biāo)并以只讀方式掛載;2)對(duì)目錄進(jìn)行掛載操作,查看其與硬鏈接與軟鏈接有何不同。
[root@localhost device]# blkid /dev/sdb6
/dev/sdb6: LABEL="sdb6" UUID="8284450c-8cb9-45d7-a8b8-ed9ed9ef9e52" TYPE="xfs"?
[root@localhost device]# mount -L 'sdb6' -r /device/?
[root@localhost device]# touch /device/33?
touch: 無法創(chuàng)建"/device/33": 只讀文件系統(tǒng)?
[root@localhost device]# umount /device/?
[root@localhost /]# mount -B /etc/ /device/?
[root@localhost /]# ll -i /?
總用量 64?
? ? 11341 lrwxrwxrwx.? 1 root root? ? 7 7月? 19 23:54 bin -> usr/bin
? ? ? 128 dr-xr-xr-x.? 4 root root 4096 8月? 2 10:09 boot?
? ? ? ? 3 drwxr-xr-x.? 19 root root 3300 8月? 23 09:10 dev?
?33554561 drwxr-xr-x. 129 root root 8192 8月? 23 09:38 device?
?33554561 drwxr-xr-x. 129 root root 8192 8月? 23 09:38 etc?
? ? ? 158 drwxr-xr-x.? 42 root root 4096 8月? 22 09:00 home
注:文件夾的掛載在df中并不顯示
………………………………………………………………………………………………………………………
卸載命令:umount
命令使用格式:
? ? ?# umount DEVICE
? ? ?# umount MOUNT_POINT
上面已經(jīng)演示過umount的使用
fuser:查看正在訪問指定文件系統(tǒng)的進(jìn)程:
命令使用格式:
? ? ?# fuser -v MOUNT_POINT
終止所有在正訪問指定的文件系統(tǒng)的進(jìn)程:慎用
? ? ?# fuser -km MOUNT_POINT
?
交換分區(qū)swap
這里介紹下交換分區(qū),通過實(shí)驗(yàn)演示交換分區(qū)的創(chuàng)建及掛載
掛載交換分區(qū):
啟用:swapon
? ?swapon [OPTION]... [DEVICE]
? ? -a:激活所有的交換分區(qū);
? ? -p PRIORITY:指定優(yōu)先級(jí);
禁用:swapoff?[OPTION]... [DEVICE]
實(shí)驗(yàn)演示:
1、交換分區(qū)的創(chuàng)建:1)新創(chuàng)建一分區(qū),2)修改新分區(qū)的類型,改為swap號(hào)碼為82,3)格式化為swap
[root@localhost ~]# fdisk /dev/sdb?
歡迎使用 fdisk (util-linux 2.23.2)。?
更改將停留在內(nèi)存中,直到您決定將更改寫入磁盤。?
使用寫入命令前請(qǐng)三思。?
命令(輸入 m 獲取幫助):n?
Partition type:?
? p? primary (1 primary, 1 extended, 2 free)?
? l? logical (numbered from 5)?
Select (default p): l?
添加邏輯分區(qū) 9?
起始 扇區(qū) (2928640-4196351,默認(rèn)為 2928640):?
將使用默認(rèn)值 2928640?
Last 扇區(qū), +扇區(qū) or +size{K,M,G} (2928640-4196351,默認(rèn)為 4196351):+100M?
分區(qū) 9 已設(shè)置為 Linux 類型,大小設(shè)為 100 MiB?
命令(輸入 m 獲取幫助):p?
磁盤 /dev/sdb:5368 MB, 5368709120 字節(jié),10485760 個(gè)扇區(qū)?
Units = 扇區(qū) of 1 * 512 = 512 bytes?
扇區(qū)大小(邏輯/物理):512 字節(jié) / 512 字節(jié)?
I/O 大小(最小/最佳):512 字節(jié) / 512 字節(jié)?
磁盤標(biāo)簽類型:dos?
磁盤標(biāo)識(shí)符:0xd391e822?
? 設(shè)備 Boot? ? ? Start? ? ? ? End? ? ? Blocks? Id? System?
/dev/sdb1? ? ? ? ? ? 2048? ? 2099199? ? 1048576? 83? Linux?
/dev/sdb2? ? ? ? 2099200? ? 4196351? ? 1048576? ? 5? Extended?
/dev/sdb5? ? ? ? 2101248? ? 2306047? ? ? 102400? 83? Linux?
/dev/sdb6? ? ? ? 2308096? ? 2512895? ? ? 102400? 83? Linux?
/dev/sdb7? ? ? ? 2514944? ? 2719743? ? ? 102400? 83? Linux?
/dev/sdb8? ? ? ? 2721792? ? 2926591? ? ? 102400? 83? Linux?
/dev/sdb9? ? ? ? 2928640? ? 3133439? ? ? 102400? 83? Linux?
命令(輸入 m 獲取幫助):t?
分區(qū)號(hào) (1,2,5-9,默認(rèn) 9):9?
Hex 代碼(輸入 L 列出所有代碼):82?
已將分區(qū)“Linux”的類型更改為“Linux swap / Solaris”?
命令(輸入 m 獲取幫助):p?
磁盤 /dev/sdb:5368 MB, 5368709120 字節(jié),10485760 個(gè)扇區(qū)?
Units = 扇區(qū) of 1 * 512 = 512 bytes?
扇區(qū)大小(邏輯/物理):512 字節(jié) / 512 字節(jié)?
I/O 大小(最小/最佳):512 字節(jié) / 512 字節(jié)?
磁盤標(biāo)簽類型:dos?
磁盤標(biāo)識(shí)符:0xd391e822?
? 設(shè)備 Boot? ? ? Start? ? ? ? End? ? ? Blocks? Id? System?
/dev/sdb1? ? ? ? ? ? 2048? ? 2099199? ? 1048576? 83? Linux?
/dev/sdb2? ? ? ? 2099200? ? 4196351? ? 1048576? ? 5? Extended?
/dev/sdb5? ? ? ? 2101248? ? 2306047? ? ? 102400? 83? Linux?
/dev/sdb6? ? ? ? 2308096? ? 2512895? ? ? 102400? 83? Linux?
/dev/sdb7? ? ? ? 2514944? ? 2719743? ? ? 102400? 83? Linux?
/dev/sdb8? ? ? ? 2721792? ? 2926591? ? ? 102400? 83? Linux?
/dev/sdb9? ? ? ? 2928640? ? 3133439? ? ? 102400? 82? Linux swap / Solaris?
命令(輸入 m 獲取幫助):w?
The partition table has been altered!?
Calling ioctl() to re-read partition table.?
正在同步磁盤。?
[root@localhost ~]# mkswap /dev/sdb9?
正在設(shè)置交換空間版本 1,大小 = 102396 KiB?
無標(biāo)簽,UUID=74bf2766-a01b-48ea-9082-2fad6b8e06a9
2、掛載交換分區(qū):啟用與禁用
[root@localhost ~]# free?
? ? ? ? ? ? ? total? ? ? ? used? ? ? ? free? ? ? shared? buff/cache? available?
Mem:? ? ? ? 1001332? ? ? 101756? ? ? 535892? ? ? 13424? ? ? 363684? ? ? 720328?
Swap:? ? ? 2097148? ? ? ? ? 0? ? 2097148?
[root@localhost ~]# swapon /dev/sdb9??
[root@localhost ~]# free?
? ? ? ? ? ? ? total? ? ? ? used? ? ? ? free? ? ? shared? buff/cache? available?
Mem:? ? ? ? 1001332? ? ? 101716? ? ? 535924? ? ? 13424? ? ? 363692? ? ? 720368?
Swap:? ? ? 2199544? ? ? ? ? 0? ? 2199544?
[root@localhost ~]# swapoff /dev/sdb9??
[root@localhost ~]# free?
? ? ? ? ? ? ? total? ? ? ? used? ? ? ? free? ? ? shared? buff/cache? available?
Mem:? ? ? ? 1001332? ? ? 102492? ? ? 535152? ? ? 13424? ? ? 363688? ? ? 719592?
Swap:? ? ? 2097148? ? ? ? ? 0? ? 2097148
實(shí)驗(yàn)涉及到的命令小結(jié):?? ? ?
? 內(nèi)存空間使用狀態(tài):free [OPTION]
? ? -m: 以MB為單位
? ? -g: 以GB為單位
? 文件系統(tǒng)空間占用等信息的查看工具:df
? ??-h: human-readable
? ??-i:inodes instead of blocks
? ??-P: 以Posix兼容的格式輸出;?
? 查看某目錄總體空間占用狀態(tài):du
??du [OPTION]... DIR
? ??-h: human-readable
? ??-s: summary
命令總結(jié):mount, umount, free, df, du, swapon, swapoff, fuser
開機(jī)自動(dòng)掛載
如果我們想實(shí)現(xiàn)開機(jī)自動(dòng)掛載某設(shè)備,只要修改/etc/fstab文件即可。
文件掛載的配置文件:/etc/fstab
查看此文件可知
每行定義一個(gè)要掛載的文件系統(tǒng);
其每行的格式如下
要掛載的設(shè)備或偽文件系統(tǒng)??掛載點(diǎn)??文件系統(tǒng)類型??掛載選項(xiàng)?轉(zhuǎn)儲(chǔ)頻率?自檢次序
UUID=6efb8a23-bae1-427c-ab10-3caca95250b1?/boot??xfs?? ?defaults?? ?0?0
? ??要掛載的設(shè)備或偽文件系統(tǒng):設(shè)備文件、LABEL(LABEL="")、UUID(UUID="")、偽文件系統(tǒng)名稱(proc, sysfs)
? ??掛載點(diǎn):指定的文件夾
? ?掛載選項(xiàng):defaults
? ??轉(zhuǎn)儲(chǔ)頻率:
? ? ? 0:不做備份
? ? ? 1:每天轉(zhuǎn)儲(chǔ)
? ? ? 2:每隔一天轉(zhuǎn)儲(chǔ)
? ??自檢次序:
? ? ? 0:不自檢
? ? ? 1:首先自檢;一般只有rootfs才用1;
/etc/fstab和/etc/mtab的區(qū)別
? ?/etc/fstab文件的作用:?
記錄了計(jì)算機(jī)上硬盤分區(qū)的相關(guān)信息,啟動(dòng) Linux 的時(shí)候,檢查分區(qū)的 fsck 命令,和掛載分區(qū)的 mount 命令,都需要 fstab 中的信息,來正確的檢查和掛載硬盤。?
??/etc/mtab文件的作用:?
? ?先看它的英文是:?
? ? ?This changes continuously as the file /proc/mount changes. In other words, when filesystems are mounted and unmounted, the change is immediately reflected in this file.?
? ? ?記載的是現(xiàn)在系統(tǒng)已經(jīng)裝載的文件系統(tǒng),包括操作系統(tǒng)建立的虛擬文件等;而/etc/fstab是系統(tǒng)準(zhǔn)備裝載的。 每當(dāng) mount 掛載分區(qū)、umount 卸載分區(qū),都會(huì)動(dòng)態(tài)更新 mtab,mtab 總是保持著當(dāng)前系統(tǒng)中已掛載的分區(qū)信息,fdisk、df 這類程序,必須要讀取 mtab 文件,才能獲得當(dāng)前系統(tǒng)中的分區(qū)掛載情況。當(dāng)然我們自己還可以通過讀取/proc/mount也可以來獲取當(dāng)前掛載信息?
?
轉(zhuǎn)載:http://www.linuxidc.com/Linux/2016-08/134666.htm
轉(zhuǎn)載于:https://www.cnblogs.com/mrzuo/p/7026472.html
總結(jié)
以上是生活随笔為你收集整理的[转载]Linux基础知识之挂载详解(mount,umount及开机自动挂载)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cordova 插件开发
- 下一篇: linux 其他常用命令