当执行"df -h"时,得到了以下结果:
# df -h
Filesystem Size Used Avail Use% Mounted on
......
tmpfs 32G 0 32G 0% /dev/shm
......
/dev/sda1 248M 37M 200M 16% /boot
......
cm_processes 32G 181M 32G 1% /var/run/cloudera-scm-agent/process
对于第一列的Filesystem,见过/dev/sda1和tmpfs之流的,但是没见过cm_processes这样的。这明显是一个应用自定义的名称,难道用户可以自定义FileSystem吗?带着这个疑问,经过一番search后,终于知道怎么回事了。
原来第一列显示的并不一定都是文件系统的名称(/proc/filesystems中列出了所有的文件系统名称),比如:tmpfs是一种文件系统;/dev/sda1是个分区,对应的文件 系统一般是ext4之类的;cm_processes应该算是用户自定义的分区名称,实际的文件系统是tmpfs(可在/etc/mtab中看到)。
linux中,有三个文件都和mount有关。/etc/fstab、/etc/mtab和/proc/mounts(新版本中变成了/proc/self/mounts)。/etc/fstab是开机时调用的,之后执行的mount操作,就会记录结果在后两个文件中。其实后两个文件内容很相似,个人觉得没有必要存在两个文件。在网上也看到一个帖子,建议将/etc/mtab作为/proc/mounts的软链接。
下面命令模拟了自定义一个分区的过程:
# mkdir /mytestfs
# mount -t tmpfs -o size=1G test_fs_name /mytestfs
# df -h
文件系统 容量 已用 可用 已用%% 挂载点
......
test_fs_name 1.0G 0 1.0G 0% /mytestfs
# cat /etc/mtab
......
test_fs_name /mytestfs tmpfs rw,size=1G 0 0
# cat /proc/mounts
......
test_fs_name /mytestfs tmpfs rw,relatime,size=1048576k 0 0
# umount /mytestfs
# rm -r /mytestfs
上述命令中,将名称为test_fs_name的分区(自定义的名称),挂载到/mytestfs目录,设置该分区的文件类型为tmpfs(这个不能自定义,必须是mount命令支持的type)。然后在/etc/mtab和/proc/mounts中都可以看到最新的挂载成果,但是/etc/fstab是没有的。