Linux 如何获得有关FUSE文件系统的更详细的文件系统信息?
在Linux系统上,可以识别“常规”文件系统 使用Linux 如何获得有关FUSE文件系统的更详细的文件系统信息?,linux,fuse,Linux,Fuse,在Linux系统上,可以识别“常规”文件系统 使用statfs(2)并检查f_类型。几个变量的常数 statfs(2)手册页中提到了文件系统类型,例如 EXT4_SUPER_MAGIC 0xEF53 BTRFS_SUPER_MAGIC 0x9123683E FUSE_SUPER_MAGIC 0x65735546 PROC_SUPER_MAGIC 0x9fa0 SYSFS_MAGIC 0x62656572 (事实证明,它们实际上是在lin
statfs(2)
并检查f_类型
。几个变量的常数
statfs(2)
手册页中提到了文件系统类型,例如
EXT4_SUPER_MAGIC 0xEF53
BTRFS_SUPER_MAGIC 0x9123683E
FUSE_SUPER_MAGIC 0x65735546
PROC_SUPER_MAGIC 0x9fa0
SYSFS_MAGIC 0x62656572
(事实证明,它们实际上是在linux/magic.h
中定义的)
我希望能够区分著名的远程文件系统
(如sshfs)从著名的本地文件系统(如
ntfs-3g)。有没有办法了解更多关于基于保险丝的信息
文件系统,如此时的名称?以及在每个文件系统的statfs实现中同时实现和设置f_type,似乎被忽略
我相信,使用此方法将导致基于的值为0x65735546
在用户空间中获取文件系统信息的机制是/proc/mounts
或/proc//mountinfo
。这将第9个字段作为filesystem type,其中FUSE子类型(如果它们被指定为装载选项并受内核支持)作为type.subtype。例如fuse.sshfs或fuse.ntfs-3g
要在kernelspace中访问相同的信息,可以使用with the path获取指向vfsmount结构的指针,从中可以访问超级块,然后访问子类型。其中struct vfsmount*mnt
,子类型为mnt->mnt\u sb->s\u subtype