Linux基础之挂载详解(mount,umount及开机自动挂载)

挂载概念简述

根文件系统之外的其他文件要想能够被访问,都必须通过“关联”至根文件系统上的某个目录来实现,此关联操作即为“挂载”,此目录即为“挂载点”,解除此关联关系的过程称之为“卸载

1.挂载:根文件系统外通过关联至根文件系统上的某个目录来实现访问

2.挂载点:mount_point,用于作为另一个文件系统的访问入口;

(1) 事先存在;

(2) 应该使用未被或不会被其它进程使用到的目录;

(3) 挂载点下原有的文件将会被隐藏;




挂载与卸载

挂载方法:mount DECE MOUNT_POINT

    mount:通过查看/etc/mtab(文章最后会对/etc/mtab有个解释)文件显示当前系统已挂载的所有设备

命令使用格式: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:指定要挂载的设备上的文件系统类型;

    -r: readonly,只读挂载;

    -w: read and write, 读写挂载;

    -n: 不更新/etc/mtab; 

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

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

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

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


注意:查看内核追踪到的已挂载的所有设备:cat /proc/mounts

………………………………………………………………………………………………………………………

    -o options:(挂载文件系统的选项)

      async:异步模式;

      sync:同步模式;

      atime/noatime:包含目录和文件;

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

      auto/noauto:是否支持自动挂载

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

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

      suid/nosuid:是否支持在此文件系统上使用特殊权限

      remount:重新挂载

      ro:只读

      rw:读写

      user/nouser:是否允许普通用户挂载此设备

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

注意:上述选项可多个同时使用,彼此使用逗号分隔;

 默认挂载选项:defaults:rw, suid, dev, exec, auto, nouser, and async

上述信息可以通过查看超级块信息看到,这里不再对其进行演示。

………………………………………………………………………………………………………………………

命令演示

1、指定文件系统将块设备挂载至指定空文件夹内:演示内容:1)没有指定文件系统,命令是否能正确执行;2)指定错误文件系统,命令是否能正确执行;3)挂载点有内容的文件夹,查看被挂载后其内容是否消失。

[root@localhost /]# fdisk -l
...
   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2099199     1048576   83  Linux
/dev/sdb2         2099200     4196351     1048576    5  Extended
/dev/sdb5         2101248     2306047      102400   83  Linux
/dev/sdb6         2308096     2512895      102400   83  Linux
/dev/sdb7         2514944     2719743      102400   83  Linux
/dev/sdb8         2721792     2926591      102400   83  Linux
...
[root@localhost /]# mount /dev/sdb8 /device
[root@localhost /]# df
文件系统                   1K-块    已用     可用 已用% 挂载点
/dev/mapper/centos-root 18307072 4724136 13582936   26% /
devtmpfs                  485368       0   485368    0% /dev
tmpfs                     500664      84   500580    1% /dev/shm
tmpfs                     500664    7160   493504    2% /run
tmpfs                     500664       0   500664    0% /sys/fs/cgroup
/dev/sda1                 508588  142620   365968   29% /boot
tmpfs                     100136      20   100116    1% /run/user/42
tmpfs                     100136       0   100136    0% /run/user/0
/dev/sdb8                  98988    5280    93708    6% /device
[root@localhost /]# blkid /dev/sdb8
/dev/sdb8: UUID="a3c4bf06-3695-45e8-8a07-a063498f0578" TYPE="xfs" 
[root@localhost /]# umount /device
[root@localhost /]# mount -t ext2 /dev/sdb8 /device
mount: 文件系统类型错误、选项错误、/dev/sdb8 上有坏超级块、
       缺少代码页或助手程序,或其他错误
[root@localhost /]# cd /device/
[root@localhost device]# ll
总用量 0
[root@localhost device]# touch 11 22
[root@localhost device]# ll
总用量 0
-rw-r--r--. 1 root root 0 8月  23 10:14 11
-rw-r--r--. 1 root root 0 8月  23 10:14 22
[root@localhost device]# ll
总用量 0
[root@localhost device]# ll -a
总用量 4
drwxr-xr-x.  2 root root    6 8月  23 09:27 .
dr-xr-xr-x. 21 root root 4096 8月  23 09:29 ..
[root@localhost device]# cd ..
[root@localhost /]# umount /device/
[root@localhost /]# cd /device/
[root@localhost device]# ll
总用量 0
-rw-r--r--. 1 root root 0 8月  23 10:14 11
-rw-r--r--. 1 root root 0 8月  23 10:14 22

通过上述演示,说明了如下事实:1)没有指定文件系统,块设备也可以正常挂载;2)指定与块设备不一致的文件系统类型则命令报错;3)挂载点有内容的文件夹,在挂载后内容消失,卸载后内容重现,也就是说挂载后会将原文件内容掩盖,但并不对其进行其他操作。

………………………………………………………………………………………………………………………

2、演示内容:1)指定卷标并以只读方式挂载;2)对目录进行挂载操作,查看其与硬链接与软链接有何不同。

[root@localhost device]# blkid /dev/sdb6
/dev/sdb6: LABEL="sdb6" UUID="8284450c-8cb9-45d7-a8b8-ed9ed9ef9e52" TYPE="xfs" 
[root@localhost device]# mount -L 'sdb6' -r /device/
[root@localhost device]# touch /device/33
touch: 无法创建"/device/33": 只读文件系统
[root@localhost device]# umount /device/
[root@localhost /]# mount -B /etc/ /device/
[root@localhost /]# ll -i /
总用量 64
    11341 lrwxrwxrwx.   1 root root    7 7月  19 23:54 bin -> usr/bin
      128 dr-xr-xr-x.   4 root root 4096 8月   2 10:09 boot
        3 drwxr-xr-x.  19 root root 3300 8月  23 09:10 dev
 33554561 drwxr-xr-x. 129 root root 8192 8月  23 09:38 device
 33554561 drwxr-xr-x. 129 root root 8192 8月  23 09:38 etc
      158 drwxr-xr-x.  42 root root 4096 8月  22 09:00 home

通过上述演示,说明了如下事实:1)指定卷标挂载可行,以只读方式挂载后,无法对挂载点中的内容进行修改、创建等操作;2)目录的挂载实质上是硬链接,挂载后可以对里面的文件内容进行修改与删除。

注:文件夹的挂载在df中并不显示

………………………………………………………………………………………………………………………

卸载命令umount

命令使用格式:

     # umount DEVICE

     # umount MOUNT_POINT

上面已经演示过umount的使用

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

命令使用格式:

     # fuser -v MOUNT_POINT

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

     # fuser -km MOUNT_POINT




交换分区swap

这里介绍下交换分区,通过实验演示交换分区的创建及挂载

挂载交换分区:

启用:swapon

   swapon [OPTION]... [DEVICE]

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

    -p PRIORITY:指定优先级;

禁用swapoff [OPTION]... [DEVICE]

实验演示

1、交换分区的创建:1)新创建一分区,2)修改新分区的类型,改为swap号码为82,3)格式化为swap

[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): l
添加逻辑分区 9
起始 扇区 (2928640-4196351,默认为 2928640):
将使用默认值 2928640
Last 扇区, +扇区 or +size{K,M,G} (2928640-4196351,默认为 4196351):+100M
分区 9 已设置为 Linux 类型,大小设为 100 MiB
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xd391e822
   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2099199     1048576   83  Linux
/dev/sdb2         2099200     4196351     1048576    5  Extended
/dev/sdb5         2101248     2306047      102400   83  Linux
/dev/sdb6         2308096     2512895      102400   83  Linux
/dev/sdb7         2514944     2719743      102400   83  Linux
/dev/sdb8         2721792     2926591      102400   83  Linux
/dev/sdb9         2928640     3133439      102400   83  Linux
命令(输入 m 获取帮助):t
分区号 (1,2,5-9,默认 9):9
Hex 代码(输入 L 列出所有代码):82
已将分区“Linux”的类型更改为“Linux swap / Solaris”
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xd391e822
   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2099199     1048576   83  Linux
/dev/sdb2         2099200     4196351     1048576    5  Extended
/dev/sdb5         2101248     2306047      102400   83  Linux
/dev/sdb6         2308096     2512895      102400   83  Linux
/dev/sdb7         2514944     2719743      102400   83  Linux
/dev/sdb8         2721792     2926591      102400   83  Linux
/dev/sdb9         2928640     3133439      102400   82  Linux swap / Solaris
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# mkswap /dev/sdb9
正在设置交换空间版本 1,大小 = 102396 KiB
无标签,UUID=74bf2766-a01b-48ea-9082-2fad6b8e06a9

