-- Leo's gemini proxy

-- Connecting to gemini.ctrl-c.club:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini

The NTFS3 Linux driver still sucks


The NTFS3 driver corrupted a bunch of directories on my external hard drive, which sucked. Ever since it was introduced in Linux 5.15, it has caused filesystem corruption for many people, and it still has critical bugs in Linux 6.1, which is the kernel version I use on my desktop. I do not know how such a buggy filesystem driver made it into a stable kernel release...


I thought I was using the NTFS-3G userspace driver, which has never caused any problems for me, but it turns out that I was not. Apparently, NTFS3 has priority over NTFS-3G, which I did not know beforehand. The corruption became apparent when rsync started using way too much RAM for no reason, and it turns out that opening one of the folders on my external hard drive caused my file browser to freeze. Using dmesg, I saw a ton of errors in the kernel log about a corrupted inode, and that is when I realized that the buggy NTFS3 driver was being used instead of the more stable NTFS-3G driver.


The best way to prevent usage of the buggy NTFS3 driver is to blacklist the module. Create a .conf file in /etc/modprobe.d/ containing "blacklist ntfs3" using your favorite text editor. Additionally, unload the NTFS3 driver using 'rmmod ntfs3' as root or with sudo. Check using 'lsmod | grep "ntfs"' to be certain that the NTFS3 driver is no longer loaded, and mount an NTFS partition and check the list of mounted filesystems with 'mount -l'. The NTFS partition should have a filesystem type of "fuseblk", which makes sense as NTFS-3G is a userspace driver that uses FUSE.


Afterwards, a Windows installation is required to repair the corrupted parts of any NTFS filesystems. Run chkdsk on the corrupted drive and hope that Windows does not screw up somehow. There is the 'ntfsfix' command, which is part of NTFS-3G, but it honestly does not do that much.


Ugh, this wasted about four hours of my day...


Index

-- Response ended

-- Page fetched on Mon May 27 12:37:52 2024