如何找出 FUSE 使用的文件系统?

如何找出 FUSE 使用的文件系统?

当我运行时mount,我可以看到我的硬盘安装为fuseblk

/dev/sdb1 on /media/ecarroll/hd type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096,uhelper=udisks2)

但是,fuseblk它并没有告诉我我的设备上的文件系统是什么。我发现它使用gparted但我想知道如何使用命令行实用程序找到文件系统。

答案1

我在中找到了答案唐·克里斯蒂的评论成为最好的

lsblk -no name,fstype

这准确地向我展示了我想要的东西,而且我不必卸载设备,

mmcblk0     
└─mmcblk0p1 exfat

也可以看看,

答案2

一般来说,从 FUSE 安装点到实现它的进程是不可能的

如果您了解该文件系统的工作原理,那么这可能是可能的。您必须跟踪设备端,而不是安装点。例如,在您的情况下,FUSE 文件系统正在块设备上公开文件系统,因此您可以查找打开块设备的进程:lsof /dev/sdb1或者fuser /dev/sdb1。类似地,使用 SSHFS,您可以使用lsofnetstat查找与正确服务器有连接的进程等。这将为您提供进程 ID,然后ps可以告诉您该进程正在运行什么程序。

答案3

您可以通过以下fs方式找到/dev/sdb1

fsck命令:

fsck -N /dev/sdb1

mount命令:

mount | grep /dev/sdb1

file命令:

file -sL /dev/sdb1

df命令:

df -T | grep /dev/sdb1

答案4

查询任何给定文件的支持文件系统的通用方法是

lsblk -no name,fstype,mountpoint "$(findmnt --target "$FILE" -no SOURCE)"

输出看起来像

sdd1 exfat  /media/USER/CARD-A123

其中sdd1是设备名称,exfat是底层文件系统类型(例如,mount仅显示fuseblkNFTS 和 exFat,这将显示真实的文件系统),输出的其余部分是该文件系统的挂载点。

如果您收到诸如以下错误

lsblk: : not a block device

没有$FILE指向可读的文件或目录。

相关内容