If you have been using your eeepc for a long time with the default unionfs configuration, you may experience a rather odd problem:
All of a sudden you get errors when writing to the hard disk. If you open a terminal and enter df (for displaying the free space left), everything looks ok:
/home/user> df Filesystem 1K-blocks Used Available Use% Mounted on rootfs 1454700 814852 565952 60% / /dev/sda1 1454700 814852 565952 60% / unionfs 1454700 814852 565952 60% / tmpfs 254164 12 254152 1% /dev/shm tmpfs 131072 28 131044 1% /tmp
Note that the drive is only used to 60%, so there should be quite a lot of available space. But if you try to create a new file or directory, e.g.
mkdir grmpf
you get the error “no space left on device”.
If you are not familiar with the ext2 file system, you will probably have no clue at all how this could be (to be honest, I only found out by searching the forums — dummzeuch 2008/07/25 14:20)
Apart from the actual free space on a partition there is another resource that can get used up: inodes
These are used to write directory entries and other administrative stuff and there is only a limited number of them created when an ext2 file system is made.
You can find out how many you have left, by entering df -i in the terminal:
/home/user> df Filesystem Inodes IUsed IFree IUse% Mounted on rootfs 185088 156222 28866 85% / /dev/sda1 185088 156222 28866 85% / unionfs 185088 156222 28866 85% / tmpfs 63541 8 63533 1% /dev/shm tmpfs 63541 25 63516 1% /tmp''
If your IUse% is near 100, you found the problem.
So, how could this happen? UnionFS uses special files ”.wh.something” to mark files that have been deleted but cannot really be deleted because they reside on the readonly part of the file system (that is /dev/sda1). Each of these files is only 0 bytes in size, but it uses one inode. If very many of these files have been created, the file system might run out of inodes, thus the error message.
When searching for these files, booting into the rescue console, I found lots of them in /mnt-user/var/tmp (you need to use ls -a to see them). I deleted them, rebooted and everything was back to normal.
I think that this is a bug in unionfs, because all these were temporary files created on the user partition, so why not just delete the files without marking them as deleted?