De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

El sistema de archivos de diario ext4 o cuarto sistema de archivos extendido es un sistema de archivos de diario para Linux , desarrollado como el sucesor de ext3 .

ext4 era inicialmente una serie de extensiones compatibles con versiones anteriores de ext3, muchas de ellas desarrolladas originalmente por Cluster File Systems para el sistema de archivos Luster entre 2003 y 2006, destinadas a ampliar los límites de almacenamiento y agregar otras mejoras de rendimiento. [4] Sin embargo, otros desarrolladores del kernel de Linux se opusieron a aceptar extensiones para ext3 por razones de estabilidad, [5] y propusieron bifurcar el código fuente de ext3, renombrarlo como ext4 y realizar todo el desarrollo allí, sin afectar a los usuarios existentes de ext3. Esta propuesta fue aceptada y el 28 de junio de 2006, Theodore Ts'o , el mantenedor de ext3, anunció el nuevo plan de desarrollo para ext4. [6]

Se incluyó una versión de desarrollo preliminar de ext4 en la versión 2.6.19 [7] del kernel de Linux. El 11 de octubre de 2008, los parches que marcan ext4 como código estable se fusionaron en los repositorios de código fuente de Linux 2.6.28, [8] indicando el final de la fase de desarrollo y recomendando la adopción de ext4. Kernel 2.6.28, que contiene el sistema de archivos ext4, fue finalmente lanzado el 25 de diciembre de 2008. [9] El 15 de enero de 2010, Google anunció que actualizaría su infraestructura de almacenamiento de ext2 a ext4. [10] El 14 de diciembre de 2010, Google también anunció que usaría ext4, en lugar de YAFFS , en Android 2.3 . [11]

Adopción [ editar ]

ext4 es el sistema de archivos predeterminado para muchas distribuciones de Linux, incluidas Debian y Ubuntu . [12]

Funciones [ editar ]

