一、掛載概念
Linux 系統中“一切皆文件”,所有文件都放置在以根目錄爲樹根的樹形目錄結構中。在 Linux 看來,任何硬件設備也都是文件,它們各有自己的一套文件系統(文件目錄結構)。
當 Linux系統使用這些硬件設備時,需要將其“關聯”到根目錄下的某個目錄來實現,使該文件目錄與硬件設備的文件目錄合二爲一。這種合二爲一的關聯過程稱爲“掛載”。
這個文件目錄稱爲“掛載點”,解除此關聯關係的過程稱爲“卸載”。
注意:“掛載點”的目錄需要以下幾個要求:
(1)目錄事先存在,可以用mkdir命令新建目錄;
(2)掛載點目錄不可被其他進程使用到;
(3)掛載點下原有文件將被隱藏。掛載點最好是空目錄!
1、掛載的基本使用方法
mount命令的兩個常用用法:
1)掛載
掛載的基本格式:mount [-t 文件系統] [-L 卷標名] [-o 特殊選項] 設備文件名 掛載點
選項:
-t 文件系統:加入文件系統類型來指定掛載的類型,可以 ext3、ext4、iso9660、xfs、fat32、ntfs等文件系統。
-L 卷標名:掛載指定卷標的分區,而不是安裝設備文件名掛載 ,一般情況下也不用,使用默認
-o 特殊選項: 可以指定掛載的額外選項,比如讀寫權限、同步異步等,如果不指定它有一組默認值會生效,一般情況下就使用默認值,不建議更改。
-o options:(掛載文件系統的選項,這些特殊選項,瞭解就ok,一般情況下是不建議修改的,就defaults就好!切記!)
注意:上述 -o 的選項可多個同時使用,彼此使用逗號分隔;
默認掛載選項,也就是 /etc/fstab文件中defaults對應的值:rw, suid, dev, exec, auto, nouser, async
2)查詢與自動掛載
查詢系統中已經掛載的設備,也可以直接查看/etc/mtab文件
mount [-l]
參數:-l(L的小寫)會顯示卷標名稱
開機自動掛載:如果我們想實現開機自動掛載某設備,只要修改/etc/fstab文件即可。
mount –a
-a 選項的含義是自動檢查 /etc/fstab 文件中有無疏漏被掛載的設備文件,如果有,則進行自動掛載操作。
/etc/fstab 文件是自動掛載文件,系統開機時會主動讀取 /etc/fstab 這個文件中的內容,根據該文件的配置,系統會自動掛載指定設備。當然如果有配置錯誤,也會報錯,所以可以起到一定的檢查作用。但是不要在自動掛載中掛載自動的移動設備,因爲如果未插入移動設備後系統會一直掛載,導致系統出錯。
2、卸載
umount命令可卸除目前掛在Linux目錄中的文件系統。
基本格式:umount 設備文件/掛載點
設備文件和掛載點是綁定關係,所以用那個都可以
二、掛載光盤鏡像文件
光盤掛載的前提依然是指定光盤的設備文件名,不同版本的 Linux,設備文件名並不相同:
CentOS 5.x 以前的系統,光盤設備文件名是/dev/hdc
CentOS 6.x 以後的系統,光盤設備文件名是/dev/sr0
不論哪個系統都有軟連接/dev/cdrom,與可以作爲光盤的設備文件名
1、掛載到 /media 目錄下:
[root@centos7 ~]# ll /media/
總用量 0
[root@centos7 ~]# mount -t iso9660 /dev/sr0 /media/
mount: /dev/sr0 寫保護,將以只讀方式掛載
[root@centos7 ~]# ll /media/
總用量 1656
-rw-rw-r-- 1 root root 14 11月 26 2018 CentOS_BuildTag
drwxr-xr-x 3 root root 2048 11月 26 2018 EFI
-rw-rw-r-- 1 root root 227 8月 30 2017 EULA
-rw-rw-r-- 1 root root 18009 12月 10 2015 GPL
drwxr-xr-x 3 root root 2048 11月 26 2018 images
drwxr-xr-x 2 root root 2048 11月 26 2018 isolinux
drwxr-xr-x 2 root root 2048 11月 26 2018 LiveOS
drwxrwxr-x 2 root root 1656832 11月 25 2018 Packages
drwxrwxr-x 2 root root 4096 11月 26 2018 repodata
-rw-rw-r-- 1 root root 1690 12月 10 2015 RPM-GPG-KEY-CentOS-7
-rw-rw-r-- 1 root root 1690 12月 10 2015 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r-- 1 root root 2883 11月 26 2018 TRANS.TBL
2、卸載:
[root@centos7 ~]# umount /media/
[root@centos7 ~]# ll /media/
總用量 0
注意:
1)掛載點一定要是空目錄
2)卸載的時候需要退出光盤目錄,才能正常卸載
三、掛載U盤(FAT32)
U 盤會和硬盤共用設備文件名,所以 U盤的設備文件名不是固定的,需要手工查詢,輸入命令: fdisk -l
因爲U盤是 Windows 分區,所以是 vfat 文件系統格式
如果 U盤中有中文,會發現中文是亂碼。Linux 要想正常顯示中文,需要兩個條件:
1)安裝了中文編碼和中文字體
2)操作終端需要支持中文顯示(純字符終端,是不支持中文編碼的)
而我們當前系統是安裝了中文編碼和字體, 而 crt 遠程終端是 Windows 下的程序, 當然是支持中文顯示的。那之所以掛載 U 盤還出現亂碼,是需要在掛載的時候,手工指定中文編碼(-o iocharset=utf8 )。
1、掛載U盤
usb 驅動不對,插到usb2.0即可 ,輸入一下命令查看,掛載
[root@centos7 ~]# fdisk -l #查詢硬盤
[root@centos7 ~]# mount -t vfat -o iocharset=utf8 /dev/sdc1 /media/
2、掛載U盤
退出U盤目錄,再正常卸載
[root@centos7 ~]# umount /media/
四、掛載U盤或在移動硬盤的掛載(NTFS 分區)
Linux 中硬件和 windows一樣也是需要驅動程序的,Linux的驅動程序有這樣幾種:
1)驅動直接放入系統內核之中。這種驅動主要是系統啓動加載必須的驅動,數量很少。
2)驅動以函數庫的形式放入硬盤 。大多數驅動都已這種方式保存,保存位置在 /lib/modules/3.10.0-862.el7.x86_64/kernel/中(3.10.0-862.el7.x86_64名稱隨你裝的系統而定)。這裏的東西都是Linux的核心模塊:
arch :與硬件平臺有關的項目,例如 CPU 的等級等等;
crypto :核心所支持的加密的技術,例如 md5 或者是 des 等等;
drivers :一些硬件的驅動程序,例如顯示適配器、網絡卡、PCI 相關硬件等等;
fs :核心所支持的 filesystems ,例如 vfat, reiserfs, nfs 等等;
lib :一些函式庫;
net :與網絡有關的各項協議數據,還有防火牆模(net/ipv4/netfilter/*) 等等;
sound :與音效有關的各項模塊;
3)驅動可以被 Linux 識別,但是系統認爲這種驅動一般不常用,默認不加載。如果需要加載這種驅動,需要重新編譯內核,而 NTFS 文件系統的驅動就屬於這種情況。
4)硬件不能被 Linux 內核識別,需要手工安裝驅動。當然前提是廠商提供了該硬件針對 Linux的驅動,否則就需要自己開發驅動了
1、使用 NTFS -3G 安裝 NTFS 文件系統模塊
NTFS-3G是一個開源項目,NTFS-3G是爲Linux,Android, Mac OS X, FreeBSD, NetBSD, OpenSolaris, QNX, Haiku,和其他操作系統提供的一個穩定的,功能齊全,讀寫NTFS的驅動程序。
下載 NTFS-3G 插件:https://www.tuxera.com/community/open-source-ntfs-3g/
將NTFS-3G 插件到 Linux服務器上:。。。。。
在編譯安裝 NTFS-3G 插件之前,要保證 gcc 編譯器已經安裝,如果沒有安裝,輸入:
[root@centos7 ~]# yum -y install gcc
編譯安裝 NTFS-3G 插件的具體命令如下:
[root@centos7 ~]# tar -zvxf ntfs-3g_ntfsprogs-2017.3.23.tgz
[root@centos7 ~]# cd ntfs-3g_ntfsprogs-2017.3.23
[root@centos7 ntfs-3g_ntfsprogs-2017.3.23]# ./configure #編譯器準備。沒有指定安裝目錄,安裝到默認位置中
[root@centos7 ntfs-3g_ntfsprogs-2017.3.23]# make #編譯
[root@centos7 ntfs-3g_ntfsprogs-2017.3.23]# make install #編譯安裝
安裝就完成了,已經可以掛載和使用 Windows 的 NTFS 分區了。不過需要注意掛載分區時的文件系統不是 ntfs,而是 ntfs-3g。
1、掛載
[root@centos7 ~]# mount –t ntfs-3g /dev/sdc1 /media
1)如果發現有中文亂碼,可能是語言環境就有關係,我們可以臨時的更改一下語言環境,兩條命令:
export命令作用:新增、修改、刪除環境變量
[root@centos7 ~]# locale #系統運行時的語言環境
[root@centos7 ~]# export LC_ALL="zh_CN.GBK" #臨時設定編碼就行
2)locale 查看系統運行時的語言環境
[root@centos7 ~]# locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=
locale 把按照所涉及到的文化傳統的各個方面分成12個大類,這12個大類分別是:
1、字符輸入(LC_CTYPE)
2、數字(LC_NUMERIC)
3、比較和排序習慣(LC_COLLATE)
4、時間顯示格式(LC_TIME)
5、貨幣單位(LC_MONETARY)
6、信息:主要是提示信息,錯誤信息,狀態信息,標題,標籤,按鈕和菜單等(LC_MESSAGES)
7、姓名書寫方式(LC_NAME)
8、地址書寫方式(LC_ADDRESS)
9、電話號碼書寫方式(LC_TELEPHONE)
10、度量衡表達方式 (LC_MEASUREMENT)
11、默認紙張尺寸大小(LC_PAPER)
12、對locale自身包含信息的概述(LC_IDENTIFICATION)
3)locale 設定系統運行時的語言環境:
LC_ALL和LANG優先級的關係:LC_ALL > LC_* > LANG
修改文件(debian系列):/etc/default/locale
修改文件(redhat系列):/etc/sysconfig/i18n(CentOS6版本的位置) /etc/locale.conf(CentOS7版本的位置)
1、如果需要一個純中文的系統的話,設定LC_ALL=zh_CN.XXXX,或者LANG=zh_CN.XXXX都可以。
2、如果只想要一個可以輸入中文的環境,而保持菜單、標題,系統信息等等爲英文界面,那麼只需要設定 LC_CTYPE=zh_CN.XXXX,LANG=en_US.XXXX就可以了。
3、假如什麼也不做的話,也就是LC_ALL,LC_*和LANG均不指定特定值的話,系統將採用POSIX作爲lcoale,也就是C locale。C 標準庫系列之locale.h
總結一下:
設定了LC_ALL就不用設置其他的了,他會強制覆蓋掉LC_*.設置部分LC_*和LANG的話,沒有設置的LC_*採用的是LANG的值。
1、臨時設定編碼:# export LC_ALL="zh_CN.GBK"
2、永久設定編碼:修改文件/etc/bashrc(對所有用戶有效)或者~/.bashrc(指定的用戶有效)。在文件尾加入export LC_ALL=zh_CN.GBK
3、永久設定編碼:/etc/locale.conf在這個配置文件中設定
[root@centos7 ~]# cat /etc/locale.conf
LANG="zh_CN.UTF-8"
2、卸載
[root@centos7 ~]# umount /media/
五、開機自動掛載裏邊的一些知識點
如果我們想實現開機自動掛載某設備,只要修改/etc/fstab文件即可。
[root@centos7 ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sun Dec 1 20:29:17 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=4dd1d975-8d59-4965-9ac3-3e1c7e034c5d / xfs defaults 0 0
UUID=65137771-dddf-41d1-ab33-05b61a86add0 /boot xfs defaults 0 0
UUID=6284ce95-f250-4662-8533-a596e3156639 swap swap defaults 0 0
/dev/cdrom /mnt iso9660 defaults 0 0
查看此文件可知:每行定義一個要掛載的文件系統;其每行的格式如下
要掛載的設備或僞文件系統 掛載點 文件系統類型 掛載選項 轉儲頻率 自檢次序
UUID=6efb8a23-bae1-427c-ab10-3caca95250b1 /boot xfs defaults 0 0
要掛載的設備或僞文件系統:設備文件、LABEL(LABEL="")、UUID(UUID="")、僞文件系統名稱(proc, sysfs)
掛載點:指定的文件夾
掛載選項:defaults
轉儲頻率:
0:不做備份
1:每天轉儲
2:每隔一天轉儲
自檢次序:
0:不自檢
1:首先自檢;一般只有rootfs才用1;
文件系統是對文件存儲設備的空間進行組織和分配,負責文件存儲並對存入的文件進行保護和檢索的系統。具體地說,它負責爲用戶建立文件,存入、讀出、修改、轉儲文件,控制文件的存取,當用戶不再使用時撤銷文件等。
proc是一個僞文件系統,它只存在內存當中,而不佔用外存空間。它以文件系統的方式爲訪問系統內核數據的操作提供接口。用戶和應用程序可以通過proc得到系統的信息,並可以改變內核的某些參數。由於系統的信息,如進程,是動態改變的,所以用戶或應用程序讀取proc文件時,proc文件系統是動態從系統內核讀出所需信息並提交的。
六、/etc/fstab和/etc/mtab的區別
1、/etc/fstab文件的作用
記錄了計算機上硬盤分區的相關信息,啓動 Linux 的時候,檢查分區的 fsck 命令,和掛載分區的 mount 命令,都需要 fstab 中的信息,來正確的檢查和掛載硬盤。
2、/etc/mtab文件的作用
記載的是現在系統已經裝載的文件系統,包括操作系統建立的虛擬文件等;而/etc/fstab是系統準備裝載的。 每當 mount 掛載分區、umount 卸載分區,都會動態更新 mtab,mtab 總是保持着當前系統中已掛載的分區信息,fdisk、df 這類程序,必須要讀取 mtab 文件,才能獲得當前系統中的分區掛載情況。當然我們自己還可以通過讀取/proc/mount也可以來獲取當前掛載信息
更多命令參數查看幫助
站在前輩的肩膀上,每天進步一點點
ends~