Hi-
I made a post awhile back regarding how one might create some redundancy and corruption checking with a tinycore system. See
http://forum.tinycorelinux.net/index.php?topic=7142.0 if interested... but I'm thinking about this again and am looking for ideas/designs. The basic problem is put forth in the previous thread, but succinctly is this:
1. In space, your data might get corrupted by radiation hits.
2. We don't have $ or space for extra hardware, and in the worst case, the HDD can be removed and replaced with on orbit spares.
3. I don't want foolproof coverage, simply whatever I can do easily to protect/verify a majority of the files stored on the disk.
4. Space (Megabytes) is not an issue. Redundant files are totally fine.
What I decided to do is store three copies of each of bzImage and tinycore.gz and use grub to cycle through the files at each boot up. This way, if there is one corrupted, when they system is rebooted, it will use a different version. Software can do MD5 checksums to verify the files are good. I realize that grub is vulnerable as is the default file used by it to make this scheme work. So be it.
Now I'm thinking about what to do with my applications and config files. I'm thinking that if I let these be backed up in mydata.tgz, I can get some form of error checking and redundancy by relying on tar to spit out an error if it fails upon extraction. So maybe what happens is that on every shutdown, I verify that the tgz file is good (by extracting it w/o errors?) and then make two copies of it. At bootup, if the first shot at extracting mydata.tgz gets an error, it tries mydata2.tgz.
I want my apps to go in the mydata.tgz because then I could just uplink my application if (really more like when) it needs to be updated on orbit, as opposed to having it remastered into the tinycore.gz.
Any better ideas? I'd love for a "why don't you just...." that makes this way easier.