2、挂载交换分区:启用与禁用

[root@localhost ~]# free
              total        used        free      shared  buff/cache   available
Mem:        1001332      101756      535892       13424      363684      720328
Swap:       2097148           0     2097148
[root@localhost ~]# swapon /dev/sdb9 
[root@localhost ~]# free
              total        used        free      shared  buff/cache   available
Mem:        1001332      101716      535924       13424      363692      720368
Swap:       2199544           0     2199544
[root@localhost ~]# swapoff /dev/sdb9 
[root@localhost ~]# free
              total        used        free      shared  buff/cache   available
Mem:        1001332      102492      535152       13424      363688      719592
Swap:       2097148           0     2097148




实验涉及到的命令小结:       

  内存空间使用状态:free [OPTION]

    -m: 以MB为单位

    -g: 以GB为单位

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

    -h: human-readable

    -i:inodes instead of blocks

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

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

  du [OPTION]... DIR

    -h: human-readable

    -s: summary

命令总结:mount, umount, free, df, du, swapon, swapoff, fuser




开机自动挂载

如果我们想实现开机自动挂载某设备,只要修改/etc/fstab文件即可。

文件挂载的配置文件/etc/fstab

wKiom1e7vF_iNNTXAAAo2-XXpTo662.gif

查看此文件可知

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

其每行的格式如下

要挂载的设备或伪文件系统  挂载点  文件系统类型  挂载选项 转储频率 自检次序

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;




/etc/fstab和/etc/mtab的区别

   /etc/fstab文件的作用

记录了计算机上硬盘分区的相关信息,启动 Linux 的时候,检查分区的 fsck 命令,和挂载分区的 mount 命令,都需要 fstab 中的信息,来正确的检查和挂载硬盘。 

  /etc/mtab文件的作用: 

   先看它的英文是: 

     This changes continuously as the file /proc/mount changes. In other words, when filesystems are mounted and unmounted, the change is immediately reflected in this file. 

     记载的是现在系统已经装载的文件系统,包括操作系统建立的虚拟文件等;而/etc/fstab是系统准备装载的。 每当 mount 挂载分区、umount 卸载分区,都会动态更新 mtab,mtab 总是保持着当前系统中已挂载的分区信息,fdisk、df 这类程序,必须要读取 mtab 文件,才能获得当前系统中的分区挂载情况。当然我们自己还可以通过读取/proc/mount也可以来获取当前挂载信息 



/etc/fstab和/etc/mtab的区别  此内容参看如下博客

http://blog.163.com/qimeizhen8808@126/blog/static/165119518201281892121501/

本文出自 “张帆-IT的奇幻漂流” 博客,转载请与作者联系!

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。
mha下载地址,需要翻墙 https://code.google.com/p/mysql-master-ha/ 管理软件 mha4mysql-manager-0.52-0.noarch.rpm 节点软件 mha4mysql-node-0.52-0.noarch.rpm 环境介绍Centos6.7X64192.168.30.210monitor192.168.30.211db1(master)192.168.30.212db2(备master)192.168.30.213db3192.168.30.214d
我在刚开始接触IO重定向时,经历了由懂到不懂然后了然的过程,当然现在的我也不可能说对于IO重定向就彻底懂了,只是在解决一些问题或实现某些结果时不会因为IO重定向的问题而迷惑了。 什么叫IO重定向? 为了解释这个问题,我们要先明白什么叫IO,什么叫做程序的数据流。 什么叫IO? 在Linux或计算机领域IO指的是信息的输入和输出。 在Linux中可用于输入的设备:文件(Linux中一切皆文件) 具体包括:键盘设备、文件系统上的常规文件、网卡等。 在Linux中用于输出的设备:文件 具体包括:显示器、文件系统
认真的测试过网上的大多数文章和版本,真正能一次性测试通过的文章太少了,需要反复的推敲,反复的查阅资料,才能真正的测试成功,所以,在此背景下,总结了Rsync,加上自己的理解分享出来; 1、 原理篇 Rsync,故名思议,是一个远程数据同步工具,可以镜像整个目录树和文件系统,也可以保持源文件的权限,时间和软硬链接,可以优化数据,文件重复数据的删除,也可以在LAN/WAN之间快速的同步多台主机的数据,这主要得益于Rsync的压缩和Rsync的核心算法,其算法,是本地和远程两台主机之间的文件达到同步并保持一致,

