磁盘使用 – overlayfs占用的空间

我有一个带有只读根文件系统的linux和一个安装在其上的读写overlayfs:

# mount
overlayfs on / type overlayfs (rw,relatime,lowerdir=/root_ro/,upperdir=/root_rw/)
...

overlayfs几乎已满

# df
Filesystem           1K-blocks      Used Available Use% Mounted on
overlayfs              4003548   3995012      8536  99% /
...

如何识别使用overlayfs的读/写部分的文件? du不区分ro和rw媒体上占用的空间.我在find中找到了选项-fstype类型,但是我的linux有busybox而find却不支持这个选项.

编辑:添加cat / proc / mounts的输出

rootfs / rootfs rw 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
none /dev devtmpfs rw,relatime,size=1026976,nr_inodes=256744,mode=755 0 0
/dev/sda1 /root_rw ext4 rw,relatime,errors=remount-ro,data=ordered 0 0
ubi0:rootfs /root_ro ubifs ro,noatime,nodiratime 0 0
overlayfs / overlayfs rw,relatime,lowerdir=/root_ro/,upperdir=/root_rw/ 0 0
debugfs /sys/kernel/debug debugfs rw,relatime 0 0
devpts /dev/pts devpts rw,relatime,gid=5,mode=620 0 0
最佳答案
覆盖文件系统中并没有“占据空间的东西”的概念.工会的每个分支都有自己的占领空间.在两个分支上运行du.如果它变得越来越满,那么读写分支就是罪魁祸首.

由于叠加层安装会影响其分支(/ root_ro和/ root_rw被/上的挂载隐藏),因此您需要访问分支.您可以通过再次安装块设备来实现这一点(Linux支持此功能,至少对于大多数块设备类型而言):

mkdir /media/root_ro /media/root_rw
mount /dev/sda1 /mnt/root_rw
mount ubi0:rootfs /mnt/root_ro
du /mnt/root_ro /mnt/root_rw

转载注明原文:磁盘使用 – overlayfs占用的空间 - 代码日志