Gran sistema de archivos
El sistema de archivos ext4 puede admitir volúmenes con tamaños de hasta 1 exbibyte (EiB) y archivos individuales con tamaños de hasta 16 tebibytes (TiB) con el tamaño de bloque estándar de 4 KiB . [13] Los límites máximos de tamaño de archivos, directorios y sistemas de archivos crecen al menos proporcionalmente con el tamaño del bloque del sistema de archivos hasta el tamaño de bloque máximo de 64 KiB disponible en las CPU ARM y PowerPC / Power ISA .
Extensiones
Las extensiones reemplazan el esquema de mapeo de bloques tradicional usado por ext2 y ext3. Una extensión es un rango de bloques físicos contiguos que mejoran el rendimiento de archivos grandes y reducen la fragmentación. Una sola extensión en ext4 puede mapear hasta 128  MiB de espacio contiguo con un tamaño de bloque de 4 KiB. [4] Puede haber cuatro extensiones almacenadas directamente en el inodo . Cuando hay más de cuatro extensiones en un archivo, el resto de las extensiones se indexan en un árbol . [14]
Compatibilidad con versiones anteriores
ext4 es retrocompatible con ext3 y ext2 , lo que hace posible montar ext3 y ext2 como ext4. Esto mejorará ligeramente el rendimiento, porque ciertas características nuevas de la implementación ext4 también se pueden usar con ext3 y ext2, como el nuevo algoritmo de asignación de bloques, sin afectar el formato en disco.
ext3 es parcialmente compatible con ext4. Prácticamente, ext4 no se montará como un sistema de archivos ext3 fuera de la caja, a menos que ciertas nuevas características están desactivadas cuando se crea, como por ejemplo ^extent, ^flex_bg, ^huge_file, ^uninit_bg, ^dir_nlink, y ^extra_isize. [15]
Preasignación persistente
ext4 puede preasignar espacio en disco para un archivo. Para hacer esto en la mayoría de los sistemas de archivos, se escribirían ceros en el archivo cuando se creara. En ext4 (y algunos otros sistemas de archivos como XFS ) fallocate(), se puede usar una nueva llamada al sistema en el kernel de Linux. El espacio asignado estaría garantizado y probablemente contiguo. Esta situación tiene aplicaciones para transmisión de medios y bases de datos.
Asignación retrasada
ext4 utiliza una técnica de rendimiento llamada asignación al ras , también conocida como asignación retrasada . Es decir, ext4 retrasa la asignación de bloques hasta que los datos se vacían en el disco; por el contrario, algunos sistemas de archivos asignan bloques inmediatamente, incluso cuando los datos van a una caché de escritura. La asignación retrasada mejora el rendimiento y reduce la fragmentación al asignar de forma eficaz mayores cantidades de datos a la vez.
Número ilimitado de subdirectorios
ext4 no limita el número de subdirectorios en un solo directorio, excepto por el límite de tamaño inherente del directorio en sí. (En ext3, un directorio puede tener como máximo 32.000 subdirectorios). [16] Para permitir directorios más grandes y un rendimiento continuo, ext4 en Linux 2.6.23 y posteriores activa los índices HTree (una versión especializada de un árbol B ) de forma predeterminada, que permite almacenar directorios de hasta aproximadamente 10–12 millones de entradas en el índice HTree de 2 niveles y el límite de tamaño de directorio de 2 GB para un tamaño de bloque de 4 KiB, según la longitud del nombre de archivo. En Linux 4.12 y versiones posteriores, la función habilitaba un HTree de 3 niveles y tamaños de directorio superiores a 2 GB, lo que permitía aproximadamente 6 mil millones de entradas en un solo directorio.largedir
Sumas de comprobación de diario
ext4 usa sumas de comprobación [17] en el diario para mejorar la confiabilidad, ya que el diario es uno de los archivos más usados ​​del disco. Esta función tiene un beneficio adicional: puede evitar de forma segura una espera de E / S de disco durante el registro en diario, lo que mejora ligeramente el rendimiento. La suma de verificación de la revista se inspiró en un artículo de investigación de la Universidad de Wisconsin , titulado IRON File Systems [18] (específicamente, la sección 6, llamada "sumas de verificación de transacciones"), con modificaciones dentro de la implementación de transacciones compuestas realizadas por el sistema de archivos IRON (originalmente propuesto por Sam Naghshineh en la cumbre RedHat).
Suma de comprobación de metadatos
Desde el lanzamiento del kernel 3.5 de Linux en 2012 [19] [20]
Comprobación más rápida del sistema de archivos
En ext4, los grupos de bloques no asignados y las secciones de la tabla de inodo se marcan como tales. Esto permite a e2fsck omitirlos por completo y reduce en gran medida el tiempo que lleva verificar el sistema de archivos. Linux 2.6.24 implementa esta característica.
Dependencia del tiempo de fsck en el recuento de inodos ( ext3 frente a ext4)
Asignador multibloque
Cuando ext3 se agrega a un archivo, llama al asignador de bloques, una vez por cada bloque. En consecuencia, si hay varios escritores simultáneos, los archivos pueden fragmentarse fácilmente en el disco. Sin embargo, ext4 usa la asignación retrasada, lo que le permite almacenar datos en búfer y asignar grupos de bloques. En consecuencia, el asignador de multibloques puede tomar mejores decisiones sobre la asignación de archivos de forma contigua en el disco. El asignador de multibloques también se puede utilizar cuando los archivos se abren en modo O_DIRECT. Esta característica no afecta el formato del disco.
Marcas de tiempo mejoradas
A medida que las computadoras se vuelven más rápidas en general, y que Linux se usa más para aplicaciones de misión crítica , la granularidad de las marcas de tiempo basadas en segundos se vuelve insuficiente. Para resolver esto, ext4 proporciona marcas de tiempo medidas en nanosegundos . Además, se agregan 2 bits del campo de marca de tiempo expandido a los bits más significativos del campo de segundos de las marcas de tiempo para aplazar el problema del año 2038 por 408 años adicionales. [3]
ext4 también agrega soporte para marcas de tiempo de creación. Pero, como señala Theodore Ts'o , si bien es fácil agregar un campo de fecha de creación adicional en el inodo (lo que permite técnicamente el soporte para estas marcas de tiempo en ext4), es más difícil modificar o agregar las llamadas al sistema necesarias , como stat () (que probablemente requeriría una nueva versión) y las diversas bibliotecas que dependen de ellos (como glibc ). Estos cambios requerirán la coordinación de muchos proyectos. [21] Por lo tanto, la fecha de creación almacenada por ext4 actualmente solo está disponible para los programas de usuario en Linux a través de la statx()API. [22]
Cuotas de proyectos
El 8 de enero de 2016 se agregó compatibilidad con cuotas de proyectos en el kernel 4.4 de Linux. Esta función permite asignar límites de cuotas de disco a un ID de proyecto en particular. El ID de proyecto de un archivo es un número de 32 bits almacenado en cada archivo y es heredado por todos los archivos y subdirectorios creados debajo de un directorio principal con un ID de proyecto asignado. Esto permite asignar límites de cuota a un árbol de subdirectorio en particular independientemente de los permisos de acceso al archivo en el archivo, como cuotas de usuario y proyecto que dependen del UID y GID. Si bien esto es similar a una cuota de directorio, la principal diferencia es que el mismo ID de proyecto se puede asignar a varios directorios de nivel superior y no es estrictamente jerárquico. [23]
Cifrado transparente
La compatibilidad con el cifrado transparente se agregó en el kernel 4.1 de Linux en junio de 2015. [24]
Inicialización perezosa
La función lazyinit permite limpiar tablas de inodo en segundo plano, acelerando la inicialización al crear un nuevo sistema de archivos ext4. [25] Está disponible desde 2010 en la versión 2.6.37 del kernel de Linux. [26]
Escribir barreras
ext4 habilita las barreras de escritura por defecto. Garantiza que los metadatos del sistema de archivos se escriban y ordenen correctamente en el disco, incluso cuando las memorias caché de escritura pierden energía. Esto conlleva un costo de rendimiento, especialmente para aplicaciones que usan fsync en gran medida o crean y eliminan muchos archivos pequeños. Para discos con caché de escritura respaldada por batería, la desactivación de barreras (opción 'barrera = 0') puede mejorar el rendimiento de forma segura. [27]

