This is strange. It shouldn't be related to the card size at all. If you can mount the card and see the data, it should be same at boot time. Which partition you used for ext2, /dev/mmcblk0p2 or something higher like p4,p5..?
You can edit/create bootmenu.conf (not .sh) and add Code: dmesg >/tmp/dmesg.out as a last line and after boot see if there is anything suspicious in kernel log early at boot time. You can also see kernel log after it failed and booted from flash but the beginning is cut off.
dmesg >/tmp/dmesg.out
You may also try to test if it is some limitation/bug of uclibc system in initfs. As root you may run Code: chroot /mnt/initfs this will switch to the system used at early boot time so you can try mounting the card there and see if everything works too.
chroot /mnt/initfs