将来的你
一定会感谢现在拼命努力的自己

Linux系统 df 命令显示异常、分区丢失问题解决

本文记录 2 种因 /etc/mtab 文件异常导致 df 命令显示异常、分区丢失问题的解决过程,以备后用。Linux系统 df 命令显示异常、分区丢失问题解决

一、根目录丢失

前些日子,同事在 RTX 群里问大家,有台服务器执行 df -h 看不到根目录,该如何解决?

于是我帮忙解决了一把,看了下 /etc/fstab 内容,根目录挂载信息是正常的:

接着,看了下 /etc/mtab 文件内容,发现根目录缺失:

执行 grep -v rootfs /proc/mounts 命令进行修复:

可以看到,根目录已经出现了,再执行 df -h 就正常了:

二、df 命令报错

帮同事解决问题后,不巧自己负责的服务器也出现类似问题,执行 df 命令报如下错误:

df: cannot read table of mounted file systems: No such file or directory

想着应该可以上述问题原因一样,所以直接执行修复命令,发现报错:

看来是空间不足,找了下发现是 maildrop 目录把根目录撑爆了:

直接清空,在执行 grep -v rootfs /proc/mounts >/etc/mtab 命令进行修复:

已经正常了,maildrop 爆满的问题一般是 crontab 未屏蔽错误造成的,于是顺手将 crontab 里面的条目都带上了 2>&1 屏蔽了,下次应该不会出现因为目录爆满导致 mtab 异常的情况了。

三、区别与联系

继续记录一下/etc/fstab 和/etc/mtab 的区别和联系。

/etc/fstab 文件记录了服务器上硬盘分区信息,启动 Linux 的时候,检查分区的 fsck 命令和挂载分区的 mount 命令都需要 fstab 中的信息,来检查和挂载分区。

/etc/mtab 文件记载的是现在系统已经装载的文件系统,包括操作系统建立的虚拟文件等,每当 mount 挂载分区、umount 卸载分区,都会动态更新 mtab,mtab 总是保持着当前系统中已挂载的分区信息,fdisk、df 这类程序,必须要读取 mtab 文件,才能获得当前系统中的分区挂载情况。

当然我们自己还可以通过读取/proc/mount 也可以来获取当前挂载信息(即使用文章中用到的修复命令 grep -v rootfs /proc/mounts)。

当 /etc/mtab 因为磁盘满或文件系统异常,导致该文件内缺失常或直接为空,就会出现上文记录的问题了。

赞(0) 打赏
声明:本站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,若涉及侵权请及时告知,将会在第一时间删除,联系邮箱:contact@3yyy.top。文章观点不代表本站立场。本站原创内容未经允许不得转载:三叶运维 » Linux系统 df 命令显示异常、分区丢失问题解决
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

https://beian.miit.gov.cn/