I have here a 64GB Micro SDHC card. It is not labelled as SDXC, its manufacturer has quite clearly labelled it as SDHC. While this is not my supplier, the image at http://www.militarygrade.org/blog/2014/06/military-certified-compact-portable-memory-new-64gb-micro-sd-microsdhc-class-10-tf-flash-card/ appears to be of the same card.
I am attempting to install Linux onto the card. I am using a standard USB SDHC-compatible card adapter to access it. It is correctly reported as having approx 63GiB capacity. I have repartitioned it with two 31.5GiB partitions, but for some reason whatever I put onto the second partition doesn't seem to work. If I put an ext4 filesystem on it, it isn't recognised when I try to mount it. If I put a fat32 filesystem on it, the filesystem seems to work ok, but any files I store on it disappear if I remove and reinsert the card.
I initially assumed that the card was actually an SDXC card and my SDHC reader was unable to access anything beyond 32GB on it, but running
badblocks -w on it didn't report any errors so I don't think this is the actual fault.
Any other suggestions as to what might be going on?
Edit: The plot thickens
So, doing some additional experiments I decided to partition the device as if it had a capacity of 32GiB. And it still turns out that the second partition doesn't work properly. By writing a pattern to the device using
dd, removing and reinserting it, and testing individual sectors, it seems that every sector from 16785192 onwards (shortly above the 8GiB point) simply does not store data sent to it. I'm a little surprised that a device should fail in this way, but I can't see any other logical explanation for it at this time. So unless anyone has other suggestions, I'm inclined to put this down to hardware failure.