linux挂载的基本使用

挂载

  挂载是指将一个设备(通常是存储设备)挂接到一个已存在的目录上。 我们要访问存储设备中的文件,必须将文件所在的分区(已有文件系统)挂载到一个已存在的目录上, 然后通过访问这个目录来访问存储设备。

挂载条件

1、挂载点必须是一个目录。

2、一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内容将隐藏不可用。对于其他操作系统建立的文件系统的挂载也是这样。

挂载方法:mount DEVICE MOUNT_POINT

    mount:显示当前已挂载的所有设备

    mount [-fnrsvw] [-t vfstype] [-o options] device dir

    device:指明要挂载的设备;以方式都可以!

    (1) 设备文件:例如/dev/sda5

    (2) 卷标:-L 'LABEL', 例如-L 'MYDATA'

    (3) UUID, -U 'UUID':例如-U '0c50523c-43f1-45e7-85c0-a126711d406e'

    (4) 伪文件系统名称:proc, sysfs, devtmpfs, configfs

    dir:挂载点

    事先存在且没有进程访问的目录;建议使用空目录

    进程正在使用中的设备无法被卸载

-t vsftype:指定要挂载的设备上的文件系统类型常用的文件系统有ext2,  ext3,  ext4 iso9660, msdos,ntfs

    一般它会自动识别,但如果要写入/etc/fstab中就要指定文件系统了  

-r: readonly,只读挂载   -o ro 同义

-w: read and write, 读写挂载 -o rw 同义

-n: 不更新/etc/mtab,

-a:自动挂载所有支持自动挂载的设备定义在了/etc/fstab文件中,且挂载选项中有auto功能

-L 'LABEL': 以卷标指定挂载设备

-U 'UUID': 以UUID指定要挂载的设备

-B, –bind: 绑定目录到另一个目录上

-o options:(挂载文件系统的选项),多个选项使用逗号分隔

async:异步模式

sync:同步模式,内存更改时,同时写磁盘

atime/noatime:访问时间戳,包含目录和文件

diratime/nodiratime:目录的访问时间戳

auto/noauto:是否支持自动挂载==是否支持-a选项

exec/noexec:是否支持将文件系统上运行应用程序。默认为exec

dev/nodev:是否支持在此文件系统上使用设备文件

suid/nosuid:不否支持suid和sgid权限

remount:重新挂载

ro:只读

rw:读写

user/nouser:是否允许普通用户挂载此设备,默认管理员才能挂载

acl:启用此文件系统上的acl功能

Defaults:相当于rw, suid, dev, exec, auto, nouser, async

