130

MY NTFS Partition has gotten corrupt somehow (it's a relic from the days when I had Windows installed).

GParted screenshot showing different partitions

I'm putting the debug output of fdisk and blkid here.

At the same time, any OS is unable to mount my root partition, which is located next to my NTFS partition. I'm not sure if this has anything to do with it, though. I get the following error while trying to mount my root partition (sda5)

mount: wrong fs type, bad option, bad superblock on /dev/sda5,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

ubuntu@ubuntu:~$ dmesg | tail
[ 1019.726530] Descriptor sense data with sense descriptors (in hex):
[ 1019.726533]         72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00 
[ 1019.726551]         1a 3e ed 92 
[ 1019.726558] sd 0:0:0:0: [sda]  Add. Sense: Unrecovered read error - auto reallocate failed
[ 1019.726568] sd 0:0:0:0: [sda] CDB: Read(10): 28 00 1a 3e ed 40 00 01 00 00
[ 1019.726584] end_request: I/O error, dev sda, sector 440331666
[ 1019.726602] JBD: Failed to read block at offset 462
[ 1019.726609] ata1: EH complete
[ 1019.726612] JBD: recovery failed
[ 1019.726617] EXT4-fs (sda5): error loading journal

When I open gparted (using live CD), I get an exclamation next to my NTFS drive which states GParted Screenshot showing error

Is there a way to run chkdsk without using windows ?

My attempt to run fsck results in the following :

ubuntu@ubuntu:~$ sudo fsck /dev/sda
fsck from util-linux-ng 2.17.2
e2fsck 1.41.14 (22-Dec-2010)
fsck.ext2: Superblock invalid, trying backup blocks...
fsck.ext2: Bad magic number in super-block while trying to open /dev/sda

The superblock could not be read or does not describe a correct ext2
filesystem.  If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
    e2fsck -b 8193 <device>

Update: I was able to fix the NTFS partition running chkdsk off Hiren's BootCD, but it seems that the superblock problem still remains.

Update 2: Fixed superblock issue using e2fsck -c /dev/sda5

wjandrea
  • 14,504
Nemo
  • 9,610

12 Answers12

158

NOTE: THIS ANSWER IS BOTH OUTDATED, AND NOT ADVISED IF YOU HAVE READ ERRORS.

Install ntfs-3g with sudo apt-get install ntfs-3g. Then run the ntfsfix command on your NTFS partition.

For example:

ntfsfix /dev/hda6

ntfsfix v2.0.0 (libntfs 10:0:0)

Usage: ntfsfix [options] device

Attempt to fix an NTFS partition.

-h, --help             Display this help
-V, --version          Display version information



Developers' email address:

linux-ntfs-dev@lists.sf.net Linux NTFS homepage: http://www.linux-ntfs.org


For newer Ubuntus You can use -b and -d option together. -b tries to fix bad clusters and -d to fix dirty states. So the command can be

sudo ntfsfix -b -d /dev/sda6

--help shows them

ntfsfix v2015.3.14AR.1 (libntfs-3g)

Usage: ntfsfix [options] device Attempt to fix an NTFS partition.

-b, --clear-bad-sectors Clear the bad sector list
-d, --clear-dirty       Clear the volume dirty flag
-h, --help              Display this help
-n, --no-action         Do not write anything
-V, --version           Display version information

davidbaumann
  • 1,915
RolandiXor
  • 51,797
25

I've just fixed my USB drive using "testdisk", a Linux command line (yet friendly) utility. My drive was not even mounting in Windows and Windows 8 discovered like 6 partitions (when the drive had only one).

To use the utility, install it:

sudo apt-get install testdisk

Then run it:

sudo testdisk

and follow the instructions. You must search for partitions and then write the changes.

Hope this help anyone.

Diego Jancic
  • 495
  • 5
  • 9
16

Just to clear some of your points up.

My attempt to run fsck results in the following :

ubuntu@ubuntu:~$ sudo fsck /dev/sda

...

fsck.ext2: Bad magic number in super-block while trying to open /dev/sda

Now, thats not wonder, because you are trying to fsck the disk, and not its partition. What fsck does is, it tries to recognize the FS type. Because you have given it raw disk surface, it fails to recognize and resorts to default type - ext, calling fsck.ext.

fsck.ext does not find any FS signature in the location and tries to find superblocks. Ultimately it fails, because its disk with only NTFS partition type.

This is why you have this error.

The correct command would be:

sudo fsck /dev/sda1

That would feed the FIRST partition of first sata hard drive, not the first sata disk itself.

muru
  • 207,228
Who cares
  • 161
  • 1
  • 2
10

In Ubuntu 14.04 Just try this

sudo ntfsfix /dev/sdXY

Where XY is your partition. (/dev/sda2 in your case)

αғsнιη
  • 36,350
user335969
  • 111
  • 1
  • 2
7

I agree with @psusi: the disk needs replacing, see my comment under accepted answer. Doing an ntfsfix will not help at all, and just delays the essential action of:

  1. backing up all data on the disk ASAP
  2. replacing the disk with a new one

There's no need really to check the SMART diagnostics - they only pick up a percentage of errors anyway. The red flags are the two lines:

[ 1019.726558] sd 0:0:0:0: [sda]  Add. Sense: **Unrecovered read error** - auto reallocate failed
[ 1019.726602] JBD: **Failed to read block** at offset 462

As soon as a disk starts giving unrecoverable read errors (UREs), it should be replaced immediately and only used for data recovery. (An excessive level of non-UREs also indicates replacement is needed.)

Disks should be viewed as consumables that must be replaced every few years, hence having really good backups (automated, daily, complete, and at least to an external drive) is crucial.

RichVel
  • 213
6

Your disk is toast. Check the SMART diagnostics in the disk utility to confirm; it should say you have a ton of bad sectors and need to replace the drive.

psusi
  • 38,031
5

fsck and gparted apps cannot be used to fix a problem with a ntfs partition. ntfsfix should not be used to try and fix this problem.

Windows tools should normally be used. However, chkdsk is not helping here.

You might try using testdisk from the Ubuntu OS.

sudo apt-get update # update the software databases

sudo apt-get install testdisk # install testdisk

sudo testdisk # start testdisk

Go to http://www.cgsecurity.org/wiki/TestDisk_Step_By_Step for help in using this tool.

heynnema
  • 73,649
2

Unfortunately the free tools available on Linux are very limited with regards to fixing NTFS partitions.

Most likely you can still recover your data by using the secondary MFT stored at the end of the disk. It is usually not used, but it should contain an up-to-date version of your directory structure. There is a good chance it was not affected by the disk errors.

In the past, I have used Runtime Software's (commercial, 79$) product GetDataBack NTFS with great success for this. It is one of the few NTFS tools (the only?) that runs in WINE and as a Linux LiveCD, and the free demo should be enough to see if your data is still there. If it is, your data might just be worth buying the tool.

The LiveCD runs Knoppix Linux and has all their tools preinstalled. Note that you'll still need a license key to actually use the tools, but it should be enough to see if it works on your computer.

Disclaimer: I have no affiliation with Runtime software other than having bought their product a few years ago.

jmiserez
  • 5,144
1

As of 15Jul2020, there is no option to check filesystem integrity of a Hard disk formatted as NTFS under Linux.

What I did?

  • I downloaded the free trial of Windows Enterprise as ISO
  • sudo apt-get remove Virtualbox virtualbox-dkms virtualbox*
  • Install the latest Virtualbox from here
  • Download the matched version of Virtualbox extpack
  • Add to disk group, me, as user, due to access deny hard disk error
    • sudo usermod -a -G disk $USER
    • sudo usermod -a -G vboxusers $USER
  • Run sudo /sbin/vboxconfig
  • Run VirtualBox, and add Virtualbox extpack at File -> Preferences -> Extentions
  • Restart your Computer
  • Create a link to your physical Hard Disk which is NTFS (either usb or not) using VBoxManage internalcommands createrawvmdk -filename "</path/to/file>.vmdk" -rawdisk /dev/sdX
  • Create Machine -> New -> Windows 10 (64bit) (whatever match) -> Create a Virtual Disk
  • Attach the Downloaded Windows Enterprise Free trial ISO image
  • At your newly created Virtual Windows Image --> preferences -> Storage -> attach the vmdk image of your ntfs hdd
  • It may fail. Dont worry. To me failed too. I refer to it, because I found it. It may work for you.
  • Go to Virtual Windows Image --> preferences -> USB, check USB 3, add your NTFS HDD
  • Run your Virtual "Windows Enterprize Free Trial" machine.
  • Click Continue, Repair your computer (at left down side), Troubleshooting, Run Command Prompt
  • Go to your disk by writing eg. C:
  • Check that it is your disk somehow eg. dir
  • Run chkdsk /f when you are on your disk

This process fixed my NTFS filesystem that it was fault. I hope it helpt you too.

If you find any easier solution, only under Linux, please post it.

UPDATE: After fixing NTFS, i formatted to Ext4, entire disk. Bye bye NTFS problem. As I read, it does not need defragmation as NTFS.

1

As the other answers have said, in this case it's probably a bad disk..

But for the benefit of others facing actual NTFS corruption - unfortunately the ntfsfix tool is very limited compared to Microsoft's chkdsk. Try to get a Windows install going - preferably with the newest version of Windows as Microsoft is presumably constantly improving chkdsk (I hope..) Newer versions of Windows are often available for free as trials. If the problem is in a USB disk you can try installing Windows in something like VirtualBox and give the VM control of the USB device.

eug
  • 300
0

I just had the same problem on a 3TB NTFS USB. Big drama, as you can imagine.

I first tried to fix it on my wife's Windows box. No joy.

sudo ntfsfix /dev/sdcx extremely quickly fixed it.

Hooray! Back in business. Really must get a new disk and promptly re-format it to a proper, adult filesystem.

Monkeybus
  • 141
0

This answer will probably just work for 10.04 (lucid) and later versions of Ubuntu!

Try sudo ntfsfix -b /dev/sda2.

  • You need ntfs-3g Install ntfsprogs installed. If you don't have it, you can install it in the Software Center by clicking that link, or from the Terminal (Ctrl+Alt+T) by running these commands:

    sudo apt-get update
    sudo apt-get install ntfs-3g
    
DeGe
  • 17
  • 2