How to fix unSync Master File Table of an external HDD?
Cause: cold rebooting while EXT HDD were in use

$MFTMirr does not match $MFT (record 3).
Failed to mount '/dev/sdb1': Input/output error


This means the Master File Table (MFT) and its mirror are out of sync. Linux (`ntfs-3g`) refuses to mount to prevent more damage.

🛠️ How to fix this safely

1. Do not keep retrying to mount in Ubuntu
Each attempt risks more corruption. Stop trying to mount it until it’s fixed.

2. Use Windows `chkdsk /f` (the official NTFS repair tool)
Since NTFS is Microsoft’s filesystem, Linux can’t fully repair $MFT. You must use Windows.

Steps:
1. Plug the external HDD into a Windows machine.
2. Open Command Prompt (Admin) and run:

chkdsk /f H:

(replace H: with the correct drive letter of your External HDD)
3. Wait for the scan and repair to finish.
4. Reboot Windows twice (this is important, as the NTFS journal may only fully clear after two restarts).

3. Back up your data immediately
Once repaired and mountable again, back up your important files. The fact that $MFT and $MFTMirr got out of sync is a warning sign — the disk or enclosure may be unstable.

4. Optional Linux-side repair attempt (if no Windows is available)
Ubuntu has a minimal NTFS repair tool:
sudo ntfsfix /dev/sdb1
This can clear the dirty flag and do small fixes, but it cannot fix `$MFT` corruption. It will still recommend running Windows chkdsk.

5. Check hardware health
Since you hard-powered off, this is most likely  filesystem corruption , not hardware. But to be safe, you can test the disk’s health:
sudo smartctl -a /dev/sdb
(install with sudo apt install smartmontools if not available).

Summary:
Your External HDD must be connected to Windows → run chkdsk /f → reboot twice → then safely eject → and it will mount fine in Ubuntu again.
 


Safe way to backUp from MFT-Corrupted External HDD before running chkdsk on Windows OS

Step 1: Install recovery tools
sudo apt update
sudo apt install gddrescue testdisk

 `gddrescue` → makes a sector-by-sector clone of the failing drive (best for safety).
`testdisk` / `photorec` → recovers files from damaged partitions.

Step 2: Create a full raw backup (ddrescue)

1. First, find your drive:
lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT
Your external HDD is /dev/sdb (not the partition `/dev/sdb1`).

2. Make sure the drive is not mounted:
sudo umount /dev/sdb1


3. Connect a second large disk (e.g. your 2TB external HDD) to store the clone. Assume it mounts at /mnt/backup.

4. Run ddrescue:
sudo ddrescue -f -n /dev/sdb /mnt/backup/ParaTopData.img /mnt/backup/ParaTopData.log
/dev/sdb → your source disk
ParaTopData.img → raw image backup
ParaTopData.log → log file for resume/repair

This makes a bit-for-bit copy of your HDD, even if there are read errors. The log lets you retry later without restarting from zero.

5. If the first pass completes, you can try to recover more bad sectors:
sudo ddrescue -d -r3 /dev/sdb /mnt/backup/ParaTopData.img /mnt/backup/ParaTopData.log
(`-r3` = retry 3 times; increase if you want).

 

Step 3: Mount the image (optional)
Once cloned, you can test mounting the image (not the original disk):
sudo mkdir /mnt/recovery
sudo mount -o loop,ro /mnt/backup/ParaTopData.img /mnt/recovery

If it mounts → copy your files.

Step 4: Use PhotoRec if filesystem is badly corrupted
If mounting fails, extract files directly:
sudo photorec /log /d /mnt/recovery /mnt/backup/ParaTopData.img
/d /mnt/recovery → directory where recovered files will be written
Photorec ignores filesystem metadata and pulls raw files (you’ll get lots of files with generic names, but data will be safe).


🔑 Final Notes

✅ Best practice: run ddrescue first (clone disk → work on the clone, not the original).
✅ Only after backing up should you run Windows `chkdsk /f` on the original disk.
✅ Keep your cloned .img safe in case chkdsk makes things worse.