23

I have a 1TB external hard drive that I recently formatted to NTFS. It was mounting on my Ubuntu 11.10 fine until just now. I didn't make any changes to affect my OS or my exhdd.

The error that I get is:

Error mounting: mount exited with exit code 13: $MFTMirr does not match $MFT (record 0).
Failed to mount '/dev/sdb2': 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 did read this and this. But neither helped.

I tried installing ntfsfix but no such package exists anymore. I have never used this HDD on a windows machine. If I need to use an other machine to do stuff to fix this, I have access to a mac.

Any advice?

This is my sudo fdisk -l output: What in the world is GPT? I didn't do that. It used to be NTFS.

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000586fb

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2148   961320312   480659082+  83  Linux
/dev/sda2       961320313   976773167     7726427+   5  Extended
/dev/sda5       961320314   976773167     7726427   83  Linux

WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.


Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xcfd88605

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1  1953525167   976762583+  ee  GPT

2 Answers 2

41

This really worked for me.

On some recent Linux releases, you need to install ntfs-3g utilities. Try sudo apt-get install ntfs-3g or download from http://www.tuxera.com/community/ntfs-3g-download/. ntfs-3g includes ntfsprogs.

ntfsprogs is a suite of NTFS utilities based around a shared library. The tools are available for free and come with full source code.

mkntfs: Create an NTFS volume on a partition
ntfscat: Print a file on the standard output
ntfsclone: Efficiently backup/restore a volume at the sector level
ntfscluster: Given a cluster, or sector, find the file
ntfsfix: Forces Windows to check NTFS at boot time
ntfsinfo: Dump a file’s attributes, completely
ntfslabel: Display or set a volume’s label
ntfslib: Move all the common code into a shared library
ntfsls: List directory contents
ntfsresize: Resize an NTFS volume
ntfsundelete: Find files that have been deleted and recover them
ntfswipe: Write zeros over the unused parts of the disk
ntfsdefrag: Defragment files, directories and the MFT
ntfsck: Perform consistancy checks on a volume
nttools: Command-line tools to view/change an offline NTFS volume, e.g. ntfscp, ntfsgrep, ntfstouch, ntfsrm, ntfsrmdir, ntfsmkdir
ntfsdiskedit: Walk the tree of NTFS ondisk structures (and alter them)

Be careful with these utilities, they might damage the filesystem, or your hard disk !

(Source: http://gnuwin32.sourceforge.net/packages/ntfsprogs.htm)

With ntfs-3g installed (sudo apt-get install ntfs-3g) you should execute the following commands in a terminal:

sudo ntfsfix /dev/partitionName

After this command you should expect the following output:

~$ sudo ntfsfix /dev/sdb3
Mounting volume... FAILED
Attempting to correct errors...
Processing $MFT and $MFTMirr...
Reading $MFT... OK
Reading $MFTMirr... OK
Comparing $MFTMirr to $MFT... FAILED
Correcting differences in $MFTMirr record 0...OK
Processing of $MFT and $MFTMirr completed successfully.
Setting required flags on partition... OK
Going to empty the journal ($LogFile)... OK
NTFS volume version is 3.1.
NTFS partition /dev/sdb3 was processed successfully.

After this step you should be able to access your external drive partition as usual, mount or use nautilus to access your files.

4
  • 2
    this is the best answer
    – vinni_f
    Jul 27, 2015 at 0:51
  • 1
    you should note that it has to be the actual partition name, rather than the device. So /dev/sdb1, not just /dev/sdb Oct 29, 2017 at 10:51
  • this does work.. Jan 10, 2018 at 4:09
  • most simple solution.... why this error occurs? Apr 23, 2018 at 17:06
3

GPT is the GUID Partition Table, which is the next-generation partitioning system used on Macs, UEFI-based PCs, and disks over 2TiB in size. It can also be used on smaller disks even on BIOS-based systems, so long as you don't expect to boot Windows from such disks. As the fdisk warning message notes, fdisk doesn't support GPT, so you shouldn't attempt to use fdisk on this disk. Instead, use gdisk (part of the gdisk or gptfdisk package, depending on how you install it) or parted.

GPT doesn't have anything to do with your problem, though. The mount error message indicates an I/O error, which most probably indicates a hardware fault. You might try running a SMART test on the disk using a tool like gsmartcontrol (GUI) or smartctl (text-mode). This should turn up any hardware fault, but the output of a SMART test can be hard to interpret. Since you say it's an external drive, it could also be a loose or damaged cable, so you might try reseating or replacing it. Cable faults won't turn up in a SMART test.

More generally, if it's not actually a hardware fault, you cannot do adequate filesystem tests on NTFS from either Linux or OS X; only Windows provides tools to do this. You may not be able to mount an NTFS disk that needs filesystem checks, so you must be able to get an NTFS disk to a Windows system from time to time to deal with such problems. If you never use the disk on a Windows system, NTFS is the wrong filesystem to use on it.

For Linux-only use, it's best to use a Linux-native filesystem, such as ext2fs, ext3fs, ext4fs, ReiserFS, XFS, JFS, or perhaps Btrfs. (I wouldn't use ext2fs on a 1TB disk, though.) If you use the disk for both Linux and OS X, I'd use either FAT or HFS+. Despite its age, FAT is still the best-supported cross-OS filesystem. It has problems with a maximum file size of 4GiB, though, which can be a problem if you store multimedia or other big files. HFS+ is OK for Linux/OS X use, provided you understand how to disable the journal and deal with permissions issues. (If the journal is enabled, Linux won't write to HFS+ unless you use an override mount option, which may reduce safety.)

1
  • Thanks for your answer. However, since I plan on using the hard drive across Linux/OsX/Win7, I chose an NTFS system. The hard drive isn't journaled. There were issues with write access on the hard drive. I had to format it again (into NTFS) and chown all the folders in it. That has worked so far.
    – dearN
    Oct 13, 2012 at 1:26

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .