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