- ENTRADA 048 -
Usando sistemas de archivos (filesystems) de Windows en GNU/Linux
Necesitamos que sabotee los microfilms, Srta. Hall
--- Fecha: mié 14 ago 2024 18:38:54 CEST
- Actualización -
- 17-11-2024
Los sistemas de archivos son básicos en cualquier ordenador que almacene datos. Son como el tipo de papel de un libro: estucado, offset, cartoné; gramaje de 80, 90...
Cada editorial usa un tipo diferente dependiendo del uso (novela, revista, guía de referencia...).
Con los sistemas informáticos pasa lo mismo. Sistemas de archivos o filesystem hay muchos y no es objetivo de este escrito repasarlos, entre otras cosas porque son muchos.
Solo decir que los más habituales son:
- Windows: FAT32, ExFAT y NTFS
- Linux: ext2, ext3, ext4, btrfs
Cada tipo tiene sus características que los diferencian. Voy a repasarlos:
Windows
- FAT32: Es uno de los más conocidos. Muy compatible pero con limitaciones de tamaño de archivo de hasta 4 Gb y partición de hasta de 32 Gb.
- ExFAT: Introducido con Windows Vista, vino a resolver la limitación de los 4 gb de archivo y soporta volúmenes de hasta 512 TB. Es muy utilizado en dispositivos extraibles.
- NTFS: Apareció con Windows NT y su gran novedad es que redujo la fragmentación e introdujo un sistema de journaling para garantizar la integridad del sistema de archivos. Es un sistema privativo, por lo que solo es compatible 100% con sistemas Windows. No es compatible con otros sistemas si no es a través de software, y aun así, muchos solo tendrán acceso de lectura.
Linux
- ext2: Es un sistema antiguo que soporta 2 terabytes de archivo y 4 para la partición.
- ext3: Introduce journaling para integridad del sistema de archivos y es capaz de manejar 2 terabytes de archivo y 32 para la partición. Tiene un limite de 32 mil subdirectorios.
- ext4: Es el actual sistema usado en las distribuciones. Soporta 16 terabytes de archivo y volúmenes de 1024 petabytes, consume menos CPU y es más rápido que ext3. Introduce "extents" para reducir la fragmentación. Amplía el límite de subdirectorios a 64 mil.
- btrfs: Soporta snapshots del sistema, por lo que tiene una mayor tolerancia a fallos. Asigna dinámicamente inodos, por lo que no hay un número máximo de archivos.
Cual escoger
Bajo Windows, si quieres compatibilidad usa FAT32 siendo consciente de sus limitaciones y de que no usa sistema de integridad de archivos y se fragmente bastante. Mejor usar ExFAT, sobre todo si vas a usar cacharros externos.
Si vas a usar Windows en general, usa su NTFS.
Bajo GNU/Linux usa ext3 o mejor aun ext4, ya que ext2 no tiene journaling y puede corromperse el sistemas de archivos.
Btrfs es más nuevo y aplica técnicas que implementa ZFS. Está en constante desarrollo, por lo que si usas kernels más antiguos no será el mejor sistema. Tampoco lo uses si tienes pensado usar RAID (recomendación de sus propios creadores).
Si quieres compatibilidad hacia afuera, usa ExFAT. Puedes usar NTFS pero es privativo y Microsoft no lo ha liberado, así que aunque esté soportado, se pueden dar errores, y de hecho, se dan.
Usando NTFS en GNU/ Linux, ¿recomendable?
La respuesta corta es un NO rotundo. La respuesta larga, ahí va.
Como dije antes, NTFS es privativo, Microsoft no lo ha liberado, por lo que los drivers en Linux, aunque funcionan bien, no son 100% compatibles, acabando por corromper tarde o temprano el sistema de archivos. Esto no es culpa de Linux, si no de la manía que tienen las BigTech de privatizarlo todo y de pasarse los estándares por el forro.
Sí, por desgracia, las herramientas gratuitas disponibles en GNU/Linux son muy limitadas en lo que respecta a la reparación de particiones NTFS. Ni fsck, ntfsfix o gparted pueden utilizarse para solucionar un problema con una partición NTFS más allá de aplicar algún parche para solventar momentáneamente el problema que pueda dar (y créeme que más pronto que tarde los va a dar), pero volverá a fallar con el uso.
En el caso de NTFS, la herramienta ntfsfix es muy limitada en comparación con chkdsk de Microsoft, por lo que es altamente recomendable que se utilicen las herramientas de Windows: chkdsk /f (y /b si hay bloques dañados).
ntfsfix solo parece eliminar el bit sucio, no reparar realmente el sistema de archivos. Para arreglarlo necesitas arrancar windows y repararlo desde allí. NTFS almacena al final del disco una MFT (Master File Table) secundaria. Con suerte (si no se ha visto afectada por los errores del disco), aún podrás recuperar tus datos.
Diferentes soportes NTFS en Linux (kernel)
AVISO: Se avecina turra importante ;-)
Linux tiene múltiples controladores ntfs:
- ntfs: Añadido al kernel en 2001, era un intento de dar compatibilidad, y más allá de leer un volumen NTFS, poco más podía hacer sin cargarse algo.
- ntfs-3g: Es una variante que venía a mejorar al anterior. Hace tiempo que no tiene desarrollo activo. Funciona fuera de kernel usando FUSE, por lo que al trabajar en espacio de usuario, su rendimiento es más bajo que el controlador del kernel. Va bastante bien, pero aun así, se corrompen particiones, como me pasa a mi.
- ntfs3: El nuevo controlador de Paragon Software, tiene dos versiones, la comercial, del año 2000 y la derivada de esta, con licencia GPL, desarrollada en 2020 para el kernel 5.15 [1]. Ofrece un rendimiento mucho más rápido que las implementaciones basadas en FUSE y sigue en desarrollo por Paragon Software, sobre todo por Konstantin Komarov [2]. Igualmente, muchos/as/es usuarios/as/es tienen problemas cada cierto tiempo [3].
Mucha gente opina que desde que el driver ntfs3 con soporte nativo de escritura fue añadido al kernel Linux, ntfs y ntfs-3g no deberían utilizarse en absoluto como driver de sistema de ficheros.
Hay quien dice que se puede instalar ntfs-3g para aprovechar las herramientas que ofrece, pero esto tiene un problema añadido, y es que el sistema puede usar este servicio en lugar del propio del kernel.
Para que el sistema no use el sistema de archivos de ntfs-3g, se recomienda configurar las particiones NTFS en fstab para forzar el uso del controlador ntfs3. Si se necesita montar sistemas de archivos NTFS de dispositivos extraíbles y que, por lo tanto, no se agregan al fstab, se recomienda agregar una regla udev para que por defecto use el controlador ntfs3.
Cambiar el filesystem
"Vale, me has convencido, voy a pasar a ext4 mis cacharros NTFS".
¡Para el carro!. No pueden pasarse formatos sin perder los datos. De FAT32 a NTFS sí, pero de NTFS a ext4 no se puede.
Si aun así eliminas particiones y reformateas a ext4, decirte que yo he tenido problemas de reconocimiento del dispositivo. El procedimiento que a mí me ha funcionado es el siguiente, desde gparted como root:
- Eliminar partición NTFS y salir de gparted.
- Desconectar y apagar el disco unos 20 segundos (para asegurarse de que se para del todo).
- Volver a conectarlo.
- Crear la partición o el reformateo en ext4.
Ahora la partición solo va a tener permisos de escritura para root, así que hay que cambiar sus permisos:
sudo chgrp moribundo /run/media/usuario/punto_de_montaje sudo chmod g+w /run/media/usuario/punto_de_montaje
Conclusión
NTFS es una mierda en GNU/Linux, no lo uses si no es estrictamente necesario. Si te mueves más en entornos GNU/Linux, usa ext4, o inclsuo btrfs, o a malas ExFAT, pero no NTFS. Sale más a cuenta tener un pendrive Live con alguna distro para compatibilizar filesystems que arriesgarte a perder info por culpa de un sistema privativo de una compañía de mierda que mucho meter linux en su powershell, pero nada de abrir sus sistemas (opinión personal).
Espero que esto te sirva si estás hasta las narices de joder discos en NTFS
Tags #ntfs #fat32 #exfat #ext2 #ext3 #ext4 #btrfs
/blog/