I'm working on a small embedded Linux device and am having fs corruption issues using ext3. Here is the scenario.
The device has a 512MB CF(SanDisk) and an on-board flash. Kernels sit in the on-board flash and are booted via redboot. They are all custom kernels 2.4.18. w/ ext3 opts' on and DMA off.
The CF is partitioned with fdisk into two equal slices hda1 and hda2.They are then formated ext3 with standard options i.e. just the -j flag to mke2fs.
On the 1st run the systems start successfully ! When we reboot or power cycle and start again the kernel hangs at the partition check. To recover the system we boot to a maintenance kernel and run fsck. Note we must run fsck with the -f flag as fsck thinks the fs is OK. A number of orphan inodes are repaired and upon reboot the system stars successfully.
I have attempted to circumvent the partition check with hda=noprobe and passing the drive geometry at boot. This passes the partition check but I get a panic when the kernel is unable to mount the root fs.
This has been a very frustrating issue if any one could provide some insight it would be greatly appreciated.