[root@Cloud /]#mkdir /media/sdb1 #创建空目当挂载点,挂载点一般在/media和/mnt目录
[root@Cloud /]#mount /dev/sdb1 /media/sdb1 #把/dev/sdb1挂载到/media/sdb1上
[root@Cloud /]#cd /media/sdb1
[root@Cloud /media/sdb1]#ls #挂载成功会创建lost+found目录
lost+found
[root@Cloud /media/sdb1]#mkdir abc #使用/dev/sdb1分区
[root@Cloud /media/sdb1]#touch file #使用/dev/sdb1分区
[root@Cloud /media/sdb1]#ls#显示创建成功
abc  file  lost+found
[root@Cloud /media/sdb1]#ll 
total 20
drwxr-xr-x 2 root root  4096 Jul 31 03:15 abc
-rw-r--r-- 1 root root     0 Jul 31 03:15 file
drwx------ 2 root root 16384 Jul 31 00:47 lost+found
[root@Cloud /media/sdb1]#mkdir /media/sdb2 #创建空目录来挂载
[root@Cloud /media/sdb1]#mount -r /dev/sdb2 /media/sdb2 #只读挂载,多用来挂载光盘
[root@Cloud /media/sdb1]#cd ../sdb2
[root@Cloud /media/sdb2]#ls
lost+found
[root@Cloud /media/sdb2]#touch file #无法创建! 
touch: cannot touch `file': Read-only file system

一个使用技巧:

可以实现将目录绑定至另一个目录上,作为其临时访问入口;

[root@localhost /]#mkdir mountpoint #创建挂载点
[root@localhost /]#ll mountpoint #创建成功
total 0
[root@localhost /]#mount --bind  /home /mountpoint #绑定目录
[root@localhost /]#ll /home/ /mountpoint/ #查看显示bind成功,大小一样
/home/:
total 0
drwx------  5 mage    mage    121 Sep  1 11:45 mage
drwx------. 3 mageedu mageedu  74 Jul 26 16:09 mageedu
drwx------  3 magge   magge    74 Sep  1 13:37 magge
drwx------  3 maggea  maggea   74 Sep  1 13:37 maggea
drwx------  3 user1   user1    74 Aug 30 14:54 user1
/mountpoint/:
total 0
drwx------  5 mage    mage    121 Sep  1 11:45 mage
drwx------. 3 mageedu mageedu  74 Jul 26 16:09 mageedu
drwx------  3 magge   magge    74 Sep  1 13:37 magge
drwx------  3 maggea  maggea   74 Sep  1 13:37 maggea
drwx------  3 user1   user1    74 Aug 30 14:54 user1

查看挂载情况:

#findmnt MOUNT_POINT

[root@Cloud /media/sdb2]#findmnt /media/sdb1
TARGET      SOURCE    FSTYPE OPTIONS
/media/sdb1 /dev/sdb1 ext3   rw,relatime,errors=continue,barrier=1,data

查看正在访问指定文件系统的进程:

#lsof MOUNT_POINT

#fuser -v MOUNT_POINT

终止所有在正访问指定的文件系统的进程:

[

root@Cloud /media/sdb1]#lsof /dev/sdb1 #命令要在挂载点目录下使用
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
bash    2222 root  cwd    DIR   8,17     4096    2 /media/sdb1
lsof    2658 root  cwd    DIR   8,17     4096    2 /media/sdb1
lsof    2659 root  cwd    DIR   8,17     4096    2 /media/sdb1
[root@Cloud /media/sdb1]#fuser -v /media/sdb1 #同上
                     USER        PID ACCESS COMMAND
/media/sdb1:         root       2222 ..c.. bash

# fuser -km MOUNT_POINT

终止所有在正访问指定的文件系统的进程

[root@Cloud /media/sdb1]#fuser -km /media/sdb1 #结束进程,并断开连接
/media/sdb1:          2222c

 卸载:

# umount DEVICE

# umount MOUNT_POINT

    注:正在被进程访问的挂载点无法被卸载

[root@Cloud ~]#mount 查看挂载
/dev/mapper/vg0-root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
/dev/mapper/vg0-usr on /usr type ext4 (rw)
/dev/mapper/vg0-var on /var type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/sdb1 on /media/sdb1 type ext3 (rw) #/dev/sdb1已挂载
/dev/sdb2 on /media/sdb2 type ext4 (ro) #/dev/sdb2已挂载
[root@Cloud ~]#umount /dev/sdb1 #卸载 指定挂载设备的方式
[root@Cloud ~]#umount /media/sdb2 #卸载 指定挂载点的方式
[root@Cloud ~]#mount
/dev/mapper/vg0-root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
/dev/mapper/vg0-usr on /usr type ext4 (rw)
/dev/mapper/vg0-var on /var type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) #已取消挂载!

查看内核追踪到的已挂载的所有设备:

cat /proc/mounts

[root@Cloud /media/sdb2]#cat /proc/mounts  #查看内核追踪到的已挂载的所有设备
rootfs / rootfs rw 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
devtmpfs /dev devtmpfs rw,relatime,size=938840k,nr_inodes=234710,mode=755 0 0
devpts /dev/pts devpts rw,relatime,gid=5,mode=620,ptmxmode=000 0 0
tmpfs /dev/shm tmpfs rw,relatime 0 0
/dev/mapper/vg0-root / ext4 rw,relatime,barrier=1,data=ordered 0 0
/proc/bus/usb /proc/bus/usb usbfs rw,relatime 0 0
/dev/sda1 /boot ext4 rw,relatime,barrier=1,data=ordered 0 0
/dev/mapper/vg0-usr /usr ext4 rw,relatime,barrier=1,data=ordered 0 0
/dev/mapper/vg0-var /var ext4 rw,relatime,barrier=1,data=ordered 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw,relatime 0 0
/etc/auto.misc /misc autofs rw,relatime,fd=7,pgrp=1932,timeout=300,minproto=5,maxproto=5,indirect 0 0
-hosts /net autofs rw,relatime,fd=13,pgrp=1932,timeout=300,minproto=5,maxproto=5,indirect 0 0
/dev/sdb1 /media/sdb1 ext3 rw,relatime,errors=continue,barrier=1,data=ordered 0 0
/dev/sdb2 /media/sdb2 ext4 ro,relatime,barrier=1,data=ordered 0 0

[root@Cloud /media/sdb2]#mount #查看当前系统挂载的所有挂载信息
/dev/mapper/vg0-root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
/dev/mapper/vg0-usr on /usr type ext4 (rw)
/dev/mapper/vg0-var on /var type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/sdb1 on /media/sdb1 type ext3 (rw)
/dev/sdb2 on /media/sdb2 type ext4 (ro)

[root@Cloud /media/sdb2]#cat /etc/mtab #查看/etc/fstab中的挂载信息
/dev/mapper/vg0-root / ext4 rw 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
devpts /dev/pts devpts rw,gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs rw 0 0
/dev/sda1 /boot ext4 rw 0 0
/dev/mapper/vg0-usr /usr ext4 rw 0 0
/dev/mapper/vg0-var /var ext4 rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
/dev/sdb1 /media/sdb1 ext3 rw 0 0
/dev/sdb2 /media/sdb2 ext4 ro 0 0

除了手动挂载还可以自动挂载 ,只要把你需要挂载的路径写入/etc/fstab中再使用mount -a 就可以直接挂载上。

[root@Cloud ~]#vim /etc/fstab 

/dev/mapper/vg0-root    /                       ext4    defaults        1 1

UUID=86a42a62-9313-4445-a9d3-89017b8b3eee /boot       ext4    defaults        1 2

/dev/mapper/vg0-usr     /usr                    ext4    defaults        1 2

/dev/mapper/vg0-var     /var                    ext4    defaults        1 2

/dev/mapper/vg0-swap    swap                    swap    defaults        0 0

tmpfs                   /dev/shm             tmpfs   defaults        0 0

devpts                  /dev/pts            devpts  gid=5,mode=620  0 0

sysfs                   /sys               sysfs   defaults        0 0

proc                    /proc              proc    defaults        0 0

/dev/cdrom               /media               iso9660 defaults        0 0

/etc/fstab 每行定义一个要挂载的文件系统;

 要挂载的设备或伪文件系统

 挂载点

 文件系统类型

 挂载选项

 转储频率

 自检次序

 要挂载的设备或伪文件系统:

设备文件、LABEL(LABEL="")、UUID(UUID="")、伪文件系统名称(proc,

sysfs)

 挂载选项: defaults默认权限有:rw, suid, dev, exec, auto, nouser, and async.

 转储频率: 0:不做备份

       1:每天转储

       2:每隔一天转储

 自检次序: 0:不自检

       1:首先自检;一般只有rootfs才用1

[root@localhost /run/user/0]#vim /etc/fstab #自动挂载  权限以,分隔
# /etc/fstab
# Created by anaconda on Tue Jul 26 08:01:18 2016
#
# 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=62e9e57b-3452-4314-8567-85566ca642dc /        xfs     defaults        0 0
UUID=bb3ff6b4-e9c3-4090-b968-5affdb57782e /boot      xfs     defaults        0 0
UUID=366cf2a1-0923-4d99-bc20-35d93082ac3a /usr      xfs     defaults        0 0
UUID=58be63b5-585a-49e7-a8c2-b9b49cf44860 swap       swap    defaults        0 0
LABEL=MYDATA                /MYDATA    ext4    defaults,noexec,noatime 0 0 #以,分隔
/dev/sdb2                 swap      swap    defaults        0 0

交换分区

交换分区是系统RAM的补充

基本设置包括:

•创建交换分区或者文件

•使用mkswap写入特殊签名

•在/etc/fstab文件中添加适当的条目

•使用swapon -a 激活交换空间

启用:swapon

swapon[OPTION]… [DEVICE]

-a:激活所有的交换分区;

-p PRIORITY:指定优先级

/etc/fstab:pri=value

禁用:swapoff[OPTION]… [DEVICE]

[root@localhost /]#blkid /dev/sdb2 #显示/dev/sdb2为swap文件系统
/dev/sdb2: UUID="f9d7f3dd-8d0e-484f-b2b0-b2ffad755b31" TYPE="swap" 
[root@localhost /]#free -h #现在的swap分区大小为2G
              total        used        free      shared  buff/cache   available
Mem:           1.9G        119M        1.7G         13M        152M        1.7G
Swap:          2.0G          0B        2.0G
[root@localhost /]#swapon /dev/sdb2 #启用swap
[root@localhost /]#free -h #成功咯
              total        used        free      shared  buff/cache   available
Mem:           1.9G        119M        1.7G         13M        152M        1.7G
Swap:          3.0G          0B        3.0G

关于查看磁盘和分区命令 free 、du、 df、

内存空间使用状态:

free [OPTION]

-m: 以MB为单位

-g: 以GB为单位

-h:人性化显示

[root@localhost /]#free #默认显示
              total        used        free      shared  buff/cache   available
Mem:        2033556      122220     1754992       13356      156344     1757476
Swap:       3146744           0     3146744
[root@localhost /]#free -h #人性化显示
              total        used        free      shared  buff/cache   available
Mem:           1.9G        119M        1.7G         13M        152M        1.7G
Swap:          3.0G          0B        3.0G
[root@localhost /]#free -m #以M单位显示
              total        used        free      shared  buff/cache   available
Mem:           1985         119        1713          13         152        1716
Swap:          3072           0        3072

文件系统空间占用等信息的查看工具:

df[OPTION]… [FILE]…

-H 以1000计算

-T 文件系统类型

-h: 人性化显示

-i:inode计数

-P: 以Posix兼容的格式输出

[root@localhost /]#df 默认输出

Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda2       41922560  221652  41700908   1% /
devtmpfs         1002256       0   1002256   0% /dev
tmpfs            1016776       0   1016776   0% /dev/shm
tmpfs            1016776   13344   1003432   2% /run
tmpfs            1016776       0   1016776   0% /sys/fs/cgroup
/dev/sda3       20961280 2692500  18268780  13% /usr
/dev/sdb1       10254840   12310  10024624   1% /MYDATA
/dev/sda1         496300  140496    355804  29% /boot
tmpfs             203356       4    203352   1% /run/user/0
[root@localhost /]#df -i #显示inode节点的使用率
Filesystem       Inodes IUsed    IFree IUse% Mounted on
/dev/sda2      41943040  6582 41936458    1% /
devtmpfs         250564   399   250165    1% /dev
tmpfs            254194     1   254193    1% /dev/shm
tmpfs            254194   522   253672    1% /run
tmpfs            254194    13   254181    1% /sys/fs/cgroup
/dev/sda3      20971520 88746 20882774    1% /usr
/dev/sdb1        655360    12   655348    1% /MYDATA
/dev/sda1        499712   329   499383    1% /boot
tmpfs            254194     2   254192    1% /run/user/0
[root@localhost /]#df -h #人性化显示
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        40G  217M   40G   1% /
devtmpfs        979M     0  979M   0% /dev
tmpfs           993M     0  993M   0% /dev/shm
tmpfs           993M   14M  980M   2% /run
tmpfs           993M     0  993M   0% /sys/fs/cgroup
/dev/sda3        20G  2.6G   18G  13% /usr
/dev/sdb1       9.8G   13M  9.6G   1% /MYDATA
/dev/sda1       485M  138M  348M  29% /boot
tmpfs           199M  4.0K  199M   1% /run/user/0

查看某目录总体空间占用状态:

du [OPTION]… DIR

-h: human-readable :人性化咯

-s:summary:总输出

[root@localhost ~]#du -h /boot #人性化显示数据带下
4.0K/boot/grub
0/boot/grub2/themes/system
0/boot/grub2/themes
2.4M/boot/grub2/i386-pc
3.3M/boot/grub2/locale
2.5M/boot/grub2/fonts
8.1M/boot/grub2
113M/boot
[root@localhost ~]#du -sh /boot #目录总大小,不展开
113M/boot

原创文章,作者:ladsdm,如若转载,请注明出处:http://www.178linux.com/43832

(0)
上一篇 2016-09-07 14:45
下一篇 2016-09-07 15:06

相关推荐

  • bash之运算、测试、if语句及for循环语句

      一、逻辑运算         布尔运算:真、假         与运算:                 真 && 真 = 真       …

    Linux干货 2015-05-25
  • HTTP协议

    HTTP协议   HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。HTTP协议工作于客户端-服务端架构之上。浏览器作为HT…

    Linux干货 2017-02-15
  • Linux基础之—用户和组管理

    导言:   我们在使用计算机资源时为了资源的合理规划和利用,同时为了实现更好的管理,需要在计算机里有一个使用资源的凭证,这个凭证就是用户,下面就来介绍Linux用户和组管理。 1.资源分派:     资源的分派可以分为三个步骤,分别是    (1)认证(Authertication)   &nbsp…

    Linux干货 2016-08-04
  • http加速器varnish

    一、web缓存概述       缓存,又称加速器,用于加速运行速度较快的设备与较慢设备之间的通信。基于程序的运行具有局部性特征其能实现加速的功能:       时间局部性:一个数据被访问之后,在随后较短的时间内有可能被访问。   &nbsp…

    2016-11-18
  • rpm包管理与yum简要用法

    linux程序包管理 程序包:源代码 –> 目标二进制格式(二进制程序、库文件、配置文件、帮助文件)–> 组织成一个或有限的几个包文件 程序包管理器:        debian –> dpkg   以“.deb”结尾 &nb…

    Linux干货 2016-08-22