Disk space alarms usually trace back to a single filesystem, not the entire server. Mapping a busy directory to its mount point plus backing source keeps cleanup and capacity work focused on the storage that is actually full.
Linux builds the directory tree by attaching filesystems at mount points recorded in /proc/self/mountinfo. The df command reports filesystem capacity for whatever mount contains a path, while findmnt reveals the matching mount entry, including the source device or network export, filesystem type, and mount options.
Filesystem percentages from df do not indicate which subdirectory is consuming space, and nested mounts can hide inside a larger path (for example, a separate /var/log mount under /var). Non-root accounts can also see reduced available space on filesystems that reserve blocks, so run checks as a privileged user when numbers look inconsistent.
Steps to identify a mount point from disk usage with df and findmnt in Linux:
- Check filesystem usage for a path.
$ df -hT / Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/ubuntu--vg-ubuntu--lv ext4 30G 6.1G 23G 22% /
The Mounted on column identifies the mount point for the filesystem that contains the path.
- Resolve the mount table entry for the same path.
$ findmnt --target / --output TARGET,SOURCE,FSTYPE,OPTIONS TARGET SOURCE FSTYPE OPTIONS / /dev/mapper/ubuntu--vg-ubuntu--lv ext4 rw,relatime
The SOURCE field may be a block device, a device-mapper path, or a remote export such as server:/share.
- List submounts below the path to detect nested filesystems.
$ findmnt --target / --submounts --output TARGET,SOURCE,FSTYPE | head -n 10 TARGET SOURCE FSTYPE / /dev/mapper/ubuntu--vg-ubuntu--lv ext4 ├─/sys sysfs sysfs │ ├─/sys/firmware/efi/efivars efivarfs │ ├─/sys/kernel/security securityfs │ ├─/sys/fs/cgroup cgroup2 │ ├─/sys/fs/pstore pstore │ ├─/sys/fs/bpf bpf │ ├─/sys/kernel/debug debugfs │ ├─/sys/kernel/tracing tracefs
Run the same checks on any listed submount to avoid mixing usage across different filesystems.
- Locate the SOURCE device from findmnt in lsblk output.
$ lsblk --ascii --paths --output NAME,TYPE,SIZE,FSTYPE,MOUNTPOINTS | head -n 12 NAME TYPE SIZE FSTYPE MOUNTPOINTS /dev/loop0 loop 1G |-/dev/loop0p1 part 256M ext4 /root/disk |-/dev/loop0p2 part 128M /mnt/uuidtest `-/dev/loop0p3 part 256M ext4 /mnt/uuiddemo /dev/loop1 loop 300M ext4 /dev/sda disk 64G |-/dev/sda1 part 1G vfat /boot/efi |-/dev/sda2 part 2G ext4 /boot `-/dev/sda3 part 60.9G LVM2_member `-/dev/mapper/ubuntu--vg-ubuntu--lv lvm 30.5G ext4 / /dev/sr0 rom 1024M
Network mounts (for example, NFS, SMB) do not appear in lsblk because they are not local block devices.
- Display the UUID for a block device or disk image when an /etc/fstab entry uses UUID=.
$ sudo blkid /root/sg-work/blkid-demo.img /root/sg-work/blkid-demo.img: UUID="6d35a8fe-4bd4-4f24-b88d-e0c5b51fb74b" BLOCK_SIZE="4096" TYPE="ext4"
Mohd Shakir Zakaria is a cloud architect with deep roots in software development and open-source advocacy. Certified in AWS, Red Hat, VMware, ITIL, and Linux, he specializes in designing and managing robust cloud and on-premises infrastructures.
