It seems postgres is suffering from a file system condition, so your solution lies there and not with postgres. There are many reasons why a file system can become read-only. For example, if you are using virtual machines and run in to a low I/O bandwidth condition, the vm software can put the file systems into a read-only state to prevent data corruption. Some clusterware and storage hardware vendors also do this on purpose to prevent corruption. Without knowing more about your system there are too many possbiel causes to list them here. My suggestion is to search the Internet for a possible cause/solution. If, for example, you are using vmware on Linux then you might want to Google for "vmware linux read only filesystem".
-Mark