任何文件系统在使用之前都需要挂载(mount),所谓挂载就是将一个磁盘的文件系统连接到操作系统目录树的过程。通过下面命令可以实现文件系统的挂载:
mount.ext2 /dev/sdc /mnt/ext2_test
完成文件系统的挂载后,磁盘上文件系统的所有数据就称为原有目录树的一个子树。普通用户就可以访问该磁盘上的数据了。

Ext2文件系统的挂载
自然,Ext2文件系统在使用之前也是需要挂载的。我们知道挂载操作是一个命令行的工具,也就是mount命令。该命令需要两个参数,一个是需要挂载的块设备,另外一个是目的路径。也就是这个文件系统挂载到什么位置。
文件系统的挂载流程如图所示,mount命令会触发VFS的挂载函数,而该函数则会调用具体文件系统的挂载函数,以Ext2为例则是调用ext2_mount函数。该函数的主要作用是从磁盘的超级块读取数据,并完成内存超级块数据的填充。

该函数执行成功后最终是返回一个dentry指针。这个结构体包含了inode和超级块的信息。后续流程根据该dentry实现当前目录与该dentry的关联。
返回dentry指针后在vfs_kern_mount函数中完
Ext2文件系统:挂载与卸载解析
本文详细介绍了Linux系统中Ext2文件系统的挂载和卸载过程。挂载通过`mount.ext2`命令,涉及VFS、ext2_mount函数,完成dentry指针、mount结构体和目录树的关联。卸载通过`umount`命令,流程相对简单,移除文件系统从目录树。Linux允许一个目录挂载多个文件系统,但只有一个可用,且块设备可挂载到多个路径,使得挂载关系复杂。
订阅专栏 解锁全文
9





