Linux mount掛載命令

一、掛載概念     

       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也可以來獲取當前掛載信息

 

參考文章:Linux中掛載詳解以及mount命令用法

 

     更多命令參數查看幫助

     站在前輩的肩膀上,每天進步一點點

ends~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章