Fix an NTFS Dirty Volume That Won’t Mount on Ubuntu

3 minute read

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

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.