Ubuntu – Can’t mount or fix corrupt NTFS partition on working HDD

data-corruptionhard drivemountntfspartitioning

Last time I was using windows it crashed because of some application I was running leaking memory and getting to around 7GB.
I couldn't even open Task Manager so I just reset the PC.
After rebooting in Ubuntu (14.04) however, I was not able to access the partition at all, getting an error:

Error mounting /dev/sdb2 at /media/username/Windows2: Command-line `mount -t "ntfs" -o "uhelper=udisks2,nodev,nosuid,uid=1000,gid=1000" "/dev/sdb2" "/media/username/Windows2"' exited with non-zero exit status 13: ntfs_attr_pread_i: ntfs_pread failed: Input/output error
Failed to read NTFS $Bitmap: Input/output error
NTFS is either inconsistent, or there is a hardware fault, or it's a
SoftRAID/FakeRAID hardware. In the first case run chkdsk /f on Windows
then reboot into Windows twice. The usage of the /f parameter is very
important! If the device is a SoftRAID/FakeRAID then first activate
it and mount a different device under the /dev/mapper/ directory, (e.g.
/dev/mapper/nvidia_eahaabcc1). Please see the 'dmraid' documentation
for more details.

I tried ntfsfix, but it found no issues:

user@Desktop:~$ sudo ntfsfix /dev/sdb2
Mounting volume... OK
Processing of $MFT and $MFTMirr completed successfully.
Checking the alternate boot sector... OK
NTFS volume version is 3.1.
NTFS partition /dev/sdb2 was processed successfully.

Note that the other two partitions on the same disk (one of which contains the bootloader) seem to be working fine.

Windows won't start, displaying a self explanatory BSOD, "UNMOUNTABLE_BOOT_VOLUME" instead.

I tried booting through a recovery disk and doing chkdsk /r. It took an entire day and seemed to find quite a few errors but nothing changed.

I do not know what to do. This is a WD Blue from november 2013, no not that old. The data on it is extremely important to me and I don't want to lose it for any reason.

Is there any way to get it to work, at least to mount it in Ubuntu?
Might the issue be the SATA controller?
I have an Asus Sabertooth x79, which is relatively old of course.
Should I try dskchk /f instead?

Edit: I user smartctl to check my drive's health status.
The results show that it's pretty good at least for now, so this is no hardware failure.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   199   199   051    Pre-fail  Always       -       68063
  3 Spin_Up_Time            0x0027   176   172   021    Pre-fail  Always       -       2158
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       296
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       6
  7 Seek_Error_Rate         0x002e   200   200   000    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   070   070   000    Old_age   Always       -       22013
 10 Spin_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0
 11 Calibration_Retry_Count 0x0032   100   100   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       295
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       225
193 Load_Cycle_Count        0x0032   200   200   000    Old_age   Always       -       70
194 Temperature_Celsius     0x0022   102   075   000    Old_age   Always       -       41
196 Reallocated_Event_Count 0x0032   194   194   000    Old_age   Always       -       6
197 Current_Pending_Sector  0x0032   193   193   000    Old_age   Always       -       1302
198 Offline_Uncorrectable   0x0030   200   200   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   198   000    Old_age   Always       -       20
200 Multi_Zone_Error_Rate   0x0008   200   200   000    Old_age   Offline      -       0

Also I did another chkdsk from the windows recovery CD, with /f option this time.
It seemed to work but again it did not change anything.

When I tried booting windows in safe mode, it loaded a lot of the drivers ( meaning the partition still hasn't been entirely trashed) and then BSOD'd after freezing for a few minutes.
Ubuntu was also not capable of mounting the partition.

Best Answer

You have a (corrupted) Windows NTFS partition. By being closed source, Microsoft Windows makes it difficult to impossible for Linux to repair its secret disk structure. Like the error message says In the first case run chkdsk /f on Windows then reboot into Windows twice. Windows MIGHT be able to fix the disk. Ask how to boot Windows from some alternate medium on some Windows support site, not AskUbuntu. Otherwise, you will have to restore your data from backups (you do have backups, don't you?).

Related Question