问题记录 bug1-系统上电挂载异常分区,df与du命令查看文件使用大小显示不一样

news/2025/2/11 13:10:51/

linux磁盘分区

在Linux中,一切皆目录,每一块硬盘分区对应Linux的一个目录,所以我们可以通过管理目录来管理硬盘分区,而将硬盘分区与文件目录关联的操作就称为“挂载”【mount】,反之为“卸载”【unmount】
在这里插入图片描述

emmc,nandflash,第一次使用时是需要进行分区的,BootLoader,kernel,dts,rootfs,usrdate等等。
kernel启动时,会根据设计好的分区,进行划分,系统每次上电时,需要对划分的分区进行文件挂载,才能使用这个分区,
在里面读写文件。
mount –t ext4 –o rw /dev/vblkdev11 /logs1
mount –t ext4 –o rw /dev/vblkdev12 /logs2

将vblkdev11 挂载在logs上,如果是ext4格式的,就是用ext4格式对这个分区进行文件管理,记录读写文件
在这里插入图片描述
我们分配的block0p1,是给根文件系统用的,kernel启动后,会将/root挂载在这个分区,这样,后面kernel挂载完驱动后,就会去启动第一个进程,并使用/etc下的各种配置文件,对系统进行配置,比如配置网卡ip,配置log日志,并启动各种脚本,各种用户程序。
在这之前,还会挂载用户设计的分区,比如block5,6,7,等下面这些磁盘分区,在根文件系统有用户写好的脚本,指定对应的文件夹,
挂载在对应的分区上,这样,就可以读取这个文件夹的数据,这些分区不是rootfs根文件系统哦,虽然在root下,可以访问各个文件夹,
只是rootfs提给的一个接口,访问通道,用户分区是用户分区,与root根文件系统不是同一个分区,
在这里插入图片描述

根文件系统下可以看到一个log分区,他并不属于rootfs,我们的rootfs只有11g,如果有大量的数据,是放不下的,所以需要分配用户分区,
在这里插入图片描述

然后下电时,需要卸载umount驱动,卸载挂载文件,

、查看磁盘挂载情况
1、相关指令

lsblk-------显示磁盘信息
lsblk -f-------显示详细信息
在这里插入图片描述

对硬盘进行分区
分区指令:fdisk/dev/xxx
接下来对sdb硬盘分两个区,每个区各3G

进入主题:挂载异常分区,df与du命令,大小显示不一样的原因

一直在报 IOError: [Errno 28] No space left on device 内存不足的错误,用df查看查看使用率是100%,但是用du检查发现还有7G的内存。所以一直在好奇为什么 df du差别这么大,我电脑消失的7个G去哪了呢?
大概了解了一下du和df的区别:
du: disk usage 磁盘空间,是文件夹里所有文件大小叠加在一起计算的。
df: disk free 磁盘空闲空间,是通过统计磁盘中空闲计算的。

1、系统在跑时,有很多进程在运行,如果删除某些进程正在使用的文件,实际是只删除了内存的文件,原理是文件时躺在磁盘emmc,nandflash,硬盘,这种介质里的,需要打开某个文件时,系统会读取这个文件到内存,当关闭close时,才会刷新到磁盘里,或使用sync指令,会刷新,所以,直接删除文件,进程仍然在使用这个文件句柄fd,使用du指令是统计文件大小的指令,当一个文件被删除后,在文件系统目录中已经不可见了,所以du就不会再统计它了,但文件仍然还在硬盘里,df命令是统计硬盘大小的文件,会统计这个文件的大小,所以,df与du看到差异很大。

用 lsof 寻找打开的文件
lsof (list open files) 命令列出特定的文件系统、目录或设备上所有打开的文件以及与它们相关联的进程。在大多数 UNIX 和类 UNIX 系统上都可以使用 lsof 命令。

使用这个命令lsof |grep deleted查看哪些文件被删除,或lsof log 或 lsof |grep log,列出使用这个文件夹的进程,然后kill命令,对其进行删除。再使用du和df统计,就是一样的,或者重启系统,就会恢复。
在这里插入图片描述

我在网络上搜索了众多的资源,都没有说出最终的解决办法,因为大部分人认为,df和du显示空间不一致,都是因为有程序或服务占用造成的,而我的并没有占用,那么就不是这个原因,重启服务器或服务器根本不能解决这个问题。
2、第二点是分区里,文件出现了损坏,du命令无法对损坏文件进行统计,df查看是,这些文件,仍然在磁盘里。

重点来了!上面文章说过:df可以统计已经删除的但还在被使用的,du不统计已经删除的,那么如果损坏的文件会不会被统计呢?从解决这个问题上来讲,损坏的文件并不是被删除,而是还存在的资源,但是df却已经统计不到了,但du却可以统计到,这个问题真是弄得我心力憔悴,我是怎么发现这些文件已经损坏了呢?当然用du命令查看大文件时发现的。命令是:du -h --max-depth=1。红框中的就是未被找到,暂时认为已经损坏的文件。
在这里插入图片描述
于是乎,我们利用修复命令修复一下文件系统:

