Error mounting NTFS HDD: [Wrong fs type, bad option, bad superblock]
The Linux NTFS filesystem driver – ntfs3 – returns a mount failure error when damage, or rather, an indicator of damage to an NTFS filesystem is found. This indicator is commonly referred to as a dirty bit.
When a dirty bit is detected, ntfs3 prevents an NTFS filesystem from being mounted. This is by design, and is a safety feature of ntfs3 intended to prevent further damage through continued use of the NTFS filesystem. Any damage must be properly repaired, and the dirty bit cleared, before the partition is allowed to mount.
Though a dirty bit can be cleared within Linux, this action does not repair any damage to a filesystem. A tool specifically designed to correct Windows filesystem errors, such as ChkDsk, should be used to diagnose and repair NTFS.
A note on Windows utilities for NTFS
Each of these utilites must be run from an administrative command prompt in Windows.
chkdsk can clear a dirty bit if one of these conditions are met:
- A check/repair is successfully performed on the NTFS filesystem
- No damage to the NTFS filesystem is found after a successful check/repair
fsutil can also check for or set a dirty bit:
- Check for a dirty bit:
fsutil dirty query x:
- Set the dirty bit:
fsutil dirty set x:
- A dirty bit cannot be cleared using
fsutil
Fix NTFS errors using Windows ChkDsk
If damage is indicated on an NTFS filesystem this should be checked/repaired from within a Windows environment, by launching the Windows chkdsk utility from an administrative command prompt.
ChkDsk will check/repair any damage to an NTFS filesystem, clear the dirty bit, and allow the partition to be mounted in Linux using ntfs3.
chkdsk /f x:
- x: denotes the drive letter of the disk as it appears in Windows.
What if I don’t have Windows installed?:
ChkDsk may also be run from a bootable:
- Windows 7/8/8.1/10/11 DVD/USB installer
- Windows To Go DVD/USB
- Windows Repair Disc, such as Hiren’s BootCD PE
Note: An OEM Windows Recovery Disc of any kind is not suitable.
ChkDisk fixed my NTFS drive and now it mounts with no errors:
No further action is needed. Continue using your NTFS filesystem as before.
What if my NTFS filesystem still doesn’t mount?:
If ntfs3 still refuses to mount your NTFS drive, then ChkDsk was unsuccessful, and deeper issues with your NTFS volume, or the disk itself, may be indicated. Other recovery methods exist, but they are outside the scope of this document.
It is possible, however, to substitute the ntfs3 kernel driver for the FUSE-based ntfs-3g driver package. Doing so will allow the NTFS volume to mount, but at great risk.
See Blacklist the ntfs3 kernel module (Optional).
Blacklist the ntfs3 kernel module (Optional)
A note on blacklisting ntfs3
in favour of ntfs-3g
ntfs3 will not mount an NTFS filesystem if it is marked dirty.
Important to note is that ntfs-3g works around this by virtue of ignoring the dirty bit. Any damage to the volume therefore is also ignored. Continued use of the volume risks even greater accumulated damage to the NTFS filesystem.
It is said that “Ignorance is bliss”
Blacklisting ntfs3 and opting to use ntfs-3g allows the NTFS volume to be mounted – but that’s all it does – If the NTFS volume is damaged, it remains damaged, while you remain blissfully unaware that any problem exists.
What does this mean?:
A check/repair using ChkDsk is recommended regardless of which NTFS driver is used.
Because ntfs-3g ignores the dirty bit, you won’t know if the volume is damaged, until it’s too late. Data loss is possible!
Procedure to blacklist ntfs3 and use ntfs-3g:
Install ntfs-3g
:
# Check whether the `ntfs-3g` package is installed
pacman -Qi ntfs-3g
# Install the `ntfs-3g` package, if needed
sudo pacman -S ntfs-3g
Blacklist ntfs3
:
echo 'blacklist ntfs3' | sudo tee /etc/modprobe.d/blacklist-ntfs3.conf
To reverse this decision at any time, delete blacklist-ntfs3.conf
:
sudo rm /etc/modprobe.d/blacklist-ntfs3.conf
Note: The ntfs-3g package can remain installed, if desired, as ntfs3 will take precedence if no longer blacklisted. ntfs-3g might optionally be used to manually mount a volume, for example, in preference to ntfs3.
I think that just about covers it.