Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I'm running Ubuntu and have had a problem where the root partition has run out of disk space.

When I perform df -h I get the following:

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda6             4.6G  4.5G     0 100% /

Yet there are only 2GB of files actually using up this partition. I then ran the following df -i and I get the following:

Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda6             305824  118885  186939   39% /

I have no idea what the -i flag does but it clearly shows that only 39% is used.

Can anyone explain where my disk space has gone?

share|improve this question

4 Answers 4

up vote 6 down vote accepted

You probably have a process keeping a file open that's been deleted. Deleted but open files keep consuming disk space, but don't show up in du or ls. "df -i" is a red herring, it just shows you how many files you have, or more technically, how many inodes.

If you can't figure out what process is holding a big (deleted) file open, and chances are it's a zombie or something hung, it might be time for a reboot.

share|improve this answer
    
I think reboot may be the best option. I'm just worried that it will fail to boot due to there being no disk space on / –  Camsoft Mar 16 '10 at 11:58

You can try:

lsof +L1

to show unlinked files including their sizes and what has them open.

share|improve this answer
    
darn!, i need a +4 button! –  Javier Mar 16 '10 at 14:42

df -i shows inodes, which is not what you are looking for. Do you have an unusually large block size, maybe 128/256k? If you do, even a 1K file will take up that amount of space.

share|improve this answer
    
How can I find out the block size? –  Camsoft Mar 16 '10 at 11:50
    
Assuming you are using EXT3 (Which might not be a safe assumption) tune2fs -l /dev/sda6 | grep -i 'block size' should do it –  MDMarra Mar 16 '10 at 13:39

df -i show how many of your i-nodes you have used, not how much space you have used.

Some Unix/Linux filesystems (you don't say what you use), do have a limit on how many files/i-nodes they can hold in addition to the disk space limit. That means if you have many very small files your filesystem might be full even with space remaining because all i-nodes are used up. To check this you can look at the i-nodes used with the df -i command.

share|improve this answer
    
My question clearly shows the output of the df -i command. –  Camsoft Mar 16 '10 at 12:15
    
To see where your disk space has gone you can use the 'du' command. It will show you, directory by directory, how much space is used. Start with 'du -xk /', maybe piped to 'less', as the list will be long. –  markus_b Mar 16 '10 at 12:17
1  
Yes, but 'df -i' is irrelevant in your situation as MarkM already stated. Your disk is full and the normal 'df' (no options shows this). –  markus_b Mar 16 '10 at 12:19
1  
@markus_b - gee, I wish I'd said that 22 minutes before you. –  Paul Tomblin Mar 16 '10 at 12:34
1  
You can do a graceful restart: 'apache2ctl graceful', this will not interrupt your website. –  markus_b Mar 16 '10 at 12:58

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.