列出可用于挂载的文件系统的Linux命令是什么?

6
什么终端命令可以返回包含当前可用于在系统上挂载的文件系统的数据?
具体来说,我正在使用Ubuntu 15.04,但我希望得到一个适用于所有*nix用户的答案。
注意: 我不想知道已经挂载了什么,我只想知道有哪些文件系统是可用的。 我不想检查文件系统的类型(ext2、ext4、ntsf等),我想知道可以挂载哪些文件系统(sda2,fd1等)。

你是指哪些文件系统(例如ext4、xfs、tmpfs)可用,还是指哪些可能包含文件系统的磁盘设备(例如sdb1、sdd3)可用? - user149341
@duskwuff 不,我不是指文件系统类型(ext4等),我是指文件系统(格式化为一种类型的文件系统)。请参阅CompTIA以澄清这些术语。 - Jonah Havel
你所描述的听起来像是存储设备,而不是文件系统。如果CompTIA使用“文件系统”这个词来描述这个问题,我很抱歉,但他们是错误的。 - user149341
这很可能是一个语义问题,我会澄清。 - Jonah Havel
3个回答

5

在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" 是正确的那个。 - Jonah Havel

3

关于问题"命令将返回包含当前可用于挂载在我的系统上的文件系统的数据"。

从强大的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",但我仍然可以挂载它(虽然只能以只读方式挂载,但仍然可以)? - MrCalvin
请检查源代码 /fs/ntfs/super.c,是否有任何不同之处? ': .name = "ntfs",' || 'MODULE_ALIAS_FS("ntfs");' || 'register_filesystem(&ntfs_fs_type);' - Jian Wang
是的,在Debian Buster内核源代码(4.19.181-1)中,别名设置为ntfs。但我现在看到已经安装了ntfs-3g,这就是为什么我可以挂载它的原因。我认为它也已经从Debian内核中剥离了,就像openSUSE一样(甚至可能是上游)。 - MrCalvin

0

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

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

如果您想查看当前已挂载的文件系统,只需输入以下命令:

mount

或者

cat /proc/mounts

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

dmesg

1
只是想指出,我明确表示我不想要当前挂载的文件系统。 - Jonah Havel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接