首页 > linux基础 > df出现df: cannot read table of mounted file systems的解决方法
2015
03-19

df出现df: cannot read table of mounted file systems的解决方法

   出现df: cannot read table of mounted file systems,按照网上的说法使用grep -v rootfs /proc/mounts > /etc/mtab即可,我这边测试之后确实如此。

  但今天早上又遇到一个问题,如下

  重新加载tmpfs分区即提示权限不足。

  先来了解一下/etc/fstab和/etc/mtab的区别和联系。

   /etc/fstab文件的作用记录了计算机上硬盘分区的相关信息,启动 Linux 的时候,检查分区的 fsck 命令,和挂载分区的 mount 命令,都需要 fstab 中的信息,来正确的检查和挂载硬盘。 

    /etc/mtab文件的作用记载的是现在系统已经装载的文件系统,包括操作系统建立的虚拟文件等;而/etc/fstab是系统准备装载的。 

   每当 mount 挂载分区、umount 卸载分区,都会动态更新 mtab,mtab 总是保持着当前系统中已挂载的分区信息,fdisk、df 这类程序,必须要读取 mtab 文件,才能获得当前系统中的分区挂载情况。当然我们自己还可以通过读取/proc/mount也可以来获取当前挂载信息。

  这就解释了df会出现问题的所在。从上面的资料中我们可以看出/etc/mtab是动态在变化的,每一次的挂载分区都会修改这个文件,那为何mount -o remount tmpfs会提示权限不足呢?

  仔细折腾了一下,原来是chattr的问题。看以下实验。

   从上面的测试中可以看出,chattr对目录进行加i的权限限制,我们是可以用系统命令来修改文件的,但不能新增文件。而在mount里会产生一个临时文件,然后/etc这个目录有加锁,所以就出现不会重新挂载了。

最后编辑:
作者:admin
这个作者貌似有点懒,什么都没有留下。

df出现df: cannot read table of mounted file systems的解决方法》有 1 条评论

  1. 123213 说:

     ls -l /etc/mtab,看看它是不是到/proc/self/mounts的链接,不是的话
    ln -snf /proc/self/mounts /etc/mtab就可以修复