Linux基礎系列(二)文件系統掛載命令

在介紹文件掛載以前,咱們先來了解什麼是LINUX的文件結構?node


WINDOWS的文件結構是多個並列的樹狀結構,它的分區是以不一樣的磁盤爲基準,好比咱們所熟悉的CDEF盤。而LINUX的文件結構則是單個的樹狀結構,即「/「根目錄,在這個目錄下包含有:/dev, /boot, /bin, /sbin, /lib, /mnt, /root, /proc, /var, /usr,/media等目錄。目前LINUX支持主流的文件系統有:NTFSFAT EXT2 EXT3EXT4 REISERFS, Swap交換分區。安全


掛載的定義:將額外的根文件系統某現存的目錄創建起關係,進而使得此目錄作爲其它文件訪問入口的行爲稱之爲掛載,它的掛載方法爲:Mount Device Mount_Pointbash


「Device」:指明要掛載的設備。如設備文件、UUID號、卷標,前面咱們瞭解過,可使用命令「blkie」查看這些信息,如執行命令「blkid /dev/sdb1」,獲得結果以下:異步

[root@localhost ~]# blkid /dev/sdb1
/dev/sdb1: LABEL="Loadstation1" UUID="6b679696-1114-4e3e-b0b3-250cafef6179" TYPE="ext4" 
[root@localhost ~]# ^C

它的經常使用選項以下:
async

 -tvsftype: 指定要掛載的設備上的文件系統類型;ide

 -rreadonly; 只讀掛載;性能

 -wread and write,讀寫掛載;ui

 -n: 不更新/etc/mtabspa

 -a: 自動掛載全部支持自動掛載的設備(定義在了/etc/fstab中,且掛載選項中有「自動掛載」功能orm

 -L 「label」: 以卷標指定掛載設備;

 -U ‘UUID’: UUID指定要掛載的設備;

 -B --bind: 綁定目錄到另外一個目錄上


因此,咱們能夠經過如下幾種方式去設置文件系統掛載:


經過直接指明哪一個設備,如「/dev/sdb1」、「/dev/sda1」


首先,咱們查看一下所要的設備信息,執行命令「fdisk -l /dev/sda1」,也能夠寫成「fdisk -l /dev/sda[a-z]」表明查看全部分區,以下:

[root@localhost ~]# fdisk -l /dev/sd[a-z]
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000217d1
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      616447      307200   83  Linux
/dev/sda2          616448     4810751     2097152   82  Linux swap / Solaris
/dev/sda3         4810752    41943039    18566144   83  Linux
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x1224d107
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20973567    10485760   83  Linux

這裏,咱們以設備「dev/sdb1」來進行掛載,先經過如下命令格式化分區:

[root@localhost ~]# mke2fs -t ext4 -b 2048 -L "Loadstation1" /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=Loadstation1
OS type: Linux
Block size=2048 (log=1)
Fragment size=2048 (log=1)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 5242880 blocks
262144 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=273678336
320 block groups
16384 blocks per group, 16384 fragments per group
2048 inodes per group
Superblock backups stored on blocks: 
16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104, 
2048000, 3981312
Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done   
[root@localhost ~]# blkid /dev/sdb1
/dev/sdb1: LABEL="Loadstation1" UUID="a0f579be-aa34-4f92-b200-ed37b9e393ed" TYPE="ext4"

建立好一個目錄,而後將分區「dev/sdb1」掛載至該目錄下,執行以下命令

[root@localhost ~]# mkdir /Mydata
[root@localhost ~]# mount /dev/sdb1 /Mydata/

經過執行「mount」便可查看是否掛載成功:

[root@localhost ~]# mount
/dev/sdb1 on /Mydata type ext4 (rw,relatime,seclabel,data=ordered)

一樣,執行如下任意一個命令均可以查看全部的掛載信息:

[root@localhost ~]# cat /etc/mtab
[root@localhost ~]# cat /proc/mounts
/dev/sdb1 /Mydata ext4 rw,seclabel,relatime,data=ordered 0 0

經過「卷標」進行掛載操做:

咱們格式化「/dev/sdb1」時設置的卷標爲「Loadstation1」,以下:

[root@localhost ~]# blkid /dev/sdb1
/dev/sdb1: LABEL="Loadstation1" UUID="a0f579be-aa34-4f92-b200-ed37b9e393ed" TYPE="ext4"

則掛載的命令爲:

[root@localhost ~]# mount -r -L "Loadstation1" /Mydata

經過「UUID」進行掛載操做命令:

[root@localhost ~]# mount -r -U "a520743f-9f72-4344-bdd5-b23bc9e8c4f6" /Mydata

一樣,咱們也能夠利用文件「-t」選項用文件系統格式進行掛載,命令爲:「mount -t ext4 /dev/sdb1 /mydata」


以上只是簡單掛載文件系統,它自己也包含一些獨立的選項,其中:

Async: 異步模式:

Sync: 同步模式;數據可靠、安全性好,性能較差

Atime/noatime: 

Exec/noexec: 是否支持將文件系統上應用程序運行爲進程

Dev/nodev: 是否支持在此文件系統上使用設備文件

Suid/nosuid: 

Remount: 從新掛載 

Ro:只讀

Rw:讀寫

User/nouser: 是否容許普通用戶掛載此設備

Acl: 啓用此文件系統上的ACL(訪問控制列表)功能


默認是Default選項,包含:「rw, suid, dev, exec, auto, nouser, and async」

注意:上述選項可多個同時使用,彼此使用逗號分隔;


例如:先用Mount查看當前掛載的是隻讀,再運行掛載時添加選項「-rw」,再運行「Mount」就變成讀寫權限

[root@localhost ~]# mount
/dev/sdb1 on /Mydata type ext4 (ro,relatime,seclabel,data=ordered)
[root@localhost ~]# mount -r -U "a520743f-9f72-4344-bdd5-b23bc9e8c4f6" /Mydata -rw
[root@localhost ~]# mount
/dev/sdb1 on /Mydata type ext4 (rw,relatime,seclabel,data=ordered)

Mount卸載操做,咱們稱「解除某些關聯關係的過程」爲卸載,格式爲:

# umount device
# umount Mount_point

例如:直接執行命令:

[root@localhost ~]# umount /dev/sdb1

注意:有時執行卸載命令時,系統會提示「目標設備忙」,如:

@localhost Mydata]# umount /dev/sdb1
umount: /Mydata: target is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))

