That is strongly indicative of file-system corruption. You should unmount, make a sector-level backup of your disk, and then run fsck to see what is up. If there is major corruption, you may later be happy that you did a sector-level backup before letting fsck tamper with the data.
How to Check for Errors on a Disk
Run fsck on the target disk, using the desired options. This example checks all file systems (-A) on /dev/sdb:
fsck -A /dev/sdb
Understand fsck Error Codes
The error codes that fsck returns can be understood with the following table from man7.org:
| Code |
Error Code Meaning |
| 0 |
No errors |
| 1 |
Filesystem errors corrected |
| 2 |
System should be rebooted |
| 4 |
Filesystem errors left uncorrected |
| 8 |
Operational error |
| 16 |
Usage or syntax error |
| 32 |
Checking canceled by user request |
| 128 |
Shared-library error |
Use fsck to Repair File System Errors
Use the -r option to use the interactive repair option.
This example uses fsck to check all file systems except the root, and will attempt repair using the interactive feature:
fsck -AR -y
To check and attempt to repair any errors on /dev/sdb, use this format:
fsck -y /dev/sdb