概述

mount命令用来挂载Linux系统外的文件。

Linux 中所有的存储设备都必须挂载之后才能使用,包括硬盘、U 盘和光盘(swap 分区是系统直接调用的,所以不需要挂载)。不过,硬盘分区在安装时就已经挂载了,而且会在每次系统启动时自动挂载,所以不需要手工参与。但是在 Linux 系统中要想使用光盘和 U 盘,就需要通过一些挂载命令来实现。

挂载是指把硬盘分区(如分区 /dev/sdb1,其实指的是文件系统)和挂载点(已经建立的空目录)联系起来的过程。这里需要注意,挂载点必须是目录,而且原则上应该使用空目录作为挂载点。
如果不使用空目录作为挂载点,而使用已经有数据的目录(如 /etc/ 目录)作为挂载点,则原先 /etc/ 目录下的数据就查找不到了,在 /etc/ 目录中只能看到新的分区中的数据。这是因为 /etc/ 目录原先并不是单独的分区,而是 / 分区的子目录,所以 /etc/ 目录中的数据实际上保存在 / 分区的 block 中。
但是,现在给 /etc/ 目录单独分区了,再向 /etc/ 目录中保存数据,就会保存在 /etc/ 目录的新分区的 block 中,那么原始数据当然就不能看到了。如果还想访问原始数据,则只能把新分区卸载掉。

mount命令

mount命令的基本格式

[root@localhost ~]# mount [-l] 

mount命令会查询系统中已经挂载的设备,-l会显示卷标名称

[root@localhost ~]# mount -a

mount会依据配置文件/etc/fstab的内容,自动挂载

[root@localhost ~]# mount [-t 文件系统] [-L 卷标名] [-o 特殊选项] 设备文件名 挂载点

选项:

选项 选项说明
-t  文件系统:加入文件系统类型来指定挂载的类型,可以是 ext3、ext4、iso9660 等文件系统
-L 卷标名:挂载指定卷标的分区,而不是安装设备文件名挂载
-o

特殊选项:可以指定挂载的额外选项,比如读写权限、同步/异步等,如果不指定,则默认值生效。

具体的特殊选项参见表 mount 命令挂载特殊选项

mount 命令挂载特殊选项

 mount 命令挂载特殊选项 说 明
atime/noatime 更新访问时间/不更新访问时间。在访问分区文件时,是否更新文件的访问时间,默认为更新
async/sync 异步/同步,默认为异步
auto/noauto 自动/手动。如 mount -a 命令执行时,是否会自动安装 /etc/fstab 文件内容挂载,默认为自动
defaults 定义默认值,相当于 rw、suid、dev、exec、auto、nouser、async 这 7 个选项
exec/noexec 执行/不执行。设定是否允许在文件系统中执行可执行文件,默认是允许
remount 重新挂载已经挂载的文件系统,一般用于指定修改特殊权限
rw/ro 读写/只读。文件系统挂载时,是否拥有读写权限,默认是 rw
suid/nosuid 具有/不具有 SetUID 权限。设定文件系统是否拥有 SetUID 和 SetGID 权限,默认是拥有
user/nouser 允许/不允许普通用户挂载。设定文件系统是否允许普通用户挂载,默认是不允许,只有 root 可以挂载分区
usrquota 写入代表文件系统支持用户磁盘配额,默认不支持
grpquota 写入代表文件系统支持组磁盘配额,默认不支持


1.查看系统中已经挂载的文件系统

mount命令查看系统中已经挂载的文件系统,注意有虚拟文件系统,命令结果表示:将/dev/sda3分区挂载到/目录,文件系统是ext4,权限是读写
[root@localhost ~]# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=918940k,nr_inodes=229735,mode=755)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/sda1 on /boot type ext4 (rw,relatime,seclabel,data=ordered)

2.修改特殊权限

修改权限使用户不能执行所有的可执行文件,我们查看到/boot分区已经被挂载了,而且采用的是defaults选项,那么我们重新挂载分区,并采用noexec权限禁止执行文件执行,看看会出现什么情况(注意不要用/分区做实验,否则系统命令也就不能执行了)

[root@localhost ~]# mount
…省略部分输出…
/dev/sda1 on /boot type ext4 (rw)
…省略部分输出…
[root@localhost ~]# mount -o remount, noexec /boot #重新挂载/boot分区,并使用noexec权限
[root@localhost sh]# cd /boot/

写一个shell 并执行

[root@localhost boot]#vi hello.sh
#!/bin/bash
echo "hello!!"
[root@localhost boot]# chmod 755 hello.sh
[root@localhost boot]#./hello.sh
-bash:./hello.sh:权限不够

虽然赋予了hello.sh执行权限,但是仍然无法执行

3.挂载分区

[root@localhost ~]# mkdir /mnt/disk1 #建立挂载点目录
[root@localhost ~]# mount /dev/sdb1 /mnt/disk1 #挂载分区

