如何理解 linux 系统里文件系统的挂载和卸载?

发布网友 发布时间:2022-04-23 04:43

我来回答

2个回答

热心网友 时间:2023-07-19 16:08

通过Linux专有的虚拟文件/proc/mounts可查看当前已经挂载文件系统的列表。
/proc/mounts是内核数据结构的接口,因此总是包含已挂载文件系统的精确信息。

mount和umount命令会自动维护/etc/mtab文件,该文件所包含的信息与/proc/mounts
的内容相似,特别是包含了传递给mount文件系统专有选项,并未在/proc/mounts中.但
是因为系统调用mount和umount并不更新/etc/mtab,如果某些挂载或卸载了设备的应用
程序没有更新该文件,那么/etc/mtab可能会变得不准确。

/etc/fstab(由系统管理员手工维护)包含了对系统支持的所有文件系统的描述,该文件
可供mount,umount,fsck使用。

/proc/mounts,/etc/mtab,/etc/fstab的格式相同。如下:

tmpfs /run tmpfs rw,nosuid,noexec,relatime,size=206380k,mode=755 0 0

这条记录包含了6个字段。
1 已经挂载的设备名
2 设备的挂载点
3 文件系统类型
4 挂载标志
5 一个数字--mp会用它来控制对文件系统的备份操作,只有/etc/fstab文件才会用到该字段和6字段。
在/proc/mounts和/etc/mtab中,该字段总为0
6 一个数字 --在系统引导时,用于控制fsck对文件系统的检查顺序。

mount()系统调用将由source指定的设备所包含的文件系统,挂在到由target指定的目录下。
#include <sys/mount.h>
int mount(const char * source,const char * target,const char * fstype,
unsigned long mountflags,const void * data);

returns 0 on success or -1 on error.

umount()系统调用用于卸载已经挂载的文件系统。
#include <sys/mount.h>
int umount(const char* target);
returns 0 on success or -1 on error.

热心网友 时间:2023-07-19 16:09

挂载有点相当于加载。
Linux系统里文件系统的挂载是加载后使之能被访问使用。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com