Android/Linux中挂载详解以及mount命令用法

二次信任 提交于 2020-01-30 20:12:22

一、引言

Linux中的根目录以外的文件要想被访问,需要将其“关联”到根目录下的某个目录来实现,这种关联操作就是“挂载”,这个目录就是“挂载点”,解除次关联关系的过程称之为“卸载”。

注意:“挂载点”的目录需要以下几个要求:

(1)目录事先存在,可以用mkdir命令新建目录;

(2)挂载点目录不可被其他进程使用到;

(3)挂载点下原有文件将被隐藏。

二、挂载命令

命令格式:

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

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

1、device:指明要挂载的设备

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

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

(3) UUID(磁盘), -U ‘UUID’:例如 -U ‘0c50523c-43f1-45e7-85c0-a126711d406e’

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

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

2、dir:挂载点

事先存在;建议使用空目录;进程正在使用中的设备无法被卸载

3、常用命令选项

-t vsftype:指定要挂载的设备上的文件系统类型;
实例:

mount -t ntfs /dev/sdc1 /mnt/usbhd1
mount -t vfat /dev/sdc5 /mnt/usbhd2

-ro: readonly,只读挂载;
-rw: read and write, 读写挂载;
-n: 不更新/etc/mtab;
-a:自动挂载所有支持自动挂载的设备;(定义在了/etc/fstab文件中,且挂载选项中有“自动挂载”功能)
-L ‘LABEL’: 以卷标指定挂载设备;
-U ‘UUID’: 以UUID指定要挂载的设备;
-B, --bind: 绑定目录到另一个目录上;
-o options:(挂载文件系统的选项)
实例:

mount -o remount rw      //以读写方式重新挂载文件系统

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

三、卸载命令:umount

命令格式:

umount DEVICE

fuser:查看正在访问指定文件系统的进程:
命令使用格式:

fuser -v MOUNT_POINT
//终止所有在正访问指定的文件系统的进程
fuser -km MOUNT_POINT

四、开机自动挂载

如果我们想实现开机自动挂载某设备,只要修改/etc/fstab文件即可。
每行定义一个要挂载的文件系统;

其每行的格式如下
要挂载的设备或伪文件系统 挂载点 文件系统类型 挂载选项 转储频率 自检次序
UUID=6efb8a23-bae1-427c-ab10-3caca95250b1 /boot xfs defaults 0 0

1、要挂载的设备或伪文件系统:设备文件、LABEL(LABEL="")、UUID(UUID="")、伪文件系统名称(proc, sysfs)

2、挂载点:指定的文件夹

3、挂载选项:defaults

4、转储频率:

  1. 不做备份
  2. 每天转储
  3. 每隔一天转储

5、自检次序:

  1. 不自检
  2. 首先自检;一般只有rootfs才用1;

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

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

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!