Problemas con NTFS HD compartido | Ubuntu 20.04 x Windows 10

Problemas con NTFS HD compartido | Ubuntu 20.04 x Windows 10

Máquina de arranque dual con Ubuntu 20.04 y Windows 10 en dispositivos de almacenamiento m.2 nvme separados. Tengo un disco duro externo (14 TB) configurado como NTFS. En cualquiera de los sistemas operativos puedo escribir en el disco. Sin embargo, cuando abro archivos en el disco duro en Windows 10, si los generé usando Ubuntu 20.04, a menudo están dañados. Por ejemplo:

D:\my\path> type myfile.mrc.tlt
The file or directory is corrupted and unreadable.

He visto este comportamiento en dos discos duros externos (uno Seagate y otro WD). Supuse que el problema estaba en la unidad Seagate. Pero ahora lo he replicado con uno de WD.

No estoy seguro de por dónde empezar a solucionar problemas desde aquí.

Cuando monto la unidad mientras la ejecuto, journalctl -faparece lo siguiente:

Nov 05 17:12:21 axoneme udisksd[894]: Mounted /dev/sdd1 at /media/jared/Elements on behalf of uid 1000
Nov 05 17:12:21 axoneme dbus-daemon[1641]: [session uid=1000 pid=1641] Activating via systemd: service name='org.freedesktop.Tracker1' unit='tracker-store.service' requested by ':1.1' (uid=1000 pid=1637 comm="/usr/libexec/tracker-miner-fs " label="unconfined")
Nov 05 17:12:21 axoneme systemd[1629]: Starting Tracker metadata database store and lookup manager...
Nov 05 17:12:21 axoneme dbus-daemon[1641]: [session uid=1000 pid=1641] Activating service name='org.gnome.Shell.HotplugSniffer' requested by ':1.37' (uid=1000 pid=1860 comm="/usr/bin/gnome-shell " label="unconfined")
Nov 05 17:12:21 axoneme dbus-daemon[1641]: [session uid=1000 pid=1641] Successfully activated service 'org.gnome.Shell.HotplugSniffer'
Nov 05 17:12:21 axoneme dbus-daemon[1088]: [session uid=125 pid=1088] Successfully activated service 'org.freedesktop.Tracker1'
Nov 05 17:12:21 axoneme systemd[1072]: Started Tracker metadata database store and lookup manager.
Nov 05 17:12:21 axoneme dbus-daemon[1641]: [session uid=1000 pid=1641] Successfully activated service 'org.freedesktop.Tracker1'
Nov 05 17:12:21 axoneme systemd[1629]: Started Tracker metadata database store and lookup manager.
Nov 05 17:12:21 axoneme ntfs-3g[5491]: Trying to read non-allocated mft records (10255 > 9984): Illegal seek
Nov 05 17:12:21 axoneme ntfs-3g[5491]: Trying to read non-allocated mft records (10256 > 9984): Illegal seek
Nov 05 17:12:21 axoneme ntfs-3g[5491]: Trying to read non-allocated mft records (10164 > 9984): Illegal seek
Nov 05 17:12:21 axoneme ntfs-3g[5491]: Trying to read non-allocated mft records (10165 > 9984): Illegal seek
Nov 05 17:12:22 axoneme ntfs-3g[5491]: Trying to read non-allocated mft records (10009 > 9984): Illegal seek
Nov 05 17:12:22 axoneme ntfs-3g[5491]: Trying to read non-allocated mft records (10010 > 9984): Illegal seek
Nov 05 17:12:22 axoneme ntfs-3g[5491]: Trying to read non-allocated mft records (10030 > 9984): Illegal seek
Nov 05 17:12:22 axoneme ntfs-3g[5491]: Trying to read non-allocated mft records (10031 > 9984): Illegal seek

De manera similar, si ejecuto ls -lthen un directorio en NTFS HD con Ubuntu 20.04, obtengo lo siguiente en los directorios dañados:

Nov 05 17:16:03 axoneme ntfs-3g[5491]: Trying to read non-allocated mft records (10294 > 9984): Illegal seek
Nov 05 17:16:03 axoneme ntfs-3g[5491]: Trying to read non-allocated mft records (10290 > 9984): Illegal seek
Nov 05 17:16:03 axoneme ntfs-3g[5491]: Trying to read non-allocated mft records (10360 > 9984): Illegal seek

Respuesta1

Entonces, la discusión en los comentarios mostró que el problema comienza a ocurrir una vez que Windows accede a la partición NTFS. Entonces, ¿es un problema de Windows? Parece probable, aunque existe la posibilidad de que el controlador ntfs-3g FUSE interprete algo de manera incorrecta en comparación con el de Windows, lo que resulta en una incompatibilidad.

Es interesante que este problema parece ser extremadamente raro.(Encontré solo algunas publicaciones con los errores exactos de journalctl, una del año 2008 y otra sobre alguna interacción extraña con RAID). Esto es algo a tener en cuenta, porque podría implicar que usted tiene alguna configuración especial que causa estos problemas, y sería muy interesante saber cuál podría ser. Pero lo dejaré como ejercicio para el lector.

En términos de solución alternativa, lo que puedes probar es:

  1. Prueba el nuevo ntfs3controlador del núcleo(a diferencia del ntfs-3g que estás usando),contribuido al kernel por Paragon Software desde Linux 5.15. No debe confundirse con el antiguo controlador del kernel ntfs de sólo lectura, que aún no se ha eliminado. Deberá actualizar a la versión 5.15 o superior del kernel de Linux. El 5.15 parece usarse por defecto en 22.04(y te recomiendo que actualices 20.04 → 22.04 porque al tener un software más antiguo en tu 20.04 te estás perdiendo muchas optimizaciones y funciones).

    De repente, no sé cómo hacer que los administradores de archivos utilicen ntfs3 de forma predeterminada, pero podría, por ejemplo, agregar una /etc/fstabentrada que utilice el controlador ntfs3.

    Esto puede o no ayudar con su problema. Pero si no es así, entonces estoy 97% seguro de que esto es puramente una falla específicamente de su sistema Windows.(ver también mi punto sobre la rareza). La razón de mi confianza es que Paragon Software es una empresa antigua que estuvo vendiendo sus controladores de sistema de archivos durante mucho tiempo, y estoy bastante seguro de que tenían suficiente conocimiento y experiencia práctica para resolver posibles incompatibilidades con el controlador original de Windows.

  2. Si está utilizando NTFS específicamente para compartir archivos, también podría considerar:

    1. Utilizando el sistema de archivos UDF en su lugar. Es compatible tanto con Windows como con Linux.
    2. Usando exgrasa.Desde 5.7 SAMSUNG ha agregado un controlador para exfat, y ellostambién liberadoexfatprogs, por lo que se cuenta con el soporte adecuado.

PD: lo ideal sería que también probaras el último ntfs-3g y, si el problema aún se puede reproducir, informa un error. Aunque es posible que tengas que convencer a los desarrolladores de que en realidad se trata de un problema de ntfs-3g. Si el controlador ntfs3 funciona bien, entonces eso podría ser una evidencia implícita de que el problema está en el controlador ntfs-3g.

información relacionada