However, I would like to know if/when it starts to die, and remount read only.
Mounting read-only won't save you anything if the issue is bad blocks -- look at the first paragraph here and note the issues associated with read errors.
There's no way to detect bad blocks without physically reading over the disk, so, like searching for a mouse trap set in a dark room, there are no ways to avoid the potential problems when checking. If you believe the disk is failing, periodically umount
and run e2fsck -c
on all the partitions; if this is your root filesystem and you need to use, e.g., a liveCD to do this, then do it. As per the man page;
-c This option causes e2fsck to use badblocks(8) program to do a read-only scan of the device in order to find any bad blocks. If any
bad blocks are found, they are added to the bad block inode to prevent
them from being allocated to a file or directory.
If the blocks contained data, a salvaged version may end up in the /lost+found
directory at some point, I'm not sure.
Note that this may take some time. If there are bad blocks, the scan may trigger I/O issues that lock-up the entire system for hours, so do this when you are comfortable walking away for a while.