【问题标题】:Linux command to list file systems available for mounting?Linux命令列出可用于挂载的文件系统?
【发布时间】:2016-07-15 03:25:17
【问题描述】:

哪个终端命令将返回包含当前可安装在我的系统上的文件系统的数据?

具体来说,我使用的是 Ubuntu 15.04,但我更喜欢对所有 *nix 用户都有效的答案。

注意事项: 我不想知道 IS 安装了什么,我想知道什么是可用的。 我不想检查文件系统的类型(ext2、ext4、ntsf 等),我想知道哪些文件系统可以挂载(sda2、fd1 等)。

【问题讨论】:

  • 您是指哪些文件系统(例如,ext4、xfs、tmpfs)可用,或者哪些可能包含文件系统的磁盘设备(例如, sdb1, sdd3) 可用吗?
  • @duskwuff 不,我不是指文件系统类型(ext4 等),我指的是文件系统(格式化为一种类型)。有关条款的说明,请参阅 CompTIA。
  • 您所描述的内容听起来像是存储设备,而不是文件系统。如果 CompTIA 使用短语“文件系统”来描述这一点,我很抱歉,但它们是错误的。
  • 这可能是语义问题,我会澄清一下。

标签: linux terminal filesystems


【解决方案1】:

关于问题“命令将返回包含当前可安装在我的系统上的文件系统的数据”。

得益于强大的 PROC 文件系统,运行 Linux 中可用(或静态 + 动态安装)的文件系统可以通过以下方式找到:

cat /proc/filesystems

在我的linux 3.10.0中,结果是:

$cat /proc/filesystems  

nodev   sysfs  
nodev   rootfs  
nodev   ramfs  
nodev   bdev  
nodev   proc  
nodev   cgroup  
nodev   cpuset  
nodev   tmpfs  
nodev   devtmpfs  
nodev   debugfs  
nodev   securityfs  
nodev   sockfs  
nodev   dax  
nodev   bpf  
nodev   pipefs  
nodev   configfs  
nodev   devpts  
nodev   hugetlbfs  
nodev   autofs  
nodev   pstore  
....

这是元数据,“mount”命令会找到并使用。

然后,使用下面的命令,它会列出所有挂载的文件系统。

$cat /proc/mounts

/dev/sda1 /boot xfs rw,relatime,attr2,inode64,noquota 0 0
...
cgroup /sys/fs/cgroup/devices cgroup rw,nosuid,nodev,noexec,relatime,devices 0 0

每一行的第三个字段,如xfs或cgroup,是“文件系统”,在前面的命令中刚刚提到。

【讨论】:

  • 我在列表表单/proc/filesystems 上看不到“ntfs”,但我可以挂载它(虽然只能以只读方式,但仍然如此)?
  • 检查源代码/fs/ntfs/super.c,有什么不同吗? ': .name = "ntfs",' || 'MODULE_ALIAS_FS("ntfs");' || 'register_filesystem(&ntfs_fs_type);'
  • 是的,在 debian buster 内核 (4.19.181-1) 的源代码中别名设置为 ntfs。但我现在看到 ntfs-3g 已安装,这就是我可以安装它的原因。我认为它也已从 debian 内核中剥离,就像 .e.g. openSUSE(甚至可能是上游?)
【解决方案2】:

在 Ubuntu 上,您可以用来显示光盘:

sudo lshw -class disk

或检查系统上的所有分区

sudo blkid -o list | grep "not mounted"

或者如果您只想要设备:

sudo blkid -o list | grep "not mounted" | awk '{print $1}'

【讨论】:

  • 只是指出,由于您已编辑,命令sudo blkid -o list | grep "not mounted" 是正确的。
【解决方案3】:

您可以在 /etc/fstab 中列出所有预定义的文件系统

fstab 文件包含所有通常在启动时挂载或准备挂载的文件系统(如 CDROM 驱动器)。

如果你想要当前挂载的文件系统,你只需输入命令:

mount

cat /proc/mounts

如果您想知道可以挂载哪些设备,您可以使用以下命令查看内核消息(特别是在使用 USB 存储器等热插拔设备时):

dmesg

【讨论】:

  • 只是指出,我明确表示我不想要当前挂载的文件系统。
猜你喜欢
  • 1970-01-01
  • 2015-12-25
  • 1970-01-01
  • 2019-07-22
  • 2017-10-01
  • 1970-01-01
  • 2017-08-09
  • 2016-06-23
  • 2021-01-22
相关资源
最近更新 更多