Linux系统 df 命令显示异常、根目录 分区丢失问题解决
[root@10.207.126.12:~]# df -h Filesystem Size Used Avail Use% Mounted on udev 8.0G 168K 8.0G 1% /dev /dev/sda3 20G 1.7G 18G 9% /usr/local /dev/sda4 103G 63G 35G 65% /data 于是我帮忙解决了一把,看了下 /etc/fstab 内容,根目录挂载信息是正常的: [root@10.207.126.12:~]# cat /etc/fstab /dev/sda1 / ext3 noatime,acl,user_xattr 1 1 /dev/sda2 swap swap defaults 0 0 /dev/sda3 /usr/local ext3 noatime,acl,user_xattr 1 2 /dev/sda4 /data ext3 noatime,acl,user_xattr 1 2 proc /proc proc defaults 0 0 sysfs /sys sysfs noauto 0 0 debugfs /sys/kernel/debug debugfs noauto 0 0 devpts /dev/pts devpts mode=0620,gid=5 0 0 接着,看了下 /etc/mtab 文件内容,发现根目录缺失: [root@10.207.126.12:~]# cat /etc/mtab proc /proc proc rw 0 0 udev /dev tmpfs rw 0 0 devpts /dev/pts devpts rw,mode=0620,gid=5 0 0 /dev/sda3 /usr/local ext3 rw,noatime,acl,user_xattr 0 0 /dev/sda4 /data ext3 rw,noatime,acl,user_xattr 0 0 nfsd /proc/fs/nfsd nfsd rw 0 0 执行 grep -v rootfs /proc/mounts 命令进行修复: [root@10.207.126.12:~]# grep -v rootfs /proc/mounts > /etc/mtab [root@10.207.126.12:~]# cat /etc/mtab /dev/root / ext3 rw,data=ordered 0 0 proc /proc proc rw 0 0 sysfs /sys sysfs rw 0 0 udev /dev tmpfs rw 0 0 devpts /dev/pts devpts rw 0 0 /dev/sda3 /usr/local ext3 rw,noatime,data=ordered 0 0 /dev/sda4 /data ext3 rw,noatime,data=ordered 0 0 nfsd /proc/fs/nfsd nfsd rw 0 0 可以看到,根目录已经出现了,再执行 df -h 就正常了: [root@10.207.126.12:~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/root 9.9G 5.0G 4.4G 54% / udev 8.0G 168K 8.0G 1% /dev /dev/sda3 20G 1.7G 18G 9% /usr/local /dev/sda4 103G 63G 35G 65% /data 另外的机器 [root@10.12.208.117:/var/spool/postfix]# grep -v rootfs /proc/mounts > /etc/mtab grep: write error: No space left on device 看来是空间不足,找了下发现是 maildrop 目录把根目录撑爆了: [root@10.12.208.117:/var/spool/postfix]# du -sh * 4.0K active 4.0K bounce 4.0K corrupt 4.0K defer 4.0K deferred 4.0K flush 4.0K hold 4.0K incoming 9.4G maildrop 8.0K pid 4.0K private 4.0K public 4.0K saved 4.0K trace 直接清空,在执行 grep -v rootfs /proc/mounts >/etc/mtab 命令进行修复: [root@10.12.208.117:/var/spool/postfix]# grep -v rootfs /proc/mounts > /etc/mtab [root@10.12.208.117:/var/spool/postfix]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 20G 10.5G 9.5G 53% / /dev/sda2 20G 1.7G 18G 9% /usr/local /dev/sda3 103G 63G 35G 65% /data 已经正常了,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 因为磁盘满或文件系统异常,导致该文件内缺失常或直接为空,就会出现上文记录的问题了。 几个 Linux 查找文件和空间的命令
管道删除本目录下的文件 ls | xargs rm -f
没有评论
|
|
Copyright © 2012-2013 迪赛普科技 版权所有
合作邮箱:admin@desipo.com 合作QQ:76052083 |