Limitaciones [ editar ]

En 2008, el desarrollador principal de los sistemas de archivos ext3 y ext4, Theodore Ts'o , declaró que aunque ext4 tiene características mejoradas, no es un avance importante, utiliza tecnología antigua y es un recurso provisional. Ts'o cree que Btrfs es la mejor dirección porque "ofrece mejoras en escalabilidad, confiabilidad y facilidad de administración". [28] Btrfs también tiene "varias de las mismas ideas de diseño que tenía reiser3 / 4 ". [29] Sin embargo, ext4 ha seguido adquiriendo nuevas funciones como el cifrado de archivos y sumas de comprobación de metadatos.

El sistema de archivos ext4 no respeta el atributo de archivo de "eliminación segura" , que se supone que causa la sobrescritura de los archivos al eliminarlos. En 2011 se propuso un parche para implementar la eliminación segura, pero no resolvió el problema de que los datos confidenciales terminen en el diario del sistema de archivos. [30]

Asignación retrasada y posible pérdida de datos [ editar ]

Debido a que la asignación retrasada cambia el comportamiento en el que los programadores han estado confiando con ext3, la función presenta un riesgo adicional de pérdida de datos en los casos en que el sistema falla o pierde energía antes de que todos los datos se hayan escrito en el disco. Debido a esto, ext4 en las versiones 2.6.30 y posteriores del kernel maneja automáticamente estos casos como lo hace ext3.

El escenario típico en el que esto puede ocurrir es un programa que reemplaza el contenido de un archivo sin forzar una escritura en el disco con fsync . Hay dos formas comunes de reemplazar el contenido de un archivo en sistemas Unix: [31]

  • fd=open("file", O_TRUNC); write(fd, data); close(fd);
En este caso, un archivo existente se trunca en el momento de la apertura (debido a la O_TRUNCmarca), luego se escriben los nuevos datos. Dado que la escritura puede llevar algún tiempo, existe la posibilidad de perder contenido incluso con ext3, pero normalmente es muy pequeño. Sin embargo, debido a que ext4 puede retrasar la escritura de datos de archivos durante mucho tiempo, esta oportunidad es mucho mayor.
Pueden surgir varios problemas:
  1. Si la escritura no se realiza correctamente (lo que puede deberse a condiciones de error en el programa de escritura o debido a condiciones externas, como un disco lleno), se perderán tanto la versión original como la nueva del archivo, y el archivo puede estar dañado porque solo se ha escrito una parte.
  2. Si otros procesos acceden al archivo mientras se está escribiendo, ven una versión dañada.
  3. Si otros procesos tienen el archivo abierto y no esperan que su contenido cambie, esos procesos pueden fallar. Un ejemplo notable es un archivo de biblioteca compartida que se asigna a programas en ejecución.
