{{ v.name }}
{{ v.cls }}類
{{ v.price }} ¥{{ v.price }}
掛載概念
Linux中的根目錄以外的文件要想被訪問,需要將其“關(guān)聯(lián)”到根目錄下的某個(gè)目錄來實(shí)現(xiàn),這種關(guān)聯(lián)操作就是“掛載”,這個(gè)目錄就是“掛載點(diǎn)”,解除次關(guān)聯(lián)關(guān)系的過程稱之為“卸載”。
注意:“掛載點(diǎn)”的目錄需要以下幾個(gè)要求:
(1)目錄事先存在,可以用mkdir命令新建目錄;
(2)掛載點(diǎn)目錄不可被其他進(jìn)程使用到;
(3)掛載點(diǎn)下原有文件將被隱藏。
掛載與卸載
掛載方法:mount DECE MOUNT_POINT
mount:通過查看/etc/mtab(文章最后會對/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:自動掛載所有支持自動掛載的設(shè)備;(定義在了/etc/fstab文件中,且掛載選項(xià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:是否支持自動掛載
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í)使用,彼此使用逗號分隔;
默認(rèn)掛載選項(xiàng):defaults:rw, suid, dev, exec, auto, nouser, and async
上述信息可以通過查看超級塊信息看到,這里不再對其進(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% /devtmpfs 500664 84 500580 1% /dev/shmtmpfs 500664 7160 493504 2% /runtmpfs 500664 0 500664 0% /sys/fs/cgroup/dev/sda1 508588 142620 365968 29% /boottmpfs 100136 20 100116 1% /run/user/42tmpfs 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 /devicemount: 文件系統(tǒng)類型錯(cuò)誤、選項(xiàng)錯(cuò)誤、/dev/sdb8 上有壞超級塊、 缺少代碼頁或助手程序,或其他錯(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總用量 4drwxr-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),也就是說掛載后會將原文件內(nèi)容掩蓋,但并不對其進(jìn)行其他操作。
………………………………………………………………………………………………………………………
2、演示內(nèi)容:1)指定卷標(biāo)并以只讀方式掛載;2)對目錄進(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
通過上述演示,說明了如下事實(shí):1)指定卷標(biāo)掛載可行,以只讀方式掛載后,無法對掛載點(diǎn)中的內(nèi)容進(jìn)行修改、創(chuàng)建等操作;2)目錄的掛載實(shí)質(zhì)上是硬鏈接,掛載后可以對里面的文件內(nèi)容進(jìn)行修改與刪除。
注:文件夾的掛載在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)先級;
禁用:swapoff [OPTION]... [DEVICE]
實(shí)驗(yàn)演示:
1、交換分區(qū)的創(chuàng)建:1)新創(chuàng)建一分區(qū),2)修改新分區(qū)的類型,改為swap號碼為82,3)格式化為swap
[root@localhost ~]# fdisk /dev/sdb
歡迎使用 fdisk (util-linux 2.23.2)。
更改將停留在內(nèi)存中,直到您決定將更改寫入磁盤。
使用寫入命令前請三思。
命令(輸入 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)識符: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ū)號 (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)識符: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ī)自動掛載
如果我們想實(shí)現(xiàn)開機(jī)自動掛載某設(shè)備,只要修改/etc/fstab文件即可。
文件掛載的配置文件:/etc/fstab

查看此文件可知
每行定義一個(gè)要掛載的文件系統(tǒng);
其每行的格式如下
要掛載的設(shè)備或偽文件系統(tǒng) 掛載點(diǎn) 文件系統(tǒng)類型 掛載選項(xiàng) 轉(zhuǎn)儲頻率 自檢次序
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)儲頻率:
0:不做備份
1:每天轉(zhuǎn)儲
2:每隔一天轉(zhuǎn)儲
自檢次序:
0:不自檢
1:首先自檢;一般只有rootfs才用1;
/etc/fstab和/etc/mtab的區(qū)別
/etc/fstab文件的作用:
記錄了計(jì)算機(jī)上硬盤分區(qū)的相關(guān)信息,啟動 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ū),都會動態(tài)更新 mtab,mtab 總是保持著當(dāng)前系統(tǒng)中已掛載的分區(qū)信息,fdisk、df 這類程序,必須要讀取 mtab 文件,才能獲得當(dāng)前系統(tǒng)中的分區(qū)掛載情況。當(dāng)然我們自己還可以通過讀取/proc/mount也可以來獲取當(dāng)前掛載信息