Linux文件系统可以根据需要随时装卸,从而实现文件存储空间的动态扩充。在系统初启时,往往只安装有一个文件系统,即根文件系统,其上的文件主要是保证系统正常运行的操作系统代码文件,以及若干语言编译程序、命令解释程序和相应的命令处理程序等构成的文件。
此外,还有大量的用户文件空间。根文件系统一旦被安装上,则在整个系统运行过程中是不能卸下的,它是系统的基本部分。
其它的文件系统(例如由软盘构成的文件系统)可以根据需要(如从硬盘向软盘复制文件),作为子系统动态地安装到主系统中。经过安装之后,主文件系统与子文件系统就构成一个有完整目录层次结构的、容量更大的文件系统。
这种安装可以高达几级。也就是说,若干子文件系统可以并列安装到主文件系统上,也可以一个接一个地串连安装到主文件系统上。已安装的子文件系统也可从整个文件系统上卸下来,恢复安装前的独立状态。
当超级用户试图安装一个文件系统时,Linux系统内核必须首先检查有关参数的有效性。VFS首先应找到要安装的文件系统。通过查找由file_systems指针指向的链表中的每一个file_system_type数据结构,来搜索已知的文件系统(该结构中包含文件系统的名字和指向VFS超级块读取程序地址的指针),当找到一个匹配的名字,就可以得到读取文件系统超级块的程序地址;
接着要查找作为新文件系统安装点的VFS索引节点,并且同一目录下不能安装多个文件系统;VFS安装程序必须分配一个VFS超级块(super_block),并且向它传递一些有关文件系统安装的信息;申请一个vfsmount数据结构(其中包括存储文件系统的块设备的设备号、文件系统安装的目录和一个指向文件系统的VFS超级块的指针),并使它的指针指向所分配的VFS超级块。
当文件系统安装以后,该文件系统的根索引节点就一直保存在VFS索引节点缓存中。
卸下文件系统的过程基本上与安装文件系统的过程相反。首先验证被卸文件系统是可卸载的,如果该文件系统中的文件当前正被使用,则该文件系统不能卸载;
如果文件系统中的文件或目录正在使用,则VFS索引节点高速缓存中可能包含对应的VFS索引节点;如果相应的节点标志为“被修改过”,则该文件系统不能被卸载。完成以上过程,则释放对应的VFS超级块和安装点,从而卸下该文件系统。
欢迎访问最专业的网吧论坛,无盘论坛,网吧经营,网咖管理,网吧专业论坛https://bbs.txwb.com |
关注天下网吧微信,了解网吧网咖经营管理,安装维护:
本文来源:赛迪网 作者:佚名