Is there a way to fsck/chkdsk an NTFS drive from Linux?
6 Answers
Yes. This was handled by fsck
on some releases. If the partition is not listed in /etc/fstab
, then you will likely need to tell it the partition type. I've used this from a Linux CD to recover a partition Windows wouldn't boot from.
Based on the comments below, the actual fixing is done by the ntfsfix
program. It should be available, even if there is no program to run a fsck
on an NTFS file system.
-
11Although as noted in the man page for ntfsfix/fsck.ntfs, it is not a Linux version of chkdsk and only checks for certain kinds of obvious problems on the disk. Dec 19, 2011 at 10:03
-
5I assume from the above comment that
fsck.ntfs
was at some point handled byntfsfix
. Comments on a lower post indicate this may not be workable now as their arguments are not compatible. Anyway, in Debian 8.2,fsck.ntfs
does not exist - butntfsfix
does and was able to fix a corrupted MFT I encountered. Thanks @SabreWolfy for the hint. Nov 5, 2015 at 23:24
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..) New 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.
-
1Or use Ultimate Boot CD for Windows. It's a live Windows XP CD with lots of recovery tools. That's how I solved my problem (corrupted NTFS partition). I tried using the
ntfsck
program included in the Parted Magic live USB, but I got an error sayingBoot sector: bad NTFS magic. Segmentation fault
. Apr 30, 2012 at 23:23 -
1maybe limited for some people, but it fixed my corrupted MFT just fine :-) [until the next time, perhaps! i'm not sure about this drive...] Nov 5, 2015 at 23:22
-
UBCD has many qualities but I should not describe it as a Windows XP CD. Jul 16, 2016 at 14:33
-
1Hyper-V Server is a completely free (beer) but heavily cut-down version of Windows that's designed for running VMs. The installer should contain all the usual utilities like
chkdsk
/diskpart
, etc. Dec 4, 2019 at 13:22 -
2Take care using Windows 'chkdsk /f' on an NTFS used by Linux. I just followed this advice to fix errors on my external 2TB backup drive. It deleted the names of 268 files and directories (incl. all my incr. backups) due to invalid characters (from NTFS viewpoint - most often ':' used in timestamps). I reverted it all using the log file, but it took half a day of coding. Some but not all Linux system-calls block writing such invalid names on an NTFS. I use rsync for backups, which silently copies such invalid filenames - normally useful, until you need to fix other problems on the disk... Jun 15, 2020 at 11:30
In my case, none of fsck
& ntfsfix
could fix the issue of my external NTFS mobile disk.
I end up to boot into windows os, and use follow steps to fix the disk issue.
Steps:
- Check the identifier of the bad disk. e.g
g
- Open the "cmd" terminal of windows.
- Input
chkdsk <disk>: /f
to fix it.
Where<disk>
is the identifier, e.gchkdsk d: /f
- Then it would be fixed within seconds (For a disk of size 1Tb).
After years, finally I found something that windows can do easily, but linux can't ;)
@Update - vm solution
You can also create a windows vm (e.g win 7), then mount the mobile disk to windows vm, then you can also use chkdsk
to fix the disk, it's similar as boot into a windows machine.
-
1I'd recommend using flag
/x
(unmount) for enforcing preventing access to the drive. Help manual says using/x
implies also/f
, so it helps for doing fixes the same way Linux does (fsck
requires drives being unmounted).– SonicARGJun 24, 2018 at 1:34 -
ln -s /bin/ntfsfix /sbin/fsck.ntfs
fsck /dev/sdg1
fsck from util-linux 2.21.2
Mounting volume... OK
Processing of $MFT and $MFTMirr completed successfully.
Checking the alternate boot sector... FIXED
NTFS volume version is 3.1.
NTFS partition /dev/sdg1 was processed successfully.
On fedora 22, there is another binary :
lrwxrwxrwx. 1 root root 13 May 22 22:13 /usr/sbin/fsck.ntfs -> ../bin/ntfsck
If you have NTFSProgs installed, you should be able to run fsck.ntfs
or fsck -t ntfs
to fsck an NTFS drive.
-
4Running Debian 6.0.3, just installed ntfsprogs, no fsck.ntfs installed, and when running fsck with -t ntfs, get "fsck.ntfs not found". So don't think the two are related. Dec 17, 2011 at 15:00
-
4@ZayneSHalsall In Debian, it happens to be a symlink to
ntfsfix
which is inntfsprogs
. I guarantee you that you will be able to runntfsfix
ifntfsprogs
installed properly.– squircleDec 27, 2011 at 5:51 -
4Newer versions of Debian and Ubuntu don't have this symlink. You can make it yourself, but the problem is that
ntfsfix
has a completely different set of arguments to the standardfsck
ones. It's better to makefsck.ntfs
(andfsck.ntfs-3
) a script containingexec ntfsfix ${@:$#}
(with a shebang of#!/bin/bash
). Mar 19, 2015 at 22:31 -
2@squircle thank you man
sudo ntfsfix /dev/sda1
fixed my issue.fsck.ntfs -f /dev/sda1
andfsck -t ntfs -f /dev/sda1
exited early withfsck from util-linux 2.31.1
– EdwardOct 30, 2020 at 13:22 -
Using a fsck.ntfs
solved my similar problem in a Windows ntfs partition + Ubuntu 20.XX LTS partition (can't remember exact version):
Running lsblk -f
returns:
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
sda
├─sda1
├─sda2 vfat FAT32 1950-4B8D 505,9M 1% /boot/efi
└─sda3 ext4 1.0 29ee8e5b-457e-4610-a503-c8142cc40d68
sdb
└─sdb1 ntfs HDD 42AEC908AEC8F607
sdc
├─sdc1 ntfs Recuperação 04C0478BC0478242
└─sdc2 ext4 1.0 8be461e1-7470-45f6-844c-7559ed2769e9 380,6G 8% /
As you can see, I need to fix my HDD labeled driver (42AEC908AEC8F607), so ln -s /bin/ntfsfix /sbin/fsck.ntfs
and after an fsck /dev/sdb1
solved for me, even loggin windows 'refuse to mount' FAILED:
root@bruno-andrade:/home/bruno# fsck /dev/sdb1
fsck from util-linux 2.37.2
Mounting volume... The disk contains an unclean file system (0, 0).
Metadata kept in Windows cache, refused to mount.
FAILED
Attempting to correct errors...
Processing $MFT and $MFTMirr...
Reading $MFT... OK
Reading $MFTMirr... OK
Comparing $MFTMirr to $MFT... OK
Processing of $MFT and $MFTMirr completed successfully.
Setting required flags on partition... OK
Going to empty the journal ($LogFile)... OK
Checking the alternate boot sector... FIXED
NTFS volume version is 3.1.
NTFS partition /dev/sdb1 was processed successfully.
Thanks to @tanguy in his answer: fsck an ntfs drive in Linux
-
I would be EXTREMELY cautious about using non-native tools on a Windows NTFS partition. The Ubuntu 20 version of ntfsfix should be OK under most circumstances ... but lots of folks (myself included!) have distros dating back 10 years or more. It could be catastophic to apply some arbitrary Linux tool on some NTFS filesystems... Two better alternatives: 1) Boot to Windows, or 2) use a Windows VM.– paulsm4Apr 21 at 17:03
-
Welcome to Super User! Before answering an old question having an accepted answer (look for green ✓) as well as other answers ensure your answer adds something new or is otherwise helpful in relation to them. Here is a guide on How to Answer. There is also a site tour and a help center. Apr 21 at 17:55