/dev/sdb1 分区还没有被划分。我们在这里只看看挂载分区的方式,非常简单,甚至不需要使用"-text4"命令指定文件系统,因为系统是可以自动检测的。

挂载光盘

在 Windows 中如果想要使用光盘,则只需把光盘放入光驱,单击使用即可。但是在 Linux 中除了要把光盘放入光驱,而且必须在挂载后才能正确使用。还要记得用完光盘后也不能像 Windows —样,直接弹出光驱取出光盘,而必须先卸载才能取出光盘。

挂载命令 :

[root@localhost ~]# mkdir/mnt/cdrom/  #建立挂载点
[root@localhost ~]# mount -t iso9660 /dev/cdrom /mnt/cdrom/ #挂载光盘

光盘的文件系统是 iso9660,不过这个文件系统可以省略不写,系统会自动检测,然后通过mount命令查看已经挂载的设备。

我们已经知道挂载就是把光驱的设备文件和挂载点连接起来。挂载点 /mnt/cdrom 是我们手工建立的空目录,也可以建立 /media/cdrom 作为挂载点,只要是已经建立的空目录都可以作为挂载点。那么 /dev/cdrom 就是光驱的设备文件名,不过注意 /dev/cdrom 只是一个软链接。 命令如下:

[root@localhost ~]#ll /dev/cdrom
lrwxrwxrwx 1 root root 3 1月31 01:13/dev/cdrom ->sr0

/dev/cdrom 的源文件是 /dev/sr0。/dev/sr0 是光驱的真正设备文件名,代表 SCSI 接口或 SATA 接口的光驱,所以刚刚查询挂载时看到的光驱设备文件命令是 /dev/sr0。也就是说,挂载命令也可以写成这样:

[root@localhost ~]# mount /dev/sr0 /mnt/cdrom/

其实光驱的真正设备文件名是保存在 /proc/sys/dev/ cdrom/info 文件中的,所以可以通过查看这个文件来查询光盘的真正设备文件名,命令如下:

[root@localhost ~]# cat /proc/sys/dev/cdrom/info
CD-ROM information, ld: cdrom.c 3.20 2003/12/17
drive name: sr0
…省略部分输出…

挂载 U 盘

挂载 U 盘和挂载光盘的方式是一样的,只不过光盘的设备文件名是固定的(/dev/sr0 或 /dev/cdrom),而 U 盘的设备文件名是在插入 U 盘后系统自动分配的。因为U盘使用的是硬盘的设备文件名,而每台服务器上插入的硬盘数量和分区方式都是不一样的,所以 U 盘的设备号需要单独检测与分配,以免和硬盘的设备文件名产生冲突。U 盘的设备文件名是系统自动分配的,我们只要查找出来然后挂载可以了。
首先把 U 盘插入 Linux 系统中(注意:如果是虚拟机,则需要先把鼠标点入虚拟机再插入 U 盘),然后就可以使用 fdisk 命令查看 U 盘的设备文件名了。命令如下:

[root@localhost ~]# fdisk -l
Disk /dev/sda: 21.5GB, 21474836480 bytes #系统硬盘
…省略部分输出…
Disk/dev/sdb: 8022 MB, 8022654976 bytes #这就是识别的U盘,大小为8GB
94 heads, 14 sectors/track, 11906 cylinders
Units = cylinders of 1316 * 512 = 673792 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 1 11907 7834608 b W95 FAT32 #系统给U盘分配的设备文件名

查看到 U 盘的设备文件名,接下来就要创建挂载点并挂在了。命令如下:

[root@localhost ~]# mkdir /mnt/usb
[root@localhost ~]# mount -t vfat /dev/sdb1 /mnt/usb/

挂载U盘。因为是Windows分区,所以是vfat文件系统格式

卸载文件系统命令:umount

光盘和 U 盘使用完成后,在取出之前都要卸载。不过,硬盘分区是否需要卸载取决于你下次是否还需要使用,一般硬盘分区不用卸载。

卸载命令如下:

[root@localhost ~]# umount 设备文件名或挂载点
[root@localhost ~]# umount /mnt/usb #卸载U盘
[root@localhost ~]# umount /mnt/cdrom #卸载光盘
[root@localhost ~]# umount /dev/sr0 #命令加设备文件名同样是可以卸载的

卸载命令后面既可以加设备文件名也可以加挂载点,不过只能加一个,如果加了两个,如"umount /dev/sr0 /mnt/cdrom",就会对光驱卸载两次,当然卸载第二次的时候就会报错。另外,我们在卸载时有可能会出现"设备正忙"情况,也可能是当前是在挂载目录里面,所以卸载时必须退出挂载目录。