Debido a estos problemas, a menudo se prefiere el siguiente idioma al anterior:
  • fd=open("file.new"); write(fd, data); close(fd); rename("file.new", "file");
Se crea un nuevo archivo temporal ("archivo.nuevo"), que inicialmente contiene los nuevos contenidos. Luego, el nuevo archivo se renombra sobre el anterior. rename()Se garantiza que la sustitución de archivos por la llamada es atómica según los estándares POSIX , es decir, o el archivo antiguo permanece o se sobrescribe con el nuevo. Debido a que el modo de registro por diario "ordenado" predeterminado de ext3 garantiza que los datos del archivo se escriban en el disco antes que los metadatos, esta técnica garantiza que el contenido del archivo nuevo o antiguo persistirá en el disco. La asignación retrasada de ext4 rompe esta expectativa, porque la escritura del archivo puede retrasarse durante mucho tiempo, y el cambio de nombre generalmente se lleva a cabo antes de que el contenido del archivo nuevo llegue al disco.

Usar fsync()más a menudo para reducir el riesgo de ext4 podría dar lugar a penalizaciones de rendimiento en los sistemas de archivos ext3 montados con el data=orderedindicador (el valor predeterminado en la mayoría de las distribuciones de Linux). Dado que ambos sistemas de archivos estarán en uso durante algún tiempo, esto complica las cosas para los desarrolladores de aplicaciones de usuario final. En respuesta, ext4 en los kernels de Linux 2.6.30 y posteriores detectan la ocurrencia de estos casos comunes y fuerzan la asignación de los archivos de inmediato. Por un pequeño costo de rendimiento, esto proporciona una semántica similar al modo ordenado ext3 y aumenta la posibilidad de que cualquiera de las versiones del archivo sobreviva al bloqueo. Este nuevo comportamiento está habilitado de forma predeterminada, pero se puede deshabilitar con la opción de montaje "noauto_da_alloc". [31]

Los nuevos parches se han convertido en parte del núcleo principal 2.6.30, pero varias distribuciones optaron por exportarlos a 2.6.28 o 2.6.29. [32]

Estos parches no previenen por completo la posible pérdida de datos ni ayudan en absoluto con los archivos nuevos. La única forma de estar seguro es escribir y usar software que lo haga fsync()cuando sea necesario. Los problemas de rendimiento se pueden minimizar limitando las escrituras de disco cruciales que deben fsync()ocurrir con menos frecuencia. [33]

Implementación [ editar ]

Estructura simplificada del kernel de Linux: ext4 se implementa entre el sistema de archivos virtual del kernel de Linux y la capa de bloques genéricos.

El sistema de archivos virtual del kernel de Linux es un subsistema o capa dentro del kernel de Linux. Es el resultado de un intento muy serio de integrar múltiples sistemas de archivos en una estructura única ordenada. La idea clave, que se remonta al trabajo pionero realizado por los empleados de Sun Microsystems en 1986, [34] es abstraer esa parte del sistema de archivos que es común a todos los sistemas de archivos y poner ese código en una capa separada que llama al sistemas de archivos concretos subyacentes para gestionar realmente los datos.

Todas las llamadas al sistema relacionadas con archivos (o pseudoarchivos) se dirigen al sistema de archivos virtual del kernel de Linux para su procesamiento inicial. Estas llamadas, procedentes de procesos de usuario, son las llamadas POSIX estándar, tales como open, read, write, lseek, etc.

Compatibilidad con Windows y Macintosh [ editar ]

ext4, a partir de 2012 , no tiene tanto soporte como ext2 y ext3 en sistemas operativos que no son Linux. ext2 y ext3 tienen controladores estables como Ext2IFS , que aún no están disponibles para ext4. Es posible crear sistemas de archivos ext4 compatibles deshabilitando la función de extensiones y, a veces, especificando un tamaño de inodo . [35] Otra opción para usar ext4 en Windows es usar Ext2Fsd , [36] un controlador de código abierto que admite la escritura en particiones ext4 con un diario limitado. Ver y copiar archivos de ext4 a Windows, incluso con extensiones habilitadas, también es posible con el software Ext2Read . [37] Más recientemente Paragonlanzó su producto comercial ExtFS para Windows que permite capacidades de lectura / escritura para ext2 / 3/4 .

