use*_*323 6 linux filesystems mount linux-kernel
mount
执行命令时,我得到以下输出。
[root@]# mount
/dev/sda2 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
/dev/sda3 on /home type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
gvfs-fuse-daemon on /root/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev)
Run Code Online (Sandbox Code Playgroud)
我无法理解此命令的输出。谁能解释一下这个输出?
Tho*_*man 15
mount
不带参数运行将根据/etc/mtab
. 该/etc/mtab
文件通常由mount
和维护umount
,尽管在某些环境(例如 live CD)中/etc/mtab
可能是到 的符号链接/proc/self/mounts
。
内核维护当前挂载命名空间中挂载文件系统的信息/proc/[pid]/mounts
。传统上,Linux内核暴露通过坐骑/proc/mounts
,但由于引进的每个进程的内核版本2.4.19安装的命名空间,/proc/mounts
是一个符号链接/proc/self/mounts
。这些文件的格式在被记录为手册页fstab
。
请注意,由于/etc/mtab
由用户空间程序维护,因此/etc/mtab
和的内容完全可能/proc/self/mounts
不同。如果直接通过mount()
和umount()
系统调用挂载或卸载文件系统,而不通过mount
和umount
程序,就会发生这种情况。不同挂载命名空间之间的差异也会导致/etc/mtab
和之间的差异/proc/self/mounts
。
mount
输出中的每一行都是以下形式:
fs_spec on fs_file type fs_vfstype (fs_mntopts)
Run Code Online (Sandbox Code Playgroud)
在哪里
fs_spec
描述要挂载的块设备或远程文件系统。
fs_file
描述文件系统的挂载点。
fs_vfstype
描述文件系统的类型。
当前内核支持的文件系统列表通过/proc/filesystems
. 每个文件系统的详细文档都可以在Linux 内核树中找到。
fs_mntopts
描述与文件系统关联的挂载选项。
首先,您需要了解虚拟文件系统和物理文件系统之间的区别(检查谷歌)。
proc
、sysfs
、tmpfs,devpts
、sun_rpc
和gvfs-fuse-daemon
是虚拟文件系统。
/dev/sda1 和 /dev/sda3 是媒体设备:物理文件系统。
proc
:proc
是一个用于管理进程的虚拟文件系统,您可以看到每个PID和其他资源。
sysfs
:是另一个由内核管理的虚拟文件系统;它提供了帮助proc
,尽管不是PIDs
在硬件和其他资源方面。
/dev/pts
:在 GNU/Linux 上,您有虚拟终端和真实终端,对于真实终端,您可以通过以下方式访问:/dev/tty1
, /dev/tty2
,/dev/tty2
切换通过CTRL+ALT+F1..8
但对于虚拟终端,您有/dev/pts/
目录,它包含/dev/pts/0
, 1
,2
等等每个数字代表一个虚拟终端。
/dev/shm
:shm是SHAred Memory的缩写,是共享数据的地方。
RPC
:远程过程调用。
tmpfs
:当内核需要为每个任务提供空间时,请安装它类型。例如/tmp
注意:首先,阅读有关虚拟文件系统的内容,然后阅读有关安装的内容。