Linux文件系统管理 挂载命令mount的更多相关文章

  1. Linux文件系统管理 常见命令df、du、fsck、dumpe2fs

    概述 Linux文件系统管理 常见命令df.du.fsck.dumpe2fs. 文件系统查看命令:df 通过 df 命令可以査看已经挂载的文件系统的信息包括设备文件名.文件系统总大小.已经使用的大小. ...

  2. Linux文件挂载命令mount

    在linux系统中硬盘.u盘.光驱等其他设备都需要挂载后才能正常使用.下面是对挂载命令mount使用方法的一些总结. 文件挂载命令mountmount [-t 文件系统类型][-L卷标名][-o特殊选 ...

  3. Linux文件系统管理命令(第二版)

    Linux文件系统管理命令 常用命令 1.df命令 查看分区使用情况 常用选项 -h 比较人性化 -m 以兆字节显示分区使用情况 显示信息: Mounted on:挂载点 Filesystem:对应的 ...

  4. linux 文件系统管理三部曲之三:挂载文件系统

    linux 文件系统管理三部曲之一:磁盘分区 linux 文件系统管理三部曲之二:创建文件系统 上面说明了,硬盘的划分和格式化,那么怎么使用,还没说,这里说一下,怎么使用创建好的文件系统. 使用文件系 ...

  5. Linux 文件系统管理

    Linux 文件系统管理 课程大纲  文件系统构成及命令  硬盘分区及管理  磁盘配额  备份与恢复   文件系统构成 /usr/bin ./bin:存放所有用户可以执行的命令 /usr/s ...

  6. Linux 学习 (七) 挂载命令 & 用户登陆查看

    Linux达人养成计划 I 学习笔记 挂载命令 mount:查询系统中已经挂载的设备 mount -a:根据配置文件 /etc/fstab 的内容,自动挂载 mount [-t 文件系统] [-o 特 ...

  7. linux文件查找find命令

    linux文件查找find命令 1.文件查找 基本介绍 在文件系统上查找符合条件的文件 linux上常见的文件查找工具:find命令 查找分类 实时查找 精确查找 基本语法 find  [option ...

  8. Linux系列教程(十八)——Linux文件系统管理之文件系统常用命令

    通过前面两篇博客,我们介绍了Linux系统的权限管理.Linux权限管理之ACL权限 介绍了通过设定 ACL 权限,我们为某个用户指定某个文件的特定权限,这在Linux只能对于一个文件只能有所有者权限 ...

  9. Linux常用命令学习4---(挂载命令mount umount、用户登陆查看和用户交互命令 w who last lastlog)

    紧接着上一篇Linux的命令行的学习:Linux学习3---(文件的压缩和解压缩命令zip unzip tar.关机和重启命令shutdown reboot……) 1.挂载命令     简介      ...

随机推荐

  1. RTT常用数据类型

    RTT常用数据类型定义在rtdef.h中 /* RT-Thread basic data type definitions */ typedef signed char rt_int8_t; /**& ...

  2. lamp环境编译安装curl扩展

    Linux编译安装php扩展包curl 1.curl,主要用于发送http请求,是php的一个扩展包. 2.安装过程: (1)curl下载:http://curl.haxx.se/download.h ...

  3. Eclipse 创建 Java 项目

    打开新建 Java 项目向导 通过新建 Java 项目向导可以很容易的创建 Java 项目.打开向导的途径有: 通过点击 "File" 菜单然后选择 New > Java P ...

  4. Spring 入门之-dao使用jdbcTemplate(注入过程)

    技巧:在为把dataSourc连接池注入到jdbcTemplate里面时,学到一招:按住CTRL 不松,点击相关类名,可以自动跳转或打开. 说明:主要过程, 1.创建UserDao和UserServi ...

  5. shell学习五十八天----/proc文件系统

    /proc文件系统 前言:linux中的/proc文件系统,由一组文件夹和文件组成,挂载(mount)与/proc文件夹下. /proc文件系统是一种虚拟文件系统,以文件系统文件夹和文件形式,提供一个 ...

  6. Linux下mongodb安装及数据导入导出教程

    Linux下mongodb安装及数据导入导出教程 #查看linux发行版本 cat /etc/issue #查看linux内核版本号 uname -r 一.Linux下mongodb安装的一般步骤 1 ...

  7. 初涉Quartz

    1.首先需要导入包,必须导入的包如下:      quartz-1.8.5.jar  commons-logging.jar  spring-core-3.0.5.RELEASE.jar  sprin ...

  8. UILabel标签文字过长时的显示方式

    lineBreakMode:设置标签文字过长时的显示方式. label.lineBreakMode = NSLineBreakByCharWrapping; //以字符为显示单位显示,后面部分省略不显 ...

  9. 非常实用的JavaScript小技巧

    使用!!操作符转换布尔值 有时候我们需要对一个变量查检其是否存在或者检查值是否有一个有效值,如果存在就返回true值.为了做这样的验证,我们可以使用!!操作符来实现是非常的方便与简单.对于变量可以使用 ...

  10. 用ElasticSearch搭建自己的搜索和分析引擎【转自腾讯Wetest】

    本文大概地介绍了ES的原理,以及Wetest在使用ES中的一些经验总结.因为ES本身涉及的功能和知识点非常广泛,所以这里重点挑出了实际项目中可能会用到,也可能会踩坑的一些关键点进行了阐述. 一 重要概 ...