Disk-Usage

什麼佔用overlayfs的空間

  • April 20, 2016

我有一個帶有隻讀根文件系統和安裝在其上的讀寫 overlayfs 的 linux:

# 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 介質上佔用的空間。我在其中找到了該選項-fstype typefind但我的 linux 有busybox,並且該查找不支持該選項。

編輯:添加輸出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

引用自:https://unix.stackexchange.com/questions/277277