macOS tiene capacidad completa de lectura y escritura ext2 / 3/4 a través del software Paragon ExtFS [38] , que es un producto comercial. El software gratuito como ext4fuse tiene soporte de solo lectura con funcionalidad limitada.

Ver también [ editar ]

  • Btrfs
  • Comparación de sistemas de archivos
  • Atributos de archivo extendidos
  • e2fsprogs
  • Ext2Fsd
  • JFS
  • Lista de sistemas de archivos
  • Reiser4
  • XFS
  • ZFS

Referencias [ editar ]

  1. ^ a b Anteriormente, Linux usaba el mismo GUID para las particiones de datos que Windows (partición de datos básica: EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 ). Linux nunca tuvo un GUID de tipo de partición único independiente definido para sus particiones de datos. Esto creó problemas al arrancar Linux y Windows de forma dual en la configuración UEFI-GPT. El nuevo GUID (datos del sistema de archivos de Linux: 0FC63DAF-8483-4772-8E79-3D69D8477DE4 ) fue definido conjuntamente por los desarrolladores de GPT fdisk y GNU Parted. Se identifica como código de tipo 0x8300 en GPT fdisk. (Ver definiciones en parttypes.cc de gdisk )
  2. ^ "DiscoverablePartitionsSpec" . freedesktop.org . Consultado el 7 de abril de 2018 .
  3. ^ a b "ext4: Se corrige el manejo de tv_sec extendido" . Árbol del kernel estable en Linux . Consultado el 14 de febrero de 2017 .
  4. ^ a b Mathur, Avantika; Cao, MingMing; Bhattacharya, Suparna; Dilger, Andreas; Zhuravlev (Tomas), Alex; Vivier, Laurent (2007). "El nuevo sistema de archivos ext4: estado actual y planes futuros" (PDF) . Actas del Simposio de Linux . Ottawa, ON, CA: Red Hat. Archivado desde el original (PDF) el 6 de julio de 2010 . Consultado el 15 de enero de 2008 .
  5. ^ Torvalds, Linus (9 de junio de 2006). "extensiones y 48bit ext3" . Lista de correo del kernel de Linux .
  6. ^ Ts'o, Theodore (28 de junio de 2006). "Propuesta y plan de trabajo de desarrollo futuro ext2 / 3" . Lista de correo del kernel de Linux .
  7. ^ Leemhuis, Thorsten (23 de diciembre de 2008). "Más alto y más allá: las innovaciones de Linux 2.6.28 (página 2)" . Heise en línea. Archivado desde el original el 3 de enero de 2009 . Consultado el 9 de enero de 2010 .
  8. ^ "ext4: Cambiar el nombre de ext4dev a ext4" . El árbol del núcleo de Linus. Archivado desde el original el 29 de mayo de 2012 . Consultado el 20 de octubre de 2008 .
  9. ^ Leemhuis, Thorsten (23 de diciembre de 2008). "Más alto y más allá: las innovaciones de Linux 2.6.28" . Heise en línea.
  10. ^ Paul, Ryan (15 de enero de 2010). "Google actualiza a Ext4, contrata al ex CTO de la Fundación Linux" . Ars Technica .
  11. ^ "Android 2.3 Gingerbread para usar el sistema de archivos Ext4" . El H Open . 14 de diciembre de 2010.
  12. ^ "FileSystem en debian" . 14 de septiembre de 2019.
  13. ^ "Migrando a Ext4" . DeveloperWorks . IBM. Archivado desde el original el 1 de diciembre de 2008 . Consultado el 14 de diciembre de 2008 .
  14. ^ Hal Pomeranz (28 de marzo de 2011). "Comprensión de EXT4 (parte 3): árboles de extensión" . Blog de respuesta ante incidentes y análisis forense digital de SANS .
  15. ^ "El montaje de ext4 (creado sin extensiones) como ext3 falla en RH6.2" . www.linuxquestions.org . Consultado el 7 de abril de 2018 .
  16. ^ "Ext4 - principiantes del kernel de Linux" . kernelnewbies.org .
  17. ^ "Nuevas funciones de ext4 - Ext4" . ext4.wiki.kernel.org .
  18. ^ Prabhakaran, Vijayan; Bairavasundaram, Lakshmi N .; Agrawal, Nitin; Gunawi, Haryadi S .; Arpaci-Dusseau, Andrea C .; Arpaci-Dusseau, Remzi H. "IRON File Systems" (PDF) . Departamento de CS, Universidad de Wisconsin. Cite journal requires |journal= (help)
  19. ^ "Sumas de comprobación de metadatos de Ext4 - Ext4" . ext4.wiki.kernel.org .
  20. ^ "Linux_3.5 - principiantes del kernel de Linux" . kernelnewbies.org .
  21. ^ Ts'o, Theodore (5 de octubre de 2006). "Re: creación de marcas de tiempo para ext4?" .
  22. ^ Edge, Jake (31 de marzo de 2017). "Ampliación de statx ()" .
  23. ^ Li, Xi (12 de enero de 2016). "Cifrado Ext4" .
  24. ^ Ts'o, Theodore (8 de abril de 2015). "Cifrado Ext4" .
  25. ^ "Sistema de archivos Ext4 - Thomas-Krenn-Wiki" . www.thomas-krenn.com .
  26. ^ "kernel / git / torvalds / linux.git - árbol de fuentes del kernel de Linux" . git.kernel.org .
  27. ^ "Ext4 - ArchWiki" . wiki.archlinux.org .
  28. ^ Paul, Ryan (14 de abril de 2009). "Los panelistas reflexionan sobre el kernel en Linux Collaboration Summit" . Ars Technica . Consultado el 22 de agosto de 2009 .
  29. ^ Theodore Ts'o (1 de agosto de 2008). "Re: reiser4 para 2.6.27-rc1" . linux-kernel (lista de correo) . Consultado el 31 de diciembre de 2010 .
  30. ^ Corbet, Jonathan (11 de octubre de 2011). "Eliminación segura de archivos de sistemas de archivos ext4" .
  31. ^ a b "Documentación de ext4 en la fuente del kernel de Linux" . 28 de marzo de 2009.
  32. ^ Error de Ubuntu # 317781 Larga discusión entre los desarrolladores de Ubuntu y Theodore Ts'o sobre la posible pérdida de datos
  33. ^ Reflexiones de la entrada de blog de Ted, 12 de marzo de 2009 Una publicación de blog de Theodore Ts'o sobre el tema
  34. ^ Kleiman
  35. ^ "Cómo leer la partición de Linux Ext3 / Ext4 desde Windows 7 - Ubuntu Geek" . www.ubuntugeek.com . 24 de septiembre de 2010 . Consultado el 7 de abril de 2018 .
  36. ^ "Proyecto Ext2Fsd" . Ext2fsd.com. Archivado desde el original el 23 de julio de 2012 . Consultado el 15 de enero de 2012 .
  37. ^ "Descripción de la compatibilidad de Ext4 con Windows 7, 1 de noviembre de 2009" . Archivado desde el original el 23 de octubre de 2011.
  38. ^ "Acceso de escritura / lectura a archivos de Linux en macOS High Sierra - extFS de Paragon Software para Mac" . paragon-software.com . Consultado el 7 de abril de 2018 .

