Linux磁盘管理——虚拟文件系统
前言
Linux支持众多文件系统,包括:
传统文件系统:ext2 / minix / MS-DOS / FAT (用 vfat 模块) / iso9660 (光盘)等等;
日志式文件系统: ext3 /ext4 / ReiserFS / Windows' NTFS / IBM's JFS / SGI's XFS / ZFS
网络文件系统: NFS / SMBFS
查看当前Linux支持那些FS
ls -l /lib/modules/$(uname -r)/kernel/fs
[root@localhost ~]# ls -l /lib/modules/$(uname -r)/kernel/fs total 20 -rw-r--r--. 1 root root 5952 Apr 21 2018 binfmt_misc.ko.xz drwxr-xr-x. 2 root root 25 Oct 5 17:14 btrfs drwxr-xr-x. 2 root root 30 Oct 5 17:14 cachefiles drwxr-xr-x. 2 root root 24 Oct 5 17:14 ceph drwxr-xr-x. 2 root root 24 Oct 5 17:14 cifs drwxr-xr-x. 2 root root 26 Oct 5 17:14 cramfs drwxr-xr-x. 2 root root 23 Oct 5 17:14 dlm drwxr-xr-x. 2 root root 26 Oct 5 17:14 exofs drwxr-xr-x. 2 root root 24 Oct 5 17:14 ext4 drwxr-xr-x. 2 root root 60 Oct 5 17:14 fat drwxr-xr-x. 2 root root 27 Oct 5 17:14 fscache drwxr-xr-x. 2 root root 42 Oct 5 17:14 fuse drwxr-xr-x. 2 root root 24 Oct 5 17:14 gfs2 drwxr-xr-x. 2 root root 25 Oct 5 17:14 isofs drwxr-xr-x. 2 root root 24 Oct 5 17:14 jbd2 drwxr-xr-x. 2 root root 25 Oct 5 17:14 lockd -rw-r--r--. 1 root root 5224 Apr 21 2018 mbcache.ko.xz drwxr-xr-x. 6 root root 137 Oct 5 17:14 nfs drwxr-xr-x. 2 root root 46 Oct 5 17:14 nfs_common drwxr-xr-x. 2 root root 24 Oct 5 17:14 nfsd drwxr-xr-x. 2 root root 4096 Oct 5 17:14 nls drwxr-xr-x. 2 root root 27 Oct 5 17:14 overlayfs drwxr-xr-x. 2 root root 27 Oct 5 17:14 pstore drwxr-xr-x. 2 root root 28 Oct 5 17:14 squashfs drwxr-xr-x. 2 root root 23 Oct 5 17:14 udf drwxr-xr-x. 2 root root 23 Oct 5 17:14 xfs
查看已载入内存中支持的FS
cat /proc/filesystems
[root@localhost ~]# 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 pipefs nodev anon_inodefs nodev configfs nodev devpts nodev hugetlbfs nodev autofs nodev pstore nodev mqueue nodev selinuxfs xfs
procfs参考:Linux proc filesystem (procfs)
sysfs参考:/sys 和 /dev 区别
linux Kernel如何管理FS
整个Linux 的系统都是通过一个名为 Virtual Filesystem Switch 的核心功能去读取 FS 的。 也就是说,整个 Linux 认识的 FS其实都是 VFS 在管理,使用者并不需要关心每个mount point下面的FS是什么,VFS 会主动的帮我们做好FS读取操作。VFS原理图如下
更通俗的理解VFS,VFS有点像生活在常用的多合一数据线。由于目前基本上所有设备都支持USB,多合一数据线对外统一接口是USB,但是对下却可以接各种不停型号插头。