运维监控平台之ganglia - 2016-08-29 17:08:10

1、ganglia简介 Ganglia 是一款为 HPC(高性能计算)集群而设计的可扩展的分布式监控系统,它可以 监视和显示集群中的节点的各种状态信息,它由运行在各个节点上的 gmond 守护进程来采 集 CPU 、内存、硬盘利用率、 I/O 负载、网络流量情况等方面的数据,然后汇总到 gmetad 守护进程下,使用 rrdtool 存储数据,最后将历史数据以曲线方式通过 PHP 页面呈现。 Ganglia 的特点如下: 良好的扩展性,分层架构设计能够适应大规模服务器集群的需要 负载开销低,支持高并发 广
本文主要介绍zabbix在linux及windows下客户端的安装,网卡流量监控配置。 一、linux客户端安装 1. 编译软件 #useraddzabbix-s/sbin/nologin-M#./configure--prefix=/usr/local/zabbix-agent--enable-agent#makemakeinstall 2. 修改 agetn 配置 Server=127.0.0.1,192.168.115.31#本机即是agent和server127.0.0.1地址不可删除Server
通过定时执行python脚本,可以实现定期批量访问网站,如果发现网站打不开,第一时间发邮件到管理员邮箱进行预警 这里用的是python3.5 需要安装的插件: smtplib:发邮件需要用到 pycurl:访问网站时会需要用到 linecache:在读取txt网站清单时需要用到 具体思路: python程序从txt里面批量读取到网站的信息,通过Curl.py模拟浏览器去访问网站,并且把访问的结果写入到以自己的网站名称-日期.txt格式的文件中记录;有几种情况: 1、如果发现打不开了,直接发邮件提示网站已经
vSphere部署系列之09——HA和DRS群集管理 群集(Cluster)是将多台物理主机组织起来,群集管理其中所有主机的资源,形成一个大的资源池。群集中的所有的虚拟机可在池中的任意主机上自由移动,并且群集可做到快速扩容和HA故障冗余。群集的前提条件是要有共享存储,所有虚拟机及其配置文件必须驻留在共享存储器上。 在前面的博文章节中,已搭建了比较基础的实验环境,实现了vCenter对ESXi主机的管理,网络管理、共享存储管理。在这种情况下,各物理主机之间的计算资源(CPU、内存)是完全独立的,在某台主机出
昨天提交代码的时候自己的eclipse抽风了一下,发现自己的Web App Libraries里面的Jar包全部都不会自动加入到Web App Libraries中,导致之前配置的项目全都要重新手动配置,网上搜了一搜,找到了个解决方法: 参考链接http://blog.csdn.net/zhengzhb/article/details/6956130 定位到项目根目录中.settings里面的 org.eclipse.wst.common.component, 如下内容贴到里面保存一下,就能检测到WEB-

Linux NFS自动挂载autofs配置 - 2016-08-29 17:08:21

一、基于Linux下NFS文件系统的自动挂载方式, 前期准备环境两台Linux服务器: 准备一台NFS服务器端(系统环境centos6.5,ip地址192.168.100.100) 准备需要挂载NFS服务端的NFS客户端(系统环境centos6.5,ip地址192.168.100.101) 实施: 现在server端安装NFS保证能正常访问,我们这里通过yum工具安装即可 [root@nfsserver ~]# yum install nfs-utils rpcbind -y 通过修改NFS配置,共享/d
文本处理工具grep,正则表达式在Linux学习过程中很容易出现困惑与障碍的地方,这里分享下学习这方面内容的一些感受。 grep Global search REgular expression and Print out the line 作用:文本搜索工具,根据用户指定的‘ 模式(过滤条件) ’对目标文本逐行进行匹配检查;打印匹配到的行; ‘模式’:由 正则表达式 的元字符及文本字符所编写出的过滤条件。 grep [OPTIONS] PATTERN [FILE...] grep [OPTIONS] [