路由器 df 统计的空间小于实际空间是啥情况?

2022-02-18 14:04:11 +08:00
 olaloong

事情的这样的,我一直在路由器上跑 AdGuardHome ,昨天对其升级了下版本。拖进 scp 后我才意识到新版本体积从 18MB+膨胀到了 30MB+,貌似路由器可用空间没这么大,但出乎意料的是上传成功了。

上传目录是 /data/AdGuardHome ,通过 df -h /data/AdGuardHome 命令查看,显示总空间 28.3M ,已用 20.7 M ,可用 6.2M ,而使用 du -sh /data/AdGuardHome 统计占用分明是 32.3M 。与此同时,还可以通过 scp 上传大约 10M 的文件才会报空间不足。路由器是 Redmi AX5.

而在另一台路由器 Redmi AX6 上也是一样,df -h 统计出来的空间不仅小,Available 还是 0 ,而实际还可以再塞下大概 3MB 的文件。

这就给我整不会了。所以,我想问问这是啥情况?以及如何获取正确的已用空间和可用空间信息?

1183 次点击
所在节点    问与答
8 条回复
CallMeReznov
2022-02-18 14:06:43 +08:00
稀疏文件
我之前在 V2 也问过这个问题.
killva4624
2022-02-18 14:20:48 +08:00
有可能是文件被删除,但句柄没释放。
olaloong
2022-02-18 14:31:35 +08:00
@CallMeReznov 学到了。整了个超大的稀疏文件试了,确实会干扰 du 和 ll 的统计,不过 AdGuardHome 这个可执行文件压缩比这么大是我没想到的...

那这么一来,是不是除非把存储空间干爆,不然没法得知实际可用空间有多少了?

[![HTe2qI.png]( https://s4.ax1x.com/2022/02/18/HTe2qI.png)]( https://imgtu.com/i/HTe2qI)


@killva4624 句柄没释放的话,应该是实际可用空间小于显示空间才对。现在是实际可用空间大于显示空间了。
w7938940
2022-02-18 14:40:26 +08:00
AX6 我之前刷了 AdGuard ,开启一个月日志的话空间不足,我就没用了
hahastudio
2022-02-18 14:42:11 +08:00
我记得 AdGuard 最要命的是日志特别大
olaloong
2022-02-18 14:45:45 +08:00
@w7938940 之前被坑过,就改成了保留 24 小时的日志。只要搞得话可以改下 /etc/init.d/AdGuardHome 脚本,给启动命令加上 -w /tmp ,把工作目录挪到内存里,这样空间大不少。不过重启日志就没了,需要的话得提前备份。我放在内存里的目的是不想磨损闪存寿命。
olaloong
2022-02-18 14:48:46 +08:00
@hahastudio 可以把工作目录挪 /tmp 里缓解一下空间问题。而且也没必要留太久日志吧...我留了 24 小时的日志
swiftg
2022-02-18 14:51:24 +08:00
不一定所有的分区都被挂载出来了啊,有可能有隐藏特殊用途的分区,很常见,ls /dev/ | grep mtd

以前用的 linksys 还有两套独立的系统在不同的分区呢,一套挂了就可以切换到另一套

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/834780

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX