I'm getting frequent and recurring ext4 "bad header invalid magic" errors on an apparently healthy, brand new (few months old) external USB drive (WD MyBook 1230) connected to a Raspberry Pi running Raspbian 7, kernel 3.18.5+. The USB drive is powered separately, i.e. not by the Pi. The dmesg errors look like this:
EXT4-fs (sda1): last error at time 1457814321: ext4_ext_check_inode:495: inode 67294
The errors are produced whenever some certain files are read. When this happens the hard produces a distinct (and rather unsettling) clunk every few seconds, which sounds like a head load/unload or something, but the files seem to be read just fine. I'm mostly using the device as a music library storage, and everything still works, I get uninterrupted playback, can add/remove files, the OS has not ever crashed and does not automatically unmount the device.
Running fsck reports and fixes some errors and makes the ext4 partition clean again, but the same errors are produced when the files are read again. I've tried copying the offending files to another device, deleting the source, and copying them back to the same location and this would stop them causing the bad header errors. I'm guessing they've been moved to a different inode. But I can't just do this for ever file that's giving an error.
Running smartctl shows no errors. The same drive was used for a few months formatted as NTFS in the same setup with no problems, but was reformatted to ext4 for finer permission control and better performance.
Has anyone ever encountered anything like this? Any debugging suggestions? What is happening and how do I fix these errors?