我通常mount
用来检查已挂载的文件系统。我也知道mount
和之间有一些联系,/etc/mtab
但是我不确定细节。阅读如何检查是否安装了/ proc /后,我感到更加困惑。
我的问题是:如何获取已挂载文件系统的最精确列表?我应该只使用mount
或阅读的内容/etc/mtab
还是的内容/proc/mounts
?什么会带来最值得信赖的结果?
我通常mount
用来检查已挂载的文件系统。我也知道mount
和之间有一些联系,/etc/mtab
但是我不确定细节。阅读如何检查是否安装了/ proc /后,我感到更加困惑。
我的问题是:如何获取已挂载文件系统的最精确列表?我应该只使用mount
或阅读的内容/etc/mtab
还是的内容/proc/mounts
?什么会带来最值得信赖的结果?
Answers:
挂载的文件系统的完整列表在中/proc/mounts
。
如果系统上有任何形式的容器,则/proc/mounts
仅列出当前容器中的文件系统。例如,在chroot中,/proc/mounts
仅列出挂载点在chroot内的文件系统。(记住,有很多方法可以逃避chroot。)
中也有已挂载文件系统的列表/etc/mtab
。该列表由mount
和umount
命令维护。这意味着,如果您不使用这些命令(这种情况很少见),则不会记录您的操作(装载或卸载)。实际上,通常会在chroot中找到/etc/mtab
与系统状态完全不同的文件。另外,在chroot中执行的挂载将反映在chroot的目录中/etc/mtab
,而不反映在main目录中/etc/mtab
。/etc/mtab
在只读文件系统上执行的操作也不会记录在该文件系统上。
有时您希望/etc/mtab
优先于或附加进行查询的原因/proc/mounts
是,由于它可以访问mount命令行,因此有时可以以更易于理解的方式显示信息。例如,您会看到请求的挂载选项(同时/proc/mounts
列出了mount
和内核默认设置),而绑定挂载在中显示为/etc/mtab
。
mount
维护的目的/etc/mtab
是什么?如果mount
从中显示信息/proc/mounts
不是更好吗?
/etc/mtab
可以记录内核无法跟踪的信息(例如最初请求的选项),并绑定出现的绑定装载,而不是显示为设备的重复条目。但是,许多发行版正朝着与/etc/mtab
的符号链接迈进/proc/mounts
。
/etc/mtab
的符号链接迈进/proc/mounts
。很高兴听到-添加此信息来回答会更好。您认为由内核跟踪请求的选项是否可行且有益?
findmnt
这是自2010年以来的首选方法,并且可能是不久的将来挂载名称空间普及的唯一安全方法。
从2.18版开始(2010年7月), util-linux
其中包含一个工具,可用于显示当前已安装文件系统的列表:
findmnt
您可以使用以下命令从默认树视图切换到列表视图-l
,使用-o
(类似于lsblk
)定义输出列,使用-t
等基于文件系统类型过滤结果。
findmnt -lo源,目标,fstype,标签,选项,已使用-t ext4
SOURCE TARGET FSTYPE LABEL OPTIONS USED
/dev/sda1 / ext4 ARCH rw,noatime,discard,data=ordered 17.6G
/dev/sdb2 /media/DATA ext4 DATA rw,noatime,discard,data=ordered 44M
有关更多详细信息,请阅读man
页面(并findmnt --help
获取可用列的列表)
可能是因为距回答此问题已有5年了,所以情况发生了变化。在cat /proc/mounts
创造了很多你不关心的信息的。今天,恕我直言,我发现这是最终的解决方案。
df -h --output=source,target
当您阅读手册页时,可以执行各种选择,但这就是您要做的。例如,要进一步清理结果,可以使用以下命令排除“ tmpfs”文件类型:
df -hx tmpfs --output=source,target
df
在文件系统级别而不是文件级别工作。
上面的命令还将包括网络安装。
要查看更多信息,请使用此方法:
df -hT
注意如果网络安装缓慢,则可能需要几分钟!
如果您没有或不关心挂载的网络连接(并且您具有root权限),那么这样做会更好:
sudo lsblk -f
--output
不接受这些选项的Ubuntu 12之类的东西,请在findmnt
下面查看don_crissti的回答。
findmnt
似乎需要更高的功能(已通过root测试; root具有所有功能)才能显示标签。
大多数时候,这mount
是最方便的方法。要获取当前已挂载文件系统的完整且准确的列表,您应该阅读/proc/mounts
(例如,使用cat /proc/mounts
)的内容。
例如,如果装入/
读写失败,然后以只读方式装入,作为后备/etc/mtab
(该mount
命令从中读取以告知您装入的内容,并在可能的情况下(更改时写入)写入该内容)将不会更新反映/
(其中包含/etc/mtab
)当前已以只读方式挂载。在这种情况下,运行mount
通常会(错误地)告诉您/
已以读写方式装入。
在正常情况下(即,包含该文件系统的文件系统可以被写入时),/etc/mtab
包含当前已安装文件系统的列表。请勿将其与混淆/etc/fstab
,后者包含应在系统启动时自动挂载的文件系统列表。
当然,如果/proc
虚拟文件系统本身未安装,则您将无法读取其中的任何虚拟文件,其中包括/proc/mounts
。这种情况很少发生。在这种情况下,mount
可能是查看已安装内容的最佳选择。