Ext4 (Español)
ext4 constituye la siguiente etapa en la evolución del sistema de archivos (o ficheros; en inglés, filesystem) denominado extended, que indudablemente se ha convertido en uno de los más utilizados por los usuarios de Linux.
Es importante destacar que las modificaciones introducidas por ext4 han sido más numerosas y significativas en comparación a las realizadas por su antecesor sobre ext2. En otras palabras, ext4 presenta modificaciones en las estructuras internas del mismo sistema (de ficheros), como sucede en el caso de aquellas destinadas a la preservación de los datos propios de cada fichero, mientras que ext3 se caracterizó principalmente por haber introducido la funcionalidad journaling, inexistente en ext2.
En síntesis, el resultado ha sido un sistema mejor diseñado, más eficiente y confiable, y por supuesto con mayores prestaciones.
Creación de Particiones ext4
Aquí le presentamos un método a utilizar para crear particiones en ext4. Recuerde que puede modificarlo de acuerdo con sus necesidades:
- Actualice su sistema:
pacman -Syu
- Dé formato a la partición que desee:
mkfs.ext4 /dev/<partición>
(Reemplace /dev/<partición> por la ruta de la partición deseada: por ejemplo, /dev/sda1). - Monte la partición:
mount -text4 /dev/<partición>
(Utilice aquí el mismo valor para /dev/<partición> que utilizó en el comando anterior). - Añada una entrada a
/etc/fstab
especificando type como ext4.
Puede asimismo ver o editar el archivo
/etc/mke2fs.conf
en caso que desee modificar las opciones por defecto.Migrando de ext3
Existen dos métodos para migrar particiones de ext3 a ext4:
- montando las particiones en ext3 como particiones de tipo ext4 sin realizar conversión alguna (modo de compatibilidad).
- conviritiendo la partición a ext4 (mayor desempeño).
Montando Particiones como ext4
Prólogo
En lugar de convertir la partición completamente a ext4, es posible montarla como si su formato fuera ext4. No obstante, tenga antes en cuenta los siguientes puntos a favor y en contra.
A Favor:
- Compatibilidad: El sistema puede continuar montándose como ext3, permitiéndoles a los usuarios continuar trabajando sobre el mismo desde otras distribuciones de Linux o desde otros sistemas operativos sin soporte directo (por ejemplo, desde Windows, instalando previamente los controladores para ext3).
- Desempeño mejorado. Por supuesto, quizá no tanto como en el caso de una partición en ext4. (Véase, en inglés: ext4).
En Contra:
- Funcionalidades propias del formato ext4 no podrán ser aprovechadas, dado que la partición continúa en ext3.
Procedimiento
- Edite
/etc/fstab
cambiando el tipo (type) de la partición en cuestión a ext4. Repita el proceso para todas las particiones que desee montar como ext4. - Vuelva a montar las particiones afectadas (recuerde:
mount -a
montará todas las particiones especificadas en/etc/fstab
).
Convirtiendo Particiones en ext3 a ext4
Prólogo
Para experimentar los beneficios que provee ext4, deberá inexorablemente convertir las particiones a este nuevo formato.
Como sugerimos anteriormente, tenga en cuenta además los siguientes puntos a favor y en contra:
A Favor:
- Desempeño claramente mejorado y nuevas prestaciones disponibles. (Véase, en inglés: ext4).
En Contra:
- La partición no podrá leerse o escribirse utilizando controladores de ext3, (tenga en cuenta que aún no existe un controlador de ext4 para Windows).
- El proceso es irreversible: las particiones en ext4 no podrán degradarse (downgrade) a ext3.
Requisitos
Si desea convertir su partición /boot a ext4, deberá instalar asimismo grub (0.97 o superior)
grub (0.97 o superior)
requiere un parche para ext4, el mismo se encuentra actualmente incluido por defecto en el paquete GRUB de Arch (si bien esto sucede actualmente, es altamente probable que no cambie). De lo contrario, necesitará GRUB2 para poder arrancar el sistema desde una partición en ext4.e2fsprogs
); no obstante, es sencillo actualizar el software con pacman -Sy
y luego pacman -S e2fsprogs
desde la línea de comando luego de instalar Arch y luego de configurar la red. Una alternativa es utilizar SystemRescueCD (1.1.4 o superior), que contiene las versiones apropiadas, siendo además un práctico CD para tener a mano.pacman -Sy <paquete>
para instalar paquetes, ya que la actualización previa de las bases de datos en conjunción a la instalación de un paquete puede generar inconsistencias en las dependencias de otros ya instalados. Consulte en los foros para más información.Procedimiento
Estas instrucciones han sido adaptadas de ext4 Wiki y Foros de Arch (Hilo #61602). Fueron examinadas y verificadas por el autor hasta el 16 de Enero de 2009.
-
ACTUALICE SU SISTEMA: Haga una actualización global de su sistema para asegurarse de que su software esté al día:
pacman -Syu
.
-
REALICE UN BACK-UP: Haga una copia de seguridad de las particiones que convertirá a ext4.
Aunque ext4 se considere "estable" para el uso general, es aún relativamente jóven y no ha sido evaluado exhaustivamente. Además, el proceso de conversión se ha evaluado únicamente en un entorno (en un sistema) de simple configuración; es imposible evaluar este proceso en todas las posibles configuraciones que los usuarios pudieran tener. (Véase la siguiente entrada, en inglés: Back-Up Programs).
- Edite
/etc/fstab
modificando el tipo (type) a ext4 para cada partición que desee convertir.
También tenga en cuenta que luego del siguiente paso la partición en cuestión poseerá un nuevo formato: ext4.
- El proceso de conversión con
e2fsprogs
deberá realizarse cuando la partición no se encuentre montada. Si desea convertir la partición root (/), hágalo desde otra distribución o desde algún medio que le permita acceder a una línea de comando, (véanse los requisitos previos detallados anteriormente).
- Arranque el sistema desde el que trabajará (si fuera necesario).
- Por cada partición a convertir:
- Asegúrese de que la partición NO esté montada.
- Ejecute:
tune2fs -O extents,uninit_bg,dir_index /dev/<partición>
(donde /dev/<partición> es la ruta de la partición que desea convertir). - Ejecute:
fsck -fp /dev/<partición>
- Reinicie Arch.
mkinitcpio -p linux
Migrando Ficheros a Extents
Aunque la partición ya se ha convertido a ext4, los ficheros que fueron escritos previamente aún no comenzaron a aprovechar las ventajas de la nueva funcionalidad extents que el mismo provee. Al modificar esta situación, se mejorará el desempeño del sistema, particularmente con los ficheros grandes, como así se reducirá la fragmentación del mismo y el tiempo de verificación.
En conclusión, para aprovechar ext4 completamente, todos los ficheros deberán ser reescritos. (Una utilidad llamada e4defrag
está siendo desarrollada para encargarse de esta tarea, sin embargo, aún no está lista para ser utilizada).
Afortunadamente, es posible utilizar todavía el programa chattr (change attribute), que le ordenará al kernel reescribir los ficheros utilizando extents. Si bien es posible ejecutar el comando en todos los ficheros y directorios de una partición (por ejemplo, si /home estuviera en una partición separada):
find /home -xdev -type f -print0 | xargs -0 chattr +e find /home -xdev -type d -print0 | xargs -0 chattr +e
Se recomienda verificar el funcionamiento de los comandos antedichos en un pequeño grupo de ficheros previamente, a fin de evitar poner en riesgo la totalidad de los mismos.
Quizá también resulte útil verificar el sistema de ficheros luego de realizar la conversión (el manual, la man page, de fsck puede ayudarle, consúltela).
Con el comando lsattr (list attributes) podrá cotejar que los ficheros estén efectivamente utilizando extents. La letra e deberá aparecer en la lista de atributos de cada archivo.
Solución de Problemas
Kernel Panic
Problema: kernel panic luego de realizar la conversión a ext4 de la partición root (/).
Causa: el ramdisk inicial detectaba el formato de la partición como ext4dev en lugar de ext4.
Solución: Arrancar el sistema utilizando la imagen fallback y recrear el ramdisk inicial.
# mkinitcpio -p linux
Durante el proceso de creación, mkinitcpio
correctamente detectó e incluyó los módulos de ext4 en el ramkdisk inicial.
GRUB Error 13
Problema: Al intentar arrancar el sistema desde una partición (normalmente montada en /boot) convertida a ext4, GRUB notifica:
Error 13: Invalid or unsupported executable format
Solución:
- Iniciar desde el medio de instalación de Arch el sistema live.
- Ejecutar los comandos en la siguiente lista, preferentemente respetando el orden de los mismos:
# mkdir /mnt/arch # mount -t ext4 /dev/<partición> /mnt/arch # mount -t proc proc /mnt/arch/proc # mount -t sysfs sys /mnt/arch/sys # mount -o bind /dev /mnt/arch/dev # chroot /mnt/arch /bin/bash
Si /boot se encuentra en una partición aislada (dedicada), entonces también deberá montarse:
# mount -t ext4 /dev/<partición> /boot
Finalmente, el siguiente comando deberá solucionar el problema, (¿sabe alguien por qué?):
# grub-install --recheck /dev/<partición>
Corrupción de Datos
Algunos adoptantes iniciales de ext4 han visto sus datos corrompidos después de un hard reboot (reinicio desde la máquina y no desde el sistema). Por favor, vea (en inglés) Ext4 data loss; explanations and workarounds para más información.
Desde el kernel 2.6.30, ext4 se considera seguro (o más seguro). Diversos parches contribuyeron a incrementar su robustez, tal vez a costa del rendimiento.
Una nueva opción puede ser utilizada (auto_da_alloc
) para desactivar este comportamiento. Para más información, vea (en inglés) Linux 2 6 30 - Filesystems performance improvements.
Para versiones del kernel menores a 2.6.30, considere agregar rootflags=data=ordered=0
a la línea kernel
en el archivo menu.lst
de GRUB como una medida preventiva.
Mejorando el rendimiento
Desde el kernel 2.6.30, el rendimiento de ext4 ha decrecido debido a cambios destinados a incrementar la integridad de los datos y su preservación (véase, en inglés: [1]). Los usuarios ahora pueden mejorar el rendimiento especificando la opción nobarrier
al montar la partición; no obstante, eliminar las barreras puede constituir un peligro que resulte en la pérdida de datos o en la corrupción de los mismos luego de problemas de índole energética. Para desactivar las barreras automáticamente, añada la opción barrier=0
a la lista de la partición deseada en /etc/fstab
. Por ejemplo:
/dev/sda5 / ext4 noatime,barrier=0 0 1