linux挂载与卸载,linux挂载分区

大家好,感谢邀请,今天来为大家分享一下linux挂载与卸载的问题,以及和linux挂载分区的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!

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

通过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.

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

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

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

挂载,指的就是将设备文件中的顶级目录连接到Linux根目录下的某一目录(最好是空目录),访问此目录就等同于访问设备文件。而解除此关联关系的过程称之为“卸载”

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

Linux怎么卸载挂载文件

linux使用umount命令来卸载挂载的文件。例如:

umount/mnt/net1

umount命令说明

umount命令用于卸载已经加载的文件系统。利用设备名或挂载点都能umount文件系统,不过最好还是通过挂载点卸载,以免使用绑定挂载(一个设备,多个挂载点)时产生混乱。

语法

umount(选项)(参数)

选项

-a:卸除/etc/mtab中记录的所有文件系统;

-h:显示帮助;

-n:卸除时不要将信息存入/etc/mtab文件中;

-r:若无法成功卸除,则尝试以只读的方式重新挂入文件系统;

-t<文件系统类型>:仅卸除选项中所指定的文件系统;

-v:执行时显示详细的信息;

-V:显示版本信息。

参数

文件系统:指定要卸载的文件系统或者其对应的设备文件名。

实例

下面两条命令分别通过设备名和挂载点卸载文件系统,同时输出详细信息:

通过设备名卸载

umount-v/dev/sda1

/dev/sda1 umounted

通过挂载点卸载

umount-v/mnt/mymount/

/tmp/diskboot.img umounted

如果设备正忙,卸载即告失败。卸载失败的常见原因是,某个打开的shell当前目录为挂载点里的某个目录:

umount-v/mnt/mymount/

umount:/mnt/mymount: device is busy

umount:/mnt/mymount: device is busy

有时,导致设备忙的原因并不好找。碰到这种情况时,可以用lsof列出已打开文件,然后搜索列表查找待卸载的挂载点:

lsof| grep mymount查找mymount分区里打开的文件

bash 9341 francois cwd DIR 8,1 1024 2/mnt/mymount

从上面的输出可知,mymount分区无法卸载的原因在于,francois运行的PID为9341的bash进程。

对付系统文件正忙的另一种方法是执行延迟卸载:

umount-vl/mnt/mymount/执行延迟卸载

延迟卸载(lazy unmount)会立即卸载目录树里的文件系统,等到设备不再繁忙时才清理所有相关资源。卸载可移动存储介质还可以用eject命令。下面这条命令会卸载cd并弹出CD:

eject/dev/cdrom卸载并弹出CD

阅读剩余
THE END