Enlaces externos [ editar ]

  • documentación ext4 en la fuente del kernel de Linux
  • Discusión de Theodore Ts'o sobre ext4 , 29 de junio de 2006
  • "Desfragmentación en línea ext4" (materiales del Simposio de Linux de Ottawa 2007)
  • "El nuevo sistema de archivos ext4: estado actual y planes futuros" (materiales del Simposio de Ottawa Linux 2007)
  • Kernel Log: Ext4 completa la fase de desarrollo como paso intermedio para btrfs , 17 de octubre de 2008
  • "Mejoras en el asignador de inodos y bloques de Ext4" (materiales del Simposio de Ottawa Linux 2008)
  • "Ext4: La próxima generación del sistema de archivos Ext2 / 3"
  • Wiki de Ext4 (y Ext2 / Ext3)
  • Wiki de ext4 en kernelnewbies.org
  • Puerto nativo de Windows de Ext4 y otros FS en CROSSMETA
  • Ext2read Una aplicación de Windows para leer / copiar archivos ext2 / ext3 / ext4 con extensión y soporte LVM2.
  • Ext2Fsd Controlador del sistema de archivos de lectura / escritura ext2 / ext3 / ext4 de código abierto para Windows. ext4 es compatible a partir de la versión 0.50
  • Ext4fuse Controlador ext4 de solo lectura de código abierto para FUSE . (Compatible con Mac OS X 10.5 y posterior, usando MacFuse )