Many sd cards are rather fragile. I've had a pi for about 2 years now and the main failures were due to the sd card getting corrupted for a reason or another.
I'm wondering if there is some development done to "strengthen" the sd card on boot. I remember having something like this in a past project, where uboot would choose between 12 tarballs if any of them had an invalid crc32 checksum. It would then recopy the validated one to all the others that were modified after a successful boot.
I'd like to use my pi in "permanent" setup and it would be great if it could work without ever reflashing the card.
Is there some development already done in this way? While the general idea is rather trivial, getting uboot to work properly is usually a rather painful process that I'd like to avoid.
After some deeper digging, it seems that what I was envisioning might not be possible, or possible in a way that would give any meaningful advantage. Here the boot process is described. The code I worked on was running at the first boot level since my board had a programmable flash for this. With the pi, this is stored in a ROM from factory. Everything else comes from the sd card so if the card gets damaged, the second stage bootloader has as much chances to get destroyed as any other partition.
Maybe it is possible to abuse the ROM boot loader for this purpose, but it is hard to say how. The code also seems proprietary.
Edit 2 :
The actual boot process explanation is conflicted depending on sources. I'll try to read more on it