Linux 如何跟踪文件系统?

Linux 如何跟踪文件系统?

据我所知,Linux 有一个所有文件系统的抽象层,该层是虚拟FS。如果我创建一个新的文件系统,我应该遵循 VFS 制定的规则(请参阅“Linux虚拟文件系统交换机剖析“了解更多信息)。在创建了这个新文件系统后,我将把它挂载到目录层次结构中。但是我这里有一个问题:Linux 操作系统如何知道我的文件系统?

实际上,Linux 中可以有很多文件系统。其中一些已安装,可以通过命令找到mount,其他一些未安装,但您可以随时安装它们。这些未安装的记录是否记录在操作系统的某个位置?我知道有两个文件/etc/fstab/etc/filesystems可能与我的问题有关,但我不确定。

答案1

目前无法访问未安装的文件系统。您可以通过间接方式修改它们,例如直接访问底层设备(对于存储在本地磁盘上的文件系统)或从另一台计算机访问它们(对于网络文件系统)。但除此之外,就操作系统而言,未安装的文件系统并不存在。鉴于网络文件系统(以及其他文件系统)的存在,未挂载的文件系统(每个目录上的每个目录)都会源源不断地供应。

将该文件/etc/fstab视为命令的配置文件mount。它包含快捷方式,以便您可以调用mount /path/to/mount/pointmount /dev/device_name并将mount在中搜索匹配的行,/etc/fstab并使用设备名称或安装点、文件系统类型和安装选项来完成命令行。如果某个条目有该选项user,则任何用户都可以调用mount该条目上的命令(一般情况下,mount保留给 root 用户)。

此外,还/etc/fstab列出了启动时安装的文件系统。该文件中没有该noauto选项的所有条目都会在引导时使用提供的选项进行安装。通常还有本文件中未提及的其他文件系统由引导脚本挂载(在典型的 Linux 系统上,这包括/dev/dev/pts/proc/sys等)。

/etc/filesystems是 Linux 下 mount 的一个很少使用的功能,它允许您在不传递文件系统类型或传递 时自定义其行为auto。如果没有此文件,mount 将尝试 中列出的文件系统类型/proc/filesystems。按顺序尝试文件系统类型:如果第一个条目安装失败,则mount尝试第二个条目,依此类推。

答案2

简短的回答是它不知道。

但有一些方法可以给出提示。从历史上看,这是通过分区表中的标签固定磁盘的。但这仍然只是对其中文件系统的提示 - 一些工具将依赖于此提示(例如 mkfs - 这只是 mkfs.umsdos、mkfs.ext3、mkfs.reiserfs 的简单前端......)

另一种方法是尝试通过从原始分区读取字节来嗅探文件系统类型(mount 这样做是为了在不同的 MSDOS 兼容类型之间进行选择)。或者保留已知设备标识符上的文件系统数据库。

鉴于文件系统的多样性,不存在始终准确的统一方法。

因此系统将使用管理员告诉它使用的文件系统类型(或至少系列)。

相关内容