
Le 17/11/2010 17:01, Quotient Remainder a écrit :
Ar Aoine, 2010-09-17 ag 12:44 -0400, scríobh Eric Cooper:
But I just discovered that it has a fatal disadvantage. My device can't reboot when the ubifs is corrupted, which happened today after a power failure:
UBIFS: recovery needed Error reading superblock on volume 'ubi:root'!
Ubifs includes recovery code, but since u-boot treats it as a read-only mount, this is never performed. Once I booted Linux, everything was fine.
I'd like to request that the read-only flag be removed (at least to allow recovery) so that the ubifs-only scheme can be used reliably.
Has this received any attention or is there an existing way to recover from these types of error?
In devices I'm using, the problem is most apparent when the UBIFS RFS is mounted with "rootflags=sync" and a large file is copied into that RFS in Linux. When the unit's power is cycled immediately on the "cp" command returning, the ubifsload command in U-Boot fails with the same error as mentioned by Eric Cooper above.
I don't know ubifs very well to say the least, but something strikes me in what you describe: ''the unit's power is cycled immediately on the "cp" command returning''.
Do you mean that, in Linux, you do a power cycle without (syncing and) unmounting a file system that will be critical to properly booting later on? If so, what is the rationale behind this too-quick power cycle?
Seems to me you should start by the preventive measure of avoiding the corruption in the first place (do a cp; sync; umount...) rather than relying on a curative measure of recovery attempts.
Amicalement,