How to Troubleshoot File-system Quota Issues

It is often essential to enable and set user and/or group disk usage limits/quotas in order to allocate/share disk space resources efficiently. Unfortunately this often causes confusion and all sorts of problems when these limits are exceeded.

The following command displays quota limits for user “luser” …

~# quota -s -Q luser 
Disk quotas for user luser (uid 1137): 
     Filesystem   space   quota   limit   grace   files   quota   limit   grace
    tubal:/home    446M   1900M   2000M            4188       0       0        

Quota limits have two important settings, soft and hard and these are represented by columns “quota” (soft) and “limit” (hard) in the above display. The column “blocks” displays the current usage.

Unfortunately this display is somewhat cryptic and can be in fact a little noisy. The “Filesystem” column displays the affected file-system although you likely are unfamiliar with the name and might have to use the df command to establish correspondence, e.g.:

$ df -h | grep home
tubal:/mail            50G   25G   26G  50% /home/mail
tubal:/home           1.0T  188G  837G  19% /home/bic

Once the soft limit is attained, you should see the limits displayed in your shell environment. As an example, I will reduce the quota limits for user “luser” in order to trigger the soft limit, something like this:

$ quota -Q luser
Disk quotas for user luser (uid 1137): 
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
    tubal:/home  303368* 300000  350000   7days    3152       0       0

The take home message here is that you have 7 days to clean up! That’s your grace period. You will find below some tips on how to identify disk or file-system usage.

Once the grace period had been exceeded, you may see something like this instead:

$ quota -s -Q luser
Disk quotas for user someuser (uid 1137): 
     Filesystem   space   quota   limit   grace   files   quota   limit   grace
    tubal:/home   1998M*  1900M   2000M 49705days    2801       0       0        

The 49705days is nonsense and should in fact say “none” but as I said, the display can be somewhat cryptic. When you are within the grace period, you can attain the hard limit (in this instance 2000M MB) but once the grace period is exceeded, and whether or not the hard limit is attained, your only option is to move or remove files as you will otherwise not be able to write to the file-system anymore.

Note that once you have exceeded the hard limit and/or the grace period, this will affect all your running applications that require write access to the affected file-system.

Ok, so now how you identify the disk space usage ? The following command may help …

$ ncdu ; $ ncdu -h # for more info

If you like the find command, try the following (as ncdu is not installed by default but you should find it on your path in our environment)

$ find . -maxdepth 1 -type d -exec du -ks {} \; | sort -n -r

The previous cryptic shell command will help you identify disk space usage for a particular directory (and sub-directories as well) - in this instance directory “.”

Replace “.” with a directory of your choosing and experiment!

You could also encapsulate this command within a small shell script as I have already done. So for you lucky enough to have a user account at the BIC, you can simply use the following command:

$ top_du .
741104 .
263784  ./.cxoffice
167272  ./Downloads
152920  ./.local
129860  ./.VirtualBox
98804   ./.spamassassin
87844   ./.mozilla

Those more versed in shell scripting can create their own, type the following to see the contents:

$ cat `which top_du`

There may have been some corruption following an exceeded quota on /home/bic/.

So it would appear that your local window manager configuration is corrupt so please do the following:

  • logout from the graphics console

  • login to the first virtual console by typing Ctrl-Alt-F1

  • login and type the following command:
    rm -f .cache/sessions/xfce4-session*

  • logout from the virtual console

  • login to the graphics console by typing Ctrl-Alt-F7

If this still doesn’t fix the issue, you can be a little bit more brutal and replace the removal/rm step above with:

Beware: this will remove any desktop cutomization you might have done.

rm -rf .cache .config/Thunar .config/xfce4*

If you need help, contact us at bicadmin AT bic.mni.mcgill.ca.