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