扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
Linux文件系统可以根据需要随时装卸,从而实现文件存储空间的动态扩充。在系统初启时,往往只安装有一个文件系统,即根文件系统,其上的文件主要是保证系统正常运行的操作系统代码文件,以及若干语言编译程序、命令解释程序和相应的命令处理程序等构成的文件。
此外,还有大量的用户文件空间。根文件系统一旦被安装上,则在整个系统运行过程中是不能卸下的,它是系统的基本部分。
其它的文件系统(例如由软盘构成的文件系统)可以根据需要(如从硬盘向软盘复制文件),作为子系统动态地安装到主系统中。经过安装之后,主文件系统与子文件系统就构成一个有完整目录层次结构的、容量更大的文件系统。
这种安装可以高达几级。也就是说,若干子文件系统可以并列安装到主文件系统上,也可以一个接一个地串连安装到主文件系统上。已安装的子文件系统也可从整个文件系统上卸下来,恢复安装前的独立状态。
当超级用户试图安装一个文件系统时,Linux系统内核必须首先检查有关参数的有效性。VFS首先应找到要安装的文件系统。通过查找由file_systems指针指向的链表中的每一个file_system_type数据结构,来搜索已知的文件系统(该结构中包含文件系统的名字和指向VFS超级块读取程序地址的指针),当找到一个匹配的名字,就可以得到读取文件系统超级块的程序地址;
接着要查找作为新文件系统安装点的VFS索引节点,并且同一目录下不能安装多个文件系统;VFS安装程序必须分配一个VFS超级块(super_block),并且向它传递一些有关文件系统安装的信息;申请一个vfsmount数据结构(其中包括存储文件系统的块设备的设备号、文件系统安装的目录和一个指向文件系统的VFS超级块的指针),并使它的指针指向所分配的VFS超级块。
当文件系统安装以后,该文件系统的根索引节点就一直保存在VFS索引节点缓存中。
卸下文件系统的过程基本上与安装文件系统的过程相反。首先验证被卸文件系统是可卸载的,如果该文件系统中的文件当前正被使用,则该文件系统不能卸载;
如果文件系统中的文件或目录正在使用,则VFS索引节点高速缓存中可能包含对应的VFS索引节点;如果相应的节点标志为“被修改过”,则该文件系统不能被卸载。完成以上过程,则释放对应的VFS超级块和安装点,从而卸下该文件系统。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者