Fix an NTFS Dirty Volume That Won’t Mount on Ubuntu
Published:
My NTFS partition /dev/sdb1, labeled seagate2t, would not mount on Ubuntu. Other partitions on the same disk mounted successfully. The kernel log identified the problem:
ntfs3: sdb1: It is recommened to use chkdsk.
ntfs3: sdb1: volume is dirty and "force" flag is not set!
I wanted to fix it without rebooting into Windows. Running a no-action check with ntfsfix, then using ntfsfix -d and mounting again, resolved this case.
- Identify the Partition and the Mount Error
- Check Without Making Changes
- Repair and Clear the Dirty Flag
- What This Fix Does—and Its Limits
Identify the Partition and the Mount Error
First, check the device name, filesystem, and mount status:
lsblk -o NAME,SIZE,FSTYPE,LABEL,MOUNTPOINTS
findmnt --source /dev/sdb1
In my case, /dev/sdb1 was an approximately 1.6 TB NTFS partition with no mount point. Use your own partition name in the commands below. Device names can change after reconnecting a disk.
Read the current boot’s kernel messages:
journalctl -k -b --no-pager | grep -Ei 'sdb1|ntfs3'
The repeated volume is dirty message explained why the ntfs3 driver refused the mount. A dirty flag indicates that the filesystem needs checking; it can follow an unclean shutdown, unsafe removal, or filesystem errors. The log alone did not establish which event caused it here.
There were no disk I/O errors in the current boot log I inspected. That observation does not establish the overall health of the disk.
Check Without Making Changes
ntfsfix was already installed on my system. If it is missing, install its package:
sudo apt install ntfs-3g
The partition must be unmounted before repair. If findmnt shows that it is mounted, close applications using it and unmount it first:
udisksctl unmount -b /dev/sdb1
Then run the no-action check:
sudo ntfsfix -n /dev/sdb1
The -n option reports what the tool would do without writing to the partition. Read the output before proceeding. If it reports I/O errors or problems it cannot handle, stop and investigate those errors before attempting a repair. Back up irreplaceable files before modifying filesystem metadata whenever possible.
Use sudo even for this check: reading the raw block device requires permission. An unprivileged attempt on my system printed Permission denied, followed by a generic corruption warning. That failed attempt was not evidence of additional filesystem corruption.
Repair and Clear the Dirty Flag
After the basic checks succeed, run:
sudo ntfsfix -d /dev/sdb1
According to the installed ntfsfix manual, -d clears the dirty flag if the volume can be fixed and mounted. This command can modify filesystem metadata; it is the repair step.
Once it completes successfully, mount the partition:
udisksctl mount -b /dev/sdb1
The command prints the mount location. You can also check it with:
findmnt --source /dev/sdb1
After this procedure, my partition mounted successfully and was usable again, without a Windows reboot.
What This Fix Does—and Its Limits
ntfsfix repairs some fundamental NTFS inconsistencies and can reset the NTFS journal. It is not a Linux equivalent of a full Windows chkdsk check. The no-action check and a successful mount do not prove that every file and filesystem structure is healthy.
The -d option matters here: without it, ntfsfix normally sets the dirty flag to request a later filesystem check. See man ntfsfix for the behavior of the version installed on your machine.
Although the kernel message mentions force, forcing a mount bypasses the dirty-flag refusal without resolving its cause. If ntfsfix fails or the flag keeps returning, investigate the new logs and arrange a fuller NTFS check rather than repeatedly clearing it. For this particular incident, the basic Ubuntu repair was enough to restore access.
