Linux has a tendency to give very unhelpful error messages when it is
unable to create a file. I previously blogged about a few
different reasons Linux might report a disk is full, but all of the
reasons included the disk actually not having space for more files. Yet
another reason to get similar errors is if the partition is
mounted readonly (
$ mount | grep -F /usr
/dev/sdc2 on /usr type ext4 (ro,nodev,noatime,data=ordered)
mount without any options lists all of the mounted
partitions along with their mount options.
Many programs will show a helpful error message:
$ touch test
touch: cannot touch ‘test’: Read-only file system
But some others won't:
rtorrent: Could not lock session directory: "./session/", held by "<error>".
That error is normally caused by
./session/rtorrent.lock not being writable due to being held by
another process, but in this case it's not writable due to the
filesystem being readonly.
rtorrent doesn't distinguish the two.
For that reason, when running into weird behavior from a program on Linux, it's a good idea to check that the directories the program might try to write to are actually writable.