From time to time you'll encounter issues with a particular hard drive, flash card, or removable drive that results in the file system becoming read only due to corruption or errors in the file system. Repairing this isn't always that easy. But there are ways to do it that aren't terribly difficult. First, you will need to boot into either console mode, or recovery mode, depending on if you're using Linux or BSD.
For fixed hard drives and/or system folders (ie /tmp, /usr, etc):
In Linux, you will want to choose "Recovery Mode" from your grub prompt. If that is not available, then you will need to seek out the specific method for booting to a command line in your respective distribution. Typically this is revered to as "booting into single user mode". Once you've booted into recovery mode, if offered the option to drop to a root shell prompt, take that. If you're in single user mode, you should already be at a command prompt. Be aware though, that in either case, you may be asked to login to your root account, so be sure you have your root password ready.
In BSD, simply choose "single user mode" from the boot prompt. This is typically item 4. Once it completes it's boot, hit enter to drop to choose SH as your shell. You should immediately drop to a command prompt after that.
Next, do "fsck" and hit enter. This will scan all of the slices and/or partitions at once, checking each for issues. If you know the particular slice or partition having issues, you can skip ahead and scan that one separately to save yourself some time. For example, if /tmp is suffering some issues, simply do "fsck /tmp" to scan just that slice. As it comes up, watch the errors and respond appropriately. Since the errors can be any of a wide range of possibilities, you'll want to have a second PC handy so you can research what the errors are and respond properly.
Once the slice no longer has any errors, simply type "shutdown -r now" to reboot. When your PC comes up, it should be able to mount all your partitions correctly.
For removable drives (ie. flash cards, usb hd's, etc):
Simply open a command prompt, plug in the device and wait for it to be found. Next, do "df -h" to find out the device ID that the drive is identified as, as well as the folder it's mounted on. For example, removable flash cards will tend to be something like "/dev/admmc1a" and the folder it'll be on is "/media/mmc1" or some equivalent. If you're not totally certain which is which, do the "df -h command before you plugin the device, and then afterwards, then compare the results to find out what the specific ID is for that removable flash card or usb hd is.
Next, unmount the device by typing "umount -f /path" (where /path is the folder to which the drive has been automatically mounted.) and then hit enter. After that, type "fsck /dev/devname" (where devname is the name of the device, such as admmc1a in the example above), and hit enter. Let it run until it completes. If it finds errors, repeat the last step until it registers clean. Now unplug the device and plug it back in. When it redetects, it should automatically mount the device as read/write, instead of read only.