miércoles, 17 de junio de 2009

ext4 en SlackWare 12.2, Kernel 2.6.30

Hace pocos días me encontré con mi SlackWare 12.2 y trate de montar una partición de ext4 que tenia, pero no me reconocía el sistema de archivos, por que el kernel que tiene no trae los módulos para ext4.

La opción para solucionar mi problema fue compilar un kernel con soporte para ext4, así que baje el kernel 2.6.30 el mas reciente que encontré, y lo compile con las opciones por defecto que este trae pero no me funciono.

Así que estuve buscando otras soluciones y encontré un manual de como compilar un kernel para SlackWare, en el ejemplo se compilaba el 2.6.27.7 tomando como base la configuración que trae para generar un kernel genérico. Y quise probar esta configuración con el kernel 2.6.30, prácticamente genere un kernel 2.6.30 genérico con soporte para ext4.

Para esto primero baje la versión completa del kernel 2.6.30 después de esto baje la configuración del kernel generico para SlackWare que se encuentra aquí, desde allí baje el archivo config-generic-smp-2.6.27.7-smp.

Bueno después de esto descomprimí el kernel que baje, y lo copie a la carpeta /usr/src/ al igual que el archivo config-generic-smp-2.6.27.7-smp.

Ya teniendo el kernel descomprimido y la configuración genérica en la carpeta /usr/src, ejecute los siguientes comandos como root:

cd /usr/src/ # Me ubico en el directorio /usr/src
rm linux # Borro el enlace al antiguo kernel
ln -s linux-2.6.30 linux # Agrego el enlace al kernel
#que voy a compilar
cp config-generic-smp-2.6.27.7-smp linux/.config # Copio
# la configuracion del kernel generico
# a la configuracion del otro
Ahora ya tenemos en el kernel que acabamos de bajar la configuración para generar el kernel genérico, pero aun necesitamos agregarle el soporte para ext4, para esto podemos teclear

make menuconfig
Esto nos mostrara una pantalla como la siguiente:

Ahora nos vamos a File Systems y nos va aparecer una pantalla como la siguiente.

Ahora le damos con la barra espaceadora hasta que nos aparezca un * en los soportes para ext4, como se muestra en la imagen anterior. Para salir salimos con la tecla de esc y guardamos la configuración. Ahora solo nos queda compilar el kernel y los módulos de este, para esto tecleamos:

make && make modules_install
Despues de esto solo nos queda agregar nuestro nuevo kernel en nuestro gestor de arranque. Para esto hacemos lo siguiente. Como todavía nos encontramos en el directorio /usr/src/linux desde allí escribimos lo siguiente:

cp arch/i386/boot/bzImage /boot/miKernel-generico-2.6.30
Ahora editamos el archivo de configuración de lilo, /etc/lilo.conf/ ,agregamos el kernel que acabamos de copiar, las lineas que hay que agregar son las siguientes:

image = /boot/miKernel-generico-2.6.30
root = /dev/sda6
label = SlackWareC
read-only
Guardamos los cambios, y escribimos en la consola, siempre como root:

lilo
Y listo, nuestro kernel ya tiene soporte para ext4, y con SlackWareC podemos arrancar con este kernel.

Después para montar la partición solo agregue la siguiente linea en el /etc/fstab

/dev/sda3 /media/Neto ext4 noatime 0 1

Donde Neto es el directorio donde quiero montar mi partición ext4. Para darle permisos de escritura y lectura solo escribimos en una consola como super usuario:

chown mi_usuario -R /media/Neto


Y listo, ya tenemos nuestra partición ext4 cargada.