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

单一文件系统不应该被重复挂载在不同的挂载点(目录)中;

单一目录不应该重复挂载多个文件系统;

作为挂载点的目录理论上应该都是空目录,如果用来挂载的目录不是空的,挂载文件系统之后,原目录下的东西就会暂时消失。


mount命令

mount [-option] 设备文件名挂载点

-a  依照配置文件/etc/fstab的数据将所有未挂载的设备都挂载上来

-l  只输入mount命令只会显示当前挂载的信息,加上-l会列出label名称

-t  加上文件系统指定欲挂载的类型

-n  在默认的情况下,系统会将实际挂载的情况实时写入/etc/mtab中,以利其他程序的运行,但在某些情况下为了避免某些问题,会刻意不写入,输入-n就能达到需求。

-L  系统可以利用卷标来进行挂载

-o  后面接一些额外的参数。

ro,,rw 挂载文件系统成为只读(ro)或可读写(rw)

async,sync 使用同步写入(sync)或者异步写入(async)

auto,noauto 允许此分区被mount –a 来自动挂载(auto)

dev,nodev 是否允许此分区上可创建文件设备(dev)

suid,nosuid 是否允许此分区上含有suid/sgid的文件格式

exec,noexec是否允许此分区上拥有可执行的binary文件

user,nouser  是否允许此分区让任何用户执行mount,一般来说,只有root可以执行,下达user参数之后,一般user也能执行

defaults     默认值为rw,suid,dev,exec,auto,nouser,async

remount    重新挂载,系统出错,重新更新参数时使用

挂载设备_linux 挂载


挂载不特定目录

当有些程序不支持符号连接时,有时候需要将某个目录挂载到特定目录中

例如将/home挂载到/mnt/home中,使用mount –bind命令将某个目录挂载到其他目录

挂载设备_linux 挂载_02



卸载设备文件

umount [-fn] 设备文件名或挂载点

-f 强制卸载

-n 不更新/etc/mtab的情况下卸载


例如将刚挂载/mnt/home卸载

挂载设备_linux 挂载_03


设置开机挂载


系统挂载限制:

根目录/必须挂载,而且一定先于其他挂载点

其他挂载点必须为已新建的目录

所有挂载点在同一时间内只能挂载一次

所有分区在同一时间内只能挂载一次

若进行挂载,必须先将工作目录移到挂载点(及其子目录)之外


/etc/fstab

里面记载了开机准备挂载的设备信息,通过对/etc/fstab修改来改动挂载设置

第一列:磁盘设备文件名或该设备的LABEL,如UUID=…tmpfsdevpts

第二列:挂载点(mountpoint),就是目录,如/,/boot,/dev/pts

第三列:文件系统,如ext4,swap,proc

第四列:文件系统参数,一般均为默认,可以在mount –o命令中设置

第五列:能否被dump备份命令作用,0代表不做dump备份,1代表每天进行,2代表不定期进行

第六列:是否以fsck检验扇区,0是不检验,1是最早检验,2是也要检验,一般根目录设为1,其他需要检验的设置为2

挂载设备_linux 挂载_04

/etc/mtab代表正在挂载的设备

基本同/etc/fstab一样

挂载设备_linux 挂载_05


loop挂载

有时候需要将下载的镜像不经过光驱直接挂载,可以通过下面命令实现

mount –o loop 镜像目录挂载点