命令如下: fsck -fyv /dev/vdb1

/dev/vdb1 是磁盘,你的可能是别的,请自己查看。如果不能运行,那么还请取消挂载然umount /www,再运行 fsck -fyv /dev/vdb1,如果成功,说明就是这个原因导致的,此时你再次运行df和du已经一样,问题就找到了。成功后还请您再次重新挂载您的硬盘。
————————————————
版权声明:本文为CSDN博主「那片沉默的天」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lianjiangdai/article/details/107490656

根据这个博主说的,确实解决了问题,所以,这里提一下,为啥会出现这种损坏文件,导致磁盘分区异常的呢,有可能是系统关机过程,正在写文件,突然断电了,就会导致这个文件的损坏,所以一般正常的关机,都会去umount 驱动,挂载文件,

所以,我查询关掉所有的与log有关的进程,umount –f /logs,如果出现busy,一定是有进程没有关闭完,使用这个log文件,
然后使用,修复磁盘,e2fsck -p -f /dev/vblkdev11
又提示,使用这个 fsck -fyv /dev/vdb11,e2fsck和fsck是差不多的,带不同参数会有不同作用,可以查下,
然后,badblocks -b 4096 -c 16 /dev/vblkdev11 -o hda-badblocks-list ,检测硬盘坏道,并将结果输出到当前目录下,
完成后cat hda-badblocks-list,检查是否有坏块的问题。

按理上面步骤可以,重新挂载上,df与du查下是正常的,
我是忘了,直接 mkfs.ext4 /dev/vblkdev11 ,对block11分区进行格式化,
mount –t ext4 –o rw /dev/vblkdev11 /logs , 重新挂载到logs目录,
检查logs分区,磁盘是可以恢复正常。
但是如果有重要文件,不能直接格式他,直接fsck修复就可以,


http://www.ppmy.cn/news/123487.html

相关文章

中国智能茶具及电热水壶市场发展分析及投资规模预测报告2022-2028年版

中国智能茶具及电热水壶市场发展分析及投资规模预测报告2022-2028年版 【撰写单位】:鸿晟信合研究院 【报告目录】: 第1章:中国智能茶具及电热水壶行业发展综述 1.1 智能茶具及电热水壶行业报告研究范围 1.1.1 智能茶具及电热水壶行业专业名词解释 1…

香烟价格

上海地区报价,欢迎补漏 改错 有的价格过高或偏底是地域不同 .  品名    产地   批发  零售白沙(硬盒) 长沙卷烟厂 42.00 4.50 白沙(软盒) 长沙卷烟厂 37.00 4.00 芙蓉(黄盒) 常德卷烟厂 22.00 2.…

LM393电压比较器介绍

概述 LM393 是双电压比较器集成电路。主要应用在脉冲发生器、模数转换器、限幅器、数字逻辑门电路、电压比较电路等场合。LM393电压比较器能直接连接TTL和CMOS电平电路。 特点 1、工作温度范围:0℃ --- 70℃; 2、工作电源电压范围宽,单电源、双电源均…

食品级,精准控温,超平民价的米家电水壶2这么6?

如何选择一款好看又实用的电水壶?相信这也是很多消费者关心的问题,容量小、不保温、设计不好看、不实用,这些问题总是困扰着大家,就跟先锋一样,家里小孩多,又特别喜欢喝开水,所以说容量大、保温…

小米米家发布了一款恒温电水壶,红米 3S 也低调上线

作为米家电饭煲之后的第二款产品,米家恒温电水壶依旧是纯白色的外观设计,桶式直立造型。 与市面上常见的带有保温功能的电水壶相比,米家电水壶最大的特点是内建了蓝牙模块,通过蓝牙与手机相连,可在小米智能家庭 App 中…

如何计算价格

在做一些关于销售系统的项目时,肯定避免不了计算价格的功能,所以为了项目的需求,下面就和大家分享一个简单的计算价格的例子。 1、首先就是搭建页面了,代码如下图所示: 页面还是比较简单的,布局了一个卖水…

小米推出199元恒温电水壶 网友:能刷机吗?

昨日,小米生态链米家推出了一款恒温电水壶,具备快速沸腾、304 不锈钢内胆、水温智能控制、三重安全保护等卖点,售价199 元。 据介绍,该恒温电水壶内置1800W 大功率聚能加热环,5 分钟烧开。水壶内部采用304 不锈钢内胆&…

酒店价格

时间限制:1秒 空间限制:32768K 题目描述 酒店房间的价格录入是通过时间段来录入的,比如10月1日至10月7日800元,10月8日至10月20日500元,请实现以下函数int[][] merge(int[][] dateRangePrices),输入是某个…