什么是挂载(mount)?
官方文档是这么解释的:
All files accessible in a Unix system are arranged in one big tree, the file hierarchy, rooted at /. These files can be spread out over several devices. The mount command serves to attach the filesystem found on some device to the big file tree. Conversely, the umount(8) command will detach it again. The filesystem is used to control how data is stored on the device or provided in a virtual way by network or another services.
在Unix系统中,所有可访问的文件都是被组织在一个文件树中,即文件层次结构(file hierarchy),其根为 /。mount命令用于把在某些设备上的文件系统附加到大文件树,这样的话,系统才可以访问这些设备上的文件。
mount命令的标准形式如下 :
mount -t type device dir
This tells the kernel to attach the filesystem found on device (which is of type type) at the directory dir.
可是,知道了mount的简单操作,我还是一头雾水,究竟什么是mount(概念)?执行这一命令的时候操作系统究竟发生了什么(动作)?为什么需要mount这样一个操作(场景)?
在Google了很久之后,结合这个回答和这个回答,稍微有了一些了解,结合自己的理解,整理如下:
Unix操作系统只有一个单一的目录树结构,该目录树的最顶层就是
/, 所有可访问文件都必须与这个目录树结构关联。这一点和Windows操作系统不同,在Windows中,每一个硬盘都有独立的目录树结构,比如D:\workspace\algorithm,C:\Users这样的。挂载(mount)这一动作就是把某个设备与目录树中的某个特定位置进行关联,以便于操作系统能够从根目录开始找到这个刚刚加入的设备,从而访问该设备的内的文件数据。(需要注意的是,这里的设备是泛指,既可以指usb、CD-ROM这样真实的设备,也可以是操作系统中的某个目录)。比如,当系统启动的时候,一个特殊的存储设备(通常被称为root 分区)就会与目录树的根进行关联,换句话说,把root分区挂载到了
/上。再比如说,现在你想访问存储在U盘上的数据,操作系统究竟发生了什么呢?根据前面说的,为了使操作系统找到它,我们必须把usb挂载到目录树结构的某个位置下(比如说,
/media/usb/),假设usb设备是/dev/usb,那么在把usb插入电脑的时候,对应执行的命令就是:mount /dev/usb /media/usb经过这行命令,usb中的文件就对操作系统可见了,比如在usb中的某个文件位于/dir/hello.txt,那么操作系统可访问的对应路径就是/media/usb/dir/hello.txt。当拔出usb时,就执行
umount /dev/usb或umount /media/usb(两者都可行)Mounting applies to anything that is made accessible as files, not just actual storage devices. 比如Linux系统有一个特殊的文件系统(被称为 proc filesystem)被挂载在
/proc目录下,该文件系统就没有真实的存储设备:/proc目录下存放的文件保存着正在运行的进程的一些信息。(关于 proc 可以看之前写的那篇文章)
参考:
https://unix.stackexchange.com/questions/3247/understanding-mount-as-a-concept-in-the-os
https://unix.stackexchange.com/questions/3192/what-is-meant-by-mounting-a-device-in-linux
https://linuxize.com/post/how-to-mount-and-unmount-file-systems-in-linux/
http://ultra.pr.erau.edu/~jaffem/tutorial/file_system_basics.htm
什么是挂载(mount)?的更多相关文章
- 挂载mount
mount 1 挂载mount 基本概念 挂载:将额外文件系统与根文件系统现存的目录建立起关联关系,进而使得此目录做为其它文件访问入库的行为 卸载:为解除关联关系的过程 注意:挂载点下原有的文件在挂载 ...
- Linux分区和挂载(mount命令的学习)
当Windows系统出现问题的时候,可能需要重装系统,这个时候我们往往会使用系统盘将系统重新安装在C盘上,其他盘上的文件都没有受到重装系统的影 响,这就是分区的好处之一.同样,在Linux中也需要分区 ...
- vue 手动挂载$mount() 获取 $el
手动挂载$mount() 如果没有挂载的话,没有关联的 DOM 元素.是获取不到$el的. https://vuejs.org/v2/api/#vm-mount var MyComponent = V ...
- 【转】vue 手动挂载$mount() 获取 $el
原文:https://www.cnblogs.com/CyLee/p/8425183.html 手动挂载$mount() 如果没有挂载的话,没有关联的 DOM 元素.是获取不到$el的. https: ...
- 自动挂载mount
# 自动挂载mount(/etc/fstab) /dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0 # 第一列:/dev/fd0 挂载源 ...
- Linux系统 nfs 共享及 挂载mount 配置
要把 A服务器(192.168.1.1)的 /home 目录挂载到 B服务器(192.168.1.2)的/mnt目录 我们先在 A 服务器上编辑/etc/exports 文件, 添加下面这行代码 /h ...
- 挂载mount、卸载umount、挂载光盘U盘
mount [root@localhost ~]# mount sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel) ...
- 【转载】linux挂载mount参数优化
一. 1) 蓝色:表示经过优化的xfs mount时的参数defaults,noatime,nodiratime,nobarrier,discard,allocsize=256m,logbufs=8, ...
- Linux编程 8 (挂载mount,查看磁盘df du,搜索grep,压缩zgip,归档tar)
一. 挂载存储媒体 linux文件系统将所有的磁盘都并入一个虚拟目录下,当使用新的存储媒体之前,需要把它放到虚拟目录下,这项工作称为挂载(mounting) 1.1 mount 命令 在linux上用 ...
- linux挂载mount参数优化
一. 1) 蓝色:表示经过优化的xfs mount时的参数defaults,noatime,nodiratime,nobarrier,discard,allocsize=256m,logbufs=8, ...
随机推荐
- MAC OS系统替换homebrew使用阿里云的镜像源
MAC OS系统替换homebrew使用阿里云的镜像源 2019-03-03 15:13:42 南通SEO 阅读数 2024更多 分类专栏: 解决方案 MAC OS系统替换homebrew使用阿里 ...
- webpack 性能优化小结
背景 如今前端工程化的概念早已经深入人心,选择一款合适的编译和资源管理工具已经成为了所有前端工程中的标配,而在诸多的构建工具中,webpack以其丰富的功能和灵活的配置而深受业内吹捧,逐步取代了gru ...
- Python接口自动化测试(一)什么是接口?
接口:API(Application Programming Interface)即应用程序接口.你可以认为API是一个软件组件,或是一个Web服务与外界进行交互的接口. 1.从功能层面上 可以将接口 ...
- 在 Arch 上Yaourt 使用这些替代品
1. aurman aurman 是最好的 AUR 助手之一,也能胜任 Yaourt 替代品的地位.它有非常类似于 pacman 的语法,可以支持所有的 pacman 操作.你可以搜索 AUR.解决包 ...
- 面试题小议---BY gremount
Problem 1: 两个烧杯,一个放糖一个放盐,用勺子舀一勺糖到盐,搅拌均匀,然后舀一勺混合物会放糖的烧杯,问你两个烧杯哪个杂质多? 提示:相同.(1)可以用一个特殊数据计算一下,可以得到两个烧杯 ...
- 教你如何快速定制 SpringBoot banner
之前说过如何快速创建SpringBoot项目,不知道的同学可以查看之前的文章 5分钟学会如何创建spring boot项目. 为了让大家脱单,码哥简直费尽心思,今天这个技能或许可以让你脱单! 今天我们 ...
- linux和window下生成任意大小的文件
在Windows环境下的实现方法 使用fsutil命令,在windows xp和win 7下应该都自带了这个命令.命令的格式是 fsutil file createnew 新文件名 文件大小.例如 ...
- golang通过ssh实现远程文件传输
使用ssh远程操作文件, 主要是创建ssh, 直接上代码 import ( "fmt" "github.com/pkg/sftp" "golang.o ...
- Flutter移动电商实战 --(40)路由_Fluro的全局注入和使用方法
路由注册到顶层,使每个页面都可以使用,注册到顶层就需要在main.dart中 main.dart注册路由 注入 onGenerateRoute是MaterialApp自带的路由配置项, 首页跳转到详细 ...
- [IMX6DL] CPU频率调节模式以及降频方法
本文转自http://blog.csdn.net/kris_fei/article/details/51822435 Kernel branch: 3.0.35 CPU的频率调节模式:1. Perfo ...