這時,咱們能夠利用命令「fuser」查看目錄是哪一個用戶在使用,以下:

[root@localhost Mydata]# fuser -v /Mydata
                  USER     PID ACCESS COMMAND
/Mydata:             root     kernel mount /Mydata
                  root     3479 ..c.. bash

那咱們確實要運行卸載命令應該怎麼辦呢,這裏有兩種方法:

1、好比當前咱們是在「/Mydata」目錄,咱們用命令「cd」退出訪問,再運行umount;

2、利用命令:「#fuser -km/mydata/」,它會清除整個Root進程,因此不要適用這個命令;

 

以上就是利用Mount命令進行手動掛載的操做,針對的是主要分區,固然, 咱們也能夠對擴展分區(交換分區)進行掛載,使用到的命令爲「mkswap」,在命令執行前,咱們須要啓動交換分區掛載:


啓用命令:Swapon  [option]...device 如:#swapon /dev/sdb1

禁用命令:Swapoff  [option]...device  如:#swapoff /dev/sdb1

執行掛載wgwy :#mkswap device


以上就是手動執行Mount掛載的全部內容,其中有個事情須要注意:

1)掛載的目錄建議爲空目錄,不然掛載成功後原目錄的內容會被隱藏;

2)系統重啓以後,原先設置的掛載分區會丟失,只有將要掛載的內容寫入至「/etc/fstab」文件裏面,掛載纔會永遠有效 

相關文章
相關標籤/搜索