1. 查看系统所支持的文件系统的方法
1.1 通过命令查看
mount
df
fdisk
file
parted
fstab
1.2 通过系统文件查看
cat /proc/filesystems
ls /lib/modules/2.6.x/kernel/fs
例如,
# ls /lib/modules/3.2.0-24-generic-pae/kernel/fs/
9p befs cachefiles cramfs fat hfs jfs nfs_common ocfs2 reiserfs udf
adfs bfs ceph dlm freevxfs hfsplus lockd nfsd omfs romfs ufs
affs binfmt_aout.ko cifs efs fscache hpfs minix nilfs2 overlayfs squashfs xfs
afs binfmt_misc.ko coda exofs fuse isofs ncpfs nls qnx4 sysv
autofs4 btrfs configfs ext2 gfs2 jffs2 nfs ntfs quota ubifs
2. 查看当前系统mount支持的文件系统类型
# cat /proc/filesystems
nodev sysfs
nodev rootfs
nodev bdev
nodev proc
nodev tmpfs
nodev sockfs
nodev usbfs
nodev pipefs
nodev devpts
ext2
ext3
ext4
nodev ramfs
vfat
nodev fuse
fuseblk
nodev fusectl
nodev mtd_inodefs
从上面可以看出,有些文件系统挂载(原则上,mount的对象是设备)时,是没有办法指定挂载设备的(nodev)。
因此,系统中(尤其是嵌入式系统)会经常出现一些特殊的挂载,如:
mount -t proc proc /proc
(下面是系统为了支持hotplug的所需的挂载操作)
mount -t tmpfs mdev /dev
mount -t sysfs sysfs /sys
mount -t devpts devpts /dev/pts
而常规的挂载方式为:
mount -t ntfs /dev/sdc1 /mnt/usbhd1
3. 部分特殊文件系统的介绍
3.1 tmpfs
转自:http://zhidao.baidu.com/link?url=8Z_3ddhxqE6-CJ6PnW8pU9T4EcirtQfZyzzCIWbjesqF6oo5MLICxQ4wDR0gcGyzsz6eTDezlG45yZ5zKyDSDAfqFyosoqzCgzBbDEB78PK
tmpfs is a common name for a temporary file storage facility on many Unix-like operating systems. It is intended to appear as a mounted file system, but stored in volatile memory instead of a persistent storage device.
是一个虚拟内存文件系统,它不同于传统的用块设备形式来实现的Ramdisk,也不同于针对物理内存的Ramfs。Tmpfs可以使用物理内存,也可以使用交换分区。
在Linux内核中,虚拟内存资源由物理内存(RAM)和交换分区组成,这些资源是由内核中的虚拟内存子系统来负责分配和管理。
Tmpfs向虚拟内存子系统请求页来存储文件,它同Linux的其它请求页的部分一样,不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样,其大小也不是固定的,而是随着所需要的空间而动态的增减。
使用tmpfs,首先你编译内核时得选择”虚拟内存文件系统支持(Virtual memory filesystem support)”。
然后就可以加载tmpfs文件系统了
# mkdir -p /mnt/tmpfs
# mount tmpfs /mnt/tmpfs -t tmpfs
同样可以在加载时指定tmpfs文件系统大小的最大限制
# mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m
3.2 sysfs
转自:http://zhidao.baidu.com/link?url=6pd0ISlzAgRcHvrdsCZJwWom1yAuhdlCdlq3h6-rs1P_BQg8mLJsgepJHrqfykJB-t-F3CjZMBD-08FYwKaC6SdJiCANQ7ZDXzM-a9wxUV7
Sysfs 是 Linux 2.6 所提供的一种虚拟文件系统。这个文件系统不仅可以把设备(devices)和驱动程序(drivers) 的信息从内核输出到 用户空间,也可以用来对设备和驱动程序做设置。
Linux内核开发团队在 Linux 2.5 的开发过程中,引入了‘Linux 驱动程序模型’(Linux driver model),以解决 2.4 核心所遭遇的以下问题:
没有统一的机制表达驱动程序和设备的关系。
不存在一般的热插拔(hotplug)机制。
procfs 文件系统过度混乱,包含了许多不是进程(process)的信息。
sysfs 的目的是把一些原本在 procfs 中的,关于设备的部份,独立出来,以‘设备层次结构架构’(device tree)的形式呈现。这个文件系统由 Patrick Mochel 所写,稍后 Maneesh Soni 撰写 "sysfs backing store path",以降低在大型系统中对存储器的需求量。
sysfs 一开始以 ramfs 为基础,也是一个只存在于存储器中的文件系统。ramfs 是在 2.4 核心处于稳定阶段时加入的。ramfs 是一个优雅的实做,证明了要在当时仍很新的 VFS (虚拟文件系统)(en:Virtual file system)下写一个简单的文件系统是多么容易的一件事。由于 ramfs 的简洁以及使用了 VFS,稍后的一些存储器形式的文件系统都以它作为开发基础。
sysfs 刚开始被命名成 ddfs (Device Driver Filesystem),当初只是为了要对新的驱动程序模型除错而开发出来的。它在除错时,会把设备架构(device tree)的信息输出到 procfs 文件系统中。但在 Linus Torvalds 的急切督促下,ddfs 被转型成一个以 ramfs 为基础的文件系统。在新的驱动程序模型被集成进 2.5.1 核心时,ddfs 被改名成 driverfs,以更确切描述它的用途。
在 2.5 核心开发的次年,新的“驱动程序模型”和 "driverfs" 证明了对核心中的其他子系统也有用处。kobjects 被开发出来,作为核心对象的中央管理机制,而此时 driverfs 也被改名成 sysfs。
3.3 devpts
一个虚拟的文件系统,一般安装在/dev/pts。为了得到一个虚拟终端,进程打开/dev/ptmx,然后就可使用虚拟终端。
3.4 proc
proc 文件系统是一种内核和内核模块用来向进程 (process) 发送信息的机制 (所以叫做 /proc)。这个伪文件系统让你可以和内核内部数据结构进行交互,获取 有关进程的有用信息,在运行中 (on the fly) 改变设置 (通过改变内核参数)。 与其他文件系统不同,/proc 存在于内存之中而不是硬盘上。如果你察看文件 /proc/mounts (和 mount 命令一样列出所有已经加载的文件系统),你会看到其中 一行是这样的:
grep proc /proc/mounts
/proc /proc proc rw 0 0
/proc 由内核控制,没有承载 /proc 的设备。
挂载命令为:mount -t proc proc /proc