Different free disk space reported by df and du commands
This document (7010921) is provided subject to the disclaimer at the end of this document.
Environment
SUSE Linux Enterprise Desktop 11 Service Pack 2
SUSE Linux Enterprise Server 10 Service Pack 4
SUSE Linux Enterprise Server 11 Service Pack 1
SUSE Linux Enterprise Server 11 Service Pack 2
SUSE Linux Enterprise Server for System z
SUSE Linux Enterprise Server for SAP Applications
Situation
Resolution
Workaround:
Command lsof lists open files, so any deleted file still being open by a process or program can be found.
Additional Information
1. List free disk space using "df -h":
linux:~$ df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 20G 5,9G 14G 32% /
devtmpfs 2,0G 36K 2,0G 1% /dev
tmpfs 2,0G 768K 2,0G 1% /dev/shm
tmpfs 2,0G 628K 2,0G 1% /run
/dev/sda6 20G 5,9G 14G 32% /
tmpfs 2,0G 0 2,0G 0% /sys/fs/cgroup
tmpfs 2,0G 628K 2,0G 1% /var/lock
tmpfs 2,0G 0 2,0G 0% /media
tmpfs 2,0G 628K 2,0G 1% /var/run
/dev/sda7 274G 55G 218G 21% /home
2. Create a large file as root inside /media folder (showing 0% used space in df output):
linux:~ # dd if=/dev/zero of=/media/testfile bs=1024 count=500000
500000+0 records in
500000+0 records out
512000000 bytes (512 MB) copied, 0,351566 s, 1,5 GB/s
3. Print the output of du and df:
linux:~ # echo -e "\ndf output:\n" ; df -h;\
echo -e "\ndu output:\n" ; du -h --max-depth=1 /media
df output:
Filesystem Size Used Avail Use% Mounted on
rootfs 20G 5,9G 14G 32% /
devtmpfs 2,0G 44K 2,0G 1% /dev
tmpfs 2,0G 808K 2,0G 1% /dev/shm
tmpfs 2,0G 656K 2,0G 1% /run
/dev/sda6 20G 5,9G 14G 32% /
tmpfs 2,0G 0 2,0G 0% /sys/fs/cgroup
tmpfs 2,0G 656K 2,0G 1% /var/run
tmpfs 2,0G 656K 2,0G 1% /var/lock
tmpfs 2,0G 489M 1,5G 25% /media
/dev/sda7 274G 55G 218G 21% /home
du output:
489M /media
The reported size is same for both commands.
4. Open the testfile in vi editor with:
linux:~ # vi /media/testfile
5. In other terminal session remove the file:
linux:~ # rm /media/testfile
6. Print the df and du output again:
linux:~ # echo -e "\ndf output:\n" ; df -h; \
echo -e "\ndu output:\n" ; du -h --max-depth=1 /media
df output:
Filesystem Size Used Avail Use% Mounted on
rootfs 20G 5,9G 14G 32% /
devtmpfs 2,0G 44K 2,0G 1% /dev
tmpfs 2,0G 808K 2,0G 1% /dev/shm
tmpfs 2,0G 656K 2,0G 1% /run
/dev/sda6 20G 5,9G 14G 32% /
tmpfs 2,0G 0 2,0G 0% /sys/fs/cgroup
tmpfs 2,0G 656K 2,0G 1% /var/run
tmpfs 2,0G 656K 2,0G 1% /var/lock
tmpfs 2,0G 489M 1,5G 25% /media
/dev/sda7 274G 55G 218G 21% /home
du output:
4,0K /media
Because the file is still in use by vi editor df still reports 489M in use, while du lists no space used on /media.
7. This will list all large files on /media:
linux:~ # lsof /media | awk '{ if($7 > 1048576) print $7/1048576 "MB" " " $9 }'
0MB NAME
488.281MB /media/testfile
Disclaimer
This Support Knowledgebase provides a valuable tool for SUSE customers and parties interested in our products and solutions to acquire information, ideas and learn from one another. Materials are provided for informational, personal or non-commercial use within your organization and are presented "AS IS" WITHOUT WARRANTY OF ANY KIND.
- Document ID:7010921
- Creation Date: 12-Oct-2012
- Modified Date:03-Mar-2020
-
- SUSE Linux Enterprise Desktop
- SUSE Linux Enterprise Server
For questions or concerns with the SUSE Knowledgebase please contact: tidfeedback[at]suse.com