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

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

您好,linux挂载概念简述:

1.Linux系统中“一切皆文件”,所有文件都放置在以根目录为树根的树形目录结构中。Linux中任何硬件设备也都是文件,它们各有自己的一套文件系统(文件目录结构)。

因此产生的问题是,当在 Linux系统中使用这些硬件设备时,只有将Linux本身的文件目录与硬件设备的文件目录合二为一,硬件设备才能为我们所用。合二为一的过程称为“挂载”。

如果不挂载,通过Linux系统中的图形界面系统可以查看找到硬件设备,但命令行方式无法找到。

挂载,指的就是将设备文件中的顶级目录连接到 Linux 根目录下的某一目录(最好是空目录),访问此目录就等同于访问设备文件。

(误区)并不是根目录下任何一个目录都可以作为挂载点,由于挂载 *** 作会使得原有目录中文件被隐藏,因此根目录以及系统原有目录都不要作为挂载点,会造成系统异常甚至崩溃,挂载点最好是新建的空目录。

(window为盘符)挂载点(linux使用已经存在的空目录作为挂载点,所以的空目录都可以作为挂载点,这3个除外 (/bin/、/lib/、/etc/))。

END

2、挂载与卸载简述:

根文件系统之外的其他文件要想能够被访问,都必须通过“关联”至根文件系统上的某个目录来实现,此关联 *** 作即为“挂载”,此目录即为“挂载点”,解除此关联关系的过程称之为“卸载”

1.挂载:根文件系统外通过关联至根文件系统上的某个目录来实现访问

2.挂载点:mount_point,用于作为另一个文件系统的访问入口;

(1) 事先存在;

(2) 应该使用未被或不会被其它进程使用到的目录;

(3) 挂载点下原有的文件将会被隐藏;

END

3、挂载(安装系统时注意)

1

必须分区

/ (根分区)

swap分区( 交换分区)

如果真实内存小于4GB , swap位内存的两倍

如果真实内存大于4GB , swap和内存-致

实验环境,不大于2GB

推荐分区

/boot (启动分区, 1GB )

常用分区

/home (用于文件服务器)

/www (用干Web服务器)

1、windows系统中文件夹属性中设置文件共享

2、挂载,linux系统执行共享命令

注意:(使用mount挂载的方法在系统重新启动后就会失效)

usrname:访问共享文件夹的用户名

password:访问密码

ip:共享文件夹所在主机ip

sharename:共享文件夹目录名字

name:需要挂载的linux完整文件夹路径

cifs:Common Internet File System,可以理解为网络文件系统。

3、取消挂载

注意:

name:已经挂载的linux完整文件夹路径

如果umount的时候显示 device busy?

这是因为有程序正在访问这个设备,则可以用:

也可以使用命令ps aux 来查看占用设备的程序PID,然后用命令kill来杀死占用设备的进程,然后再取消挂载

通过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 一个数字--dump会用它来控制对文件系统的备份 *** 作,只有/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.


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8540707.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-17
下一篇2023-04-17

发表评论

登录后才能评论

评论列表(0条)

    保存