在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 重新挂载,系统出错,重新更新参数时使用
挂载不特定目录
当有些程序不支持符号连接时,有时候需要将某个目录挂载到特定目录中
例如将/home挂载到/mnt/home中,使用mount –bind命令将某个目录挂载到其他目录
卸载设备文件
umount [-fn] 设备文件名或挂载点
-f 强制卸载
-n 不更新/etc/mtab的情况下卸载
例如将刚挂载/mnt/home卸载
设置开机挂载
系统挂载限制:
根目录/必须挂载,而且一定先于其他挂载点
其他挂载点必须为已新建的目录
所有挂载点在同一时间内只能挂载一次
所有分区在同一时间内只能挂载一次
若进行挂载,必须先将工作目录移到挂载点(及其子目录)之外
/etc/fstab
里面记载了开机准备挂载的设备信息,通过对/etc/fstab修改来改动挂载设置
第一列:磁盘设备文件名或该设备的LABEL,如UUID=…和tmpfs,devpts等
第二列:挂载点(mountpoint),就是目录,如/,/boot,/dev/pts等
第三列:文件系统,如ext4,swap,proc等
第四列:文件系统参数,一般均为默认,可以在mount –o命令中设置
第五列:能否被dump备份命令作用,0代表不做dump备份,1代表每天进行,2代表不定期进行
第六列:是否以fsck检验扇区,0是不检验,1是最早检验,2是也要检验,一般根目录设为1,其他需要检验的设置为2
/etc/mtab代表正在挂载的设备
基本同/etc/fstab一样
loop挂载
有时候需要将下载的镜像不经过光驱直接挂载,可以通过下面命令实现
mount –o loop 镜像目录挂载点