接前文,CentOS下ext4哨啃、vfat文件系統(tǒng)創(chuàng)建粗梭、修改盾碗,以及swap分區(qū)管理
在Linux中,存儲(chǔ)設(shè)備的使用一般分三步邮弹,分區(qū)黔衡,創(chuàng)建文件系統(tǒng)(格式化),掛載腌乡。
什么是掛載盟劫?個(gè)人理解,Linux通過(guò)倒樹形的根文件系統(tǒng)來(lái)管理所有的文件与纽,內(nèi)核只能識(shí)別并管理根目錄/
所在的文件系統(tǒng)及其下的目錄和文件侣签。因此其他文件系統(tǒng)想要使用塘装,都需要為其指定在現(xiàn)存目錄下的訪問(wèn)入口。
將額外的文件系統(tǒng)影所,與現(xiàn)存的Linux能夠識(shí)別的目錄蹦肴,建立起映射關(guān)系,實(shí)現(xiàn)將現(xiàn)存目錄作為訪問(wèn)額外文件系統(tǒng)的入口的功能猴娩,這個(gè)過(guò)程稱為掛載阴幌;用于訪問(wèn)額外文件系統(tǒng)的,現(xiàn)存文件系統(tǒng)中的指定目錄卷中,稱為掛載點(diǎn)矛双。
掛載的逆過(guò)程,解除額外的文件系統(tǒng)與現(xiàn)存Linux能夠識(shí)別的目錄之間的映射關(guān)系蟆豫,稱為卸載议忽。
一,查詢所有塊設(shè)備信息
掛載需要兩個(gè)參數(shù)无埃,掛載的設(shè)備或文件系統(tǒng)徙瓶,掛載點(diǎn);
1. 掛載點(diǎn)嫉称,是現(xiàn)有文件系統(tǒng)下的某個(gè)目錄侦镇,是由我們自己指定的;
2. 要掛載的設(shè)備或文件系統(tǒng)织阅,其信息要如何獲得壳繁?
1. 如果要掛載的是磁盤,可以嘗試用fdisk -l
命令配合df
和free
命令
為了更直觀的比較荔棉,可以加上grep以過(guò)濾顯示結(jié)果闹炉,例如:
從結(jié)果中可以看到,swap分區(qū)只有sda3润樱,并且大小和現(xiàn)有swap大小基本一樣渣触,可知swap分區(qū)已全部掛載。
已掛載磁盤只有sda1和sda2壹若,sdb1沒有掛載嗅钻。
2. 使用blkid -o format
命令
blkid命令用于顯示所有塊設(shè)備屬性,無(wú)論該設(shè)備有沒有被掛載
blkid -o format
的format常用值有
full:顯示設(shè)備名稱店展、UUID和文件系統(tǒng)類型
value:顯示UUID和文件系統(tǒng)類型(不是像full里那樣的鍵值對(duì)养篓,而是逐一打印UUID和TYPE的值)
list:以對(duì)用戶較友好的格式輸出塊設(shè)備屬性
device:輸出設(shè)備名稱其中,full顯示的內(nèi)容=device+value赂蕴,list格式最常用柳弄,格式也更友好
在format的多個(gè)值中比較推薦list或full,full模式下會(huì)顯示設(shè)備名稱概说、UUID和文件系統(tǒng)的類型
而list模式更便于我們閱讀碧注,此時(shí)會(huì)顯示設(shè)備名稱嚣伐、文件系統(tǒng)類型、表現(xiàn)名稱应闯、掛載點(diǎn)(會(huì)顯示掛載點(diǎn)或未掛載狀態(tài))和UUID纤控。如下圖,根據(jù)提示很容易可以看得出/dev/sdb1
和/dev/sr0
處于未掛載狀態(tài)碉纺。
3. 使用lsblk
命令
lsblk:list block devices船万,顯示塊設(shè)備信息
用法:
lsblk [選項(xiàng)] [<設(shè)備> ...]
常用選項(xiàng):
-f, --fs:輸出文件系統(tǒng)信息
-m, --perms:輸出權(quán)限信息
-p, --paths:打印完整設(shè)備路徑
例如,lsblk -fmp
骨田,不指定設(shè)備則顯示所有塊設(shè)備信息耿导,很容易看到sbd1和sr0沒有掛載點(diǎn),說(shuō)明他們處于未掛載狀態(tài)态贤。
通過(guò)上面三種方法舱呻,我們可以了解到目前尚未掛載的設(shè)備信息,即有哪些設(shè)備可以掛載悠汽。
二箱吕,文件系統(tǒng)的掛載
1,掛載和卸載命令的參數(shù):
掛載使用mount
命令柿冲,設(shè)備茬高、掛載點(diǎn) 兩者都需要指明
卸載使用umount
命令,設(shè)備假抄、掛載點(diǎn) 兩者只需要指明其一
2怎栽,一般掛載
命令格式:mount [-nrw] [-t vfstype] [-o options] device dir
device:指明要掛載的設(shè)備或文件系統(tǒng),可以通過(guò)以下方式指定
1)設(shè)備文件名稱:例如/dev/sda5宿饱,默認(rèn)使用這種方式
2)卷標(biāo):-L 'LabelName'熏瞄,例如 -L 'MYDATA'
3)UUID:-U UUID,即使設(shè)備名稱或者卷標(biāo)改了谬以,也不影響識(shí)別
4)偽文件系統(tǒng)(暫不介紹):proc强饮,sysfs,devtmpfs为黎,configfs
dir:掛載點(diǎn)
1)事先存在胡陪,并建議使用空目錄,
2)如果是長(zhǎng)期掛載碍舍,盡量不要使用mnt和media目錄
3)處于busy狀態(tài)(例如正在被訪問(wèn)的目錄)的設(shè)備無(wú)法被卸載
mount命令本身選項(xiàng):
-r:readonly,只讀掛載(整個(gè)分區(qū)只讀)邑雅;
-w:read and write, 讀寫掛載片橡;
-n:默認(rèn)情況下,設(shè)備掛載或卸載的操作會(huì)同步更新至/etc/mtab
文件中淮野;
-n用于禁止此特性:掛載但不更新/etc/mtab
文件捧书;
-t vfstype:指明要掛載的設(shè)備上的文件系統(tǒng)的類型吹泡;多數(shù)情況下可省略,此時(shí)mount會(huì)通過(guò)blkid來(lái)判斷要掛載的設(shè)備的文件系統(tǒng)類型经瓷;
-L LABEL:掛載時(shí)以卷標(biāo)的方式指明設(shè)備爆哑;
mount -L LABEL dir
-U UUID:掛載時(shí)以UUID的方式指明設(shè)備;
mount -U UUID dir
-o options:掛載選項(xiàng)舆吮,多用于定義掛載時(shí)文件系統(tǒng)的特性
sync/async:同步/異步操作揭朝;
atime/noatime:文件或目錄在被訪問(wèn)時(shí)是否更新其訪問(wèn)時(shí)間戳;
diratime/nodiratime:目錄在被訪問(wèn)時(shí)是否更新其訪問(wèn)時(shí)間戳色冀;
remount:重新掛載潭袱;
acl:支持使用facl功能;
# mount -o acl device dir
# tune2fs -o acl device
# mount -o remount,acl device dir
#重新掛載并增加acl特性
ro:只讀锋恬,-o ro 等效于 -r
rw:讀寫屯换,-o rw 等效于 -w
dev/nodev:此設(shè)備上是否允許創(chuàng)建設(shè)備文件;
exec/noexec:是否允許運(yùn)行此設(shè)備上的程序文件与学;
auto/noauto:是否支持自動(dòng)掛載彤悔,即是否支持mount -a
,如果是noauto
索守,那么即使在fstab
中加入記錄晕窑,啟動(dòng)時(shí)也不會(huì)自動(dòng)掛載該設(shè)備;
user/nouser:是否允許普通用戶掛載此文件系統(tǒng)蕾盯;
suid/nosuid:是否允許程序文件上的suid和sgid特殊權(quán)限生效幕屹;
defaults:使用默認(rèn)掛載特性: rw, suid, dev, exec, auto, nouser, async, relatime(默認(rèn)特性和CentOS版本及內(nèi)核版本有關(guān))
特別的,如果指定的特性與defaults的默認(rèn)特性沖突级遭,以額外指定的特性為準(zhǔn)望拖,例如mount -o defaults,noauto device dir
,默認(rèn)特性是auto
挫鸽,額外指定noauto
说敏,device實(shí)際表現(xiàn)的掛載特性是noauto
。
mount的特殊用法:
將一個(gè)目錄綁定至另一個(gè)目錄上丢郊,實(shí)現(xiàn)兩個(gè)不同路徑訪問(wèn)同一個(gè)目錄:
mount --bind 源目錄 目標(biāo)目錄
3盔沫,掛載可移動(dòng)設(shè)備或回環(huán)設(shè)備
-
掛載光盤:
mount -r /dev/cdrom mount_point
光盤設(shè)備文件一般名稱是/dev/cdrom
,/dev/dvd
,其實(shí)都是鏈接文件枫匾,例如我的虛擬機(jī)上/dev/cdrom
就指向/dev/sr0
-
掛載U盤:
事先識(shí)別U盤的設(shè)備文件架诞;
掛載本地的回環(huán)設(shè)備干茉,例如iso鏡像或img鏡像文件:
# mount -o loop /PATH/TO/SOME_LOOP_FILE MOUNT_POINT
注意/PATH/TO/SOME_LOOP_FILE替換為鏡像文件的路徑和文件名谴忧,MOUNT_POINT替換為掛載點(diǎn)路徑
4,設(shè)置開機(jī)后自動(dòng)掛載
修改配置文件/etc/fstab
,該文件中每一行定義一個(gè)要掛載的文件系統(tǒng)及相關(guān)屬性沾谓,每一行的內(nèi)容分為6個(gè)字段:
(1) 要掛載的設(shè)備委造,可以是以下內(nèi)容:
設(shè)備文件的名稱,如/dev/sda1
設(shè)備的LABEL
設(shè)備的UUID均驶,CentOS 7中較多使用此種方式
偽文件系統(tǒng):如sysfs, proc, tmpfs等
(2) 掛載點(diǎn)路徑
如果是swap類型的設(shè)備昏兆,掛載點(diǎn)就是swap
;
(3) 文件系統(tǒng)類型妇穴,如ext4爬虱,xfs,btrfs伟骨,vfat等等饮潦;
(4) 掛載選項(xiàng),也就是mount -o
命令的那些選項(xiàng):
defaults:使用默認(rèn)掛載選項(xiàng)携狭;
如果要同時(shí)指明多個(gè)掛載選項(xiàng)继蜡,彼此間以逗號(hào)分隔,如:defaults,acl,noatime,noexec
(5) 轉(zhuǎn)儲(chǔ)頻率逛腿,已經(jīng)很少使用:
0:從不備份稀并;
1:每天備份;
2:每隔一天備份单默;
(6) 自檢次序:
0:不自檢碘举;
1:首先自檢,通常只能是根文件系統(tǒng)可用1搁廓;
2:次級(jí)自檢引颈;
自動(dòng)掛載和
mount -a
mount -a
命令將自動(dòng)掛載/etc/fstab
文件中配置的設(shè)備,可以認(rèn)為系統(tǒng)啟動(dòng)時(shí)會(huì)執(zhí)行一次該命令以掛載已配置的設(shè)備境蜕。
但自動(dòng)掛載有個(gè)條件——該設(shè)備的掛載選項(xiàng)中沒有noauto
蝙场。換句話說(shuō),掛載選項(xiàng)中有noauto
的設(shè)備在執(zhí)行mount -a
時(shí)不會(huì)被掛載粱年。
三售滤,查看已掛載的文件系統(tǒng)信息
1. 使用findmnt
命令
findmnt 命令將列出所有已掛載的文件系統(tǒng)或者搜索出某個(gè)文件系統(tǒng),是查看文件系統(tǒng)時(shí)很常用的命令之一台诗。findmnt 命令能夠在 /etc/fstab
完箩、/etc/mtab
或 /proc/self/mountinfo
這幾個(gè)文件中進(jìn)行搜索。
命令常用選項(xiàng):
-l:表示采用列表形式輸出結(jié)果拉队,默認(rèn)采用樹形輸出結(jié)果
--df 或 -D:以df類型輸出結(jié)果弊知,顯示文件系統(tǒng)及設(shè)備空間使用情況
-t TYPE:只輸出文件類型為TYPE的結(jié)果
參數(shù):
findmnt可以指定設(shè)備或掛載點(diǎn),輸出相關(guān)結(jié)果粱快,不帶任何參數(shù)則輸出所有結(jié)果秩彤,例如:
findmnt /dev/sda1
findmnt /
2. 使用blkid
命令
blkid -o list
夺鲜,在第一部分已經(jīng)簡(jiǎn)單介紹過(guò)該命令的用法,這里不再重復(fù)呐舔。
3. 使用lsblk
命令
lsblk -fp [device]
,第一部分也已經(jīng)介紹過(guò)慷蠕,這里不再重復(fù)珊拼。
4. 使用df
命令
常用df -hT
來(lái)查看已掛載設(shè)備的文件系統(tǒng)及其空間使用情況,-T
表示查看文件類型流炕,-h
表示以方便識(shí)別的方式輸出空間情況澎现。
更多用法請(qǐng)看man手冊(cè)。
5. 使用mount
命令
直接使用mount
命令每辟,不帶選項(xiàng)和參數(shù)剑辫,會(huì)輸出所有已掛載的系統(tǒng)信息,里面可能有很多我們不需要的信息渠欺,常和grep一起使用以查看我們關(guān)注的內(nèi)容妹蔽。
如:mount | grep -E "(sd)|(sr)"
6. 使用fdisk -l
命令
該命令是分區(qū)命令,因此只能看到能夠進(jìn)行分區(qū)操作的設(shè)備信息(比如光盤就不會(huì)顯示)挠将,同時(shí)無(wú)論分區(qū)有沒有掛載都會(huì)顯示胳岂。
上面的命令可以簡(jiǎn)單分為
可以查看設(shè)備信息:blkid
,lsblk
舔稀,fdisk
只能查看設(shè)備信息:findmnt
乳丰,df
,mount
四内贮,文件系統(tǒng)的卸載
卸載使用命令umount
产园,設(shè)備或掛載點(diǎn)任意指定其中之一即可:umount device|dir
卸載時(shí)有可能會(huì)遇到掛載點(diǎn)正在被其他進(jìn)程訪問(wèn),無(wú)法卸載的情況:
按照系統(tǒng)提示的2個(gè)命令查看:
lsof /test
fuser -v /test
解決辦法有2個(gè):
1. 終止所有正在訪問(wèn)某掛載點(diǎn)的進(jìn)程什燕,比如使用命令fuser -km /test
(這個(gè)命令有可能導(dǎo)致其他進(jìn)程出問(wèn)題,生產(chǎn)環(huán)境慎用)拂酣,或者kill掉訪問(wèn)掛載點(diǎn)的進(jìn)程秋冰,然后再卸載。
2. 強(qiáng)制卸載:umount -l /test
婶熬,umount -l
會(huì)等到掛載點(diǎn)空閑后再卸載剑勾,相對(duì)讓人放心一些。