There is a bug in MkLinux, at least up to DR2.1, that causes file
inodes, and thus the rest of the file, not to be released properly when
a file is deleted that has previously been mapped into memory---this
includes any executable that has been run since you last rebooted.
One symptom of this is a message from fsck that says:
deleted inode ###### has zero dtime. Set? <y>
[or similar]. Responding 'y' to this message (which happens
automatically when fsck is being run as you reboot) will release the
additional space. However, fsck only does a full run if the system
crashed, if a long time has elapsed since the last full run, or if
the system has been rebooted many times since the last full run.
You can use the 'tune2fs' command to adjust your filesystems to make
fsck run a full check more often, which should reduce the amount of
disk space used in this way.
- Geoff Keating <Geoff.Keating@anu.edu.au>
This problem is fixed in later updates (Update 2 or so?) of DR2.1.
It is suggested that, for this reason, among others, you immediately
upgrade your system to the most recent update release. (This is a
good idea anyway....)
Also, the system reserves a percentage of your disk for use by root
and system use only (usually 5-10%). When the system reaches this
soft limit, df shows it as 100% full, but the space used doesn't
match the total space. Users will see a "no space left on device"
message, while root and programs running as root (like the sendmail
daemon, system logging, etc.) will continue to function. If that's
the problem, you can reduce the overhead, but performance may suffer
(this overhead is used for automatic defragmenting of the drive,
among other things).
If the system is nearly full, though, it's probably a better idea to
add another partition to hold some of your files. If you're out of
disk space, check at the various mail-order vendors. You can
frequently get 9 gig drives for as little as $399 refurbished, if you
look hard enough.