Originally Posted by timlegge
Linux mounts the device as read only if it notices an issue on the drive. You could try powering off and restarting the device but you will likely need to run a scan disk. Linux can do one with fsck.vfat or something like that.
Yes. That was the problem. A corrupt file system. All fixed now. And the command really was called fsck.vfat, but I had to give it the -r option before it would actually fix anything. After that I could delete the metadata file, which had contained a corrupt cluster.
I hadn't figured out that Linux had really mounted it read-only, even though the mount command reported that it was mounted rw, and ls told me everything was writable. Obscure.