So I bought a brand new 128GB USB stick and plugged it into my raspberry pi.
I then use the command line to make a new partition and extra filesystem using fdisk and mkfs.ext4
Seemed to go ok. I then used rsync to copy a 65GB of data to the usb stick and left it over night.
The next morning the rsync had a order prematurely with an error that the device was full. Sure enough, df confirmed 100% full. A bit confused I tried to unmount, but I couldn't so I rebooted. On rebooting the device would not mount saying that there is an error so I ran e2fsck and it corrected a load of stuff about inodes and superblocks and the journal. Afterwards, all the data is gone and the drive is at 0% but will mount.
Exactly the same happened again when I tried to copy the files again. So I tried reformatting and this time the drive reports errors straight away. e2fsck find and fixes them, but running it again find errors again and again so it seems to be ineffectual.
I then decided to plug it into a Windows pc and do a full format as exFAT. Took a long time, but I could copy data onto it and read it fine. Back on Linux, I can copy data to it and read the data. Reformat as ext4; errors again.
So I have formatted as exFAT and now running badblocks. It has nearly finished and found nothing wrong. Why am I having so much difficulty with this drive?