HowTo:gentoo:InstallEXT4
De Luispa
Migración ReiserFS a EXT4
En este artículo se documenta como migré Root (/), /home y /data desde ReiserFS a EXT4.
A los pocos días de terminar la instalación del sistema operativo y tras observar la gran cantidad de tiempo que tardaba en montar los FS's (>80seg) con ReiserFS (3.6), con particiones de 1.5TB, sin que éstas tuviesen todavía datos, decidí que tenía que cambiar, el futuro sólo podía ser ir a peor.
Tras investigar descubrí que estos tiempos están documentados como algo que es normal en reiserFS y que no tiene solución (versión 3.6). La única opción que me quedaba era optar por Reiser4, XFS, JFS o EXT4. He decidido ir por EXT4.
¿Por qué EXT4?
EXT4 es el "cuarto sistema de archivos extendido", un sistema de archivos con soporte de Journaling que lleva desarrollandose desde Octubre de 2006 y que el pasado 25 de diciembre de 2008 se liberó sin la etiqueta de "experimental" en el kernel de Linux 2.6.28.
Sus principales mejoras son:
* Soporte de volúmenes de hasta 1024 PiB. * Soporte de extensiones añadidas * Menor uso de la CPU. * Mejoras en la velocidad de lectura y escritura.
¿Un poco arriesgado?, pues quizá sí... se acaba de marcar estable en el kernel, la versión 2.6.28 en gentoo-sources sigue marcada como ~amd64 e incluso voy a actualizar las "tools" e2fsprogs a la última versión también ~amd64...
Objetivo:
====================== ANTES ==================================== == DESPUES == Filesystem Size Used Avail Use% Mounted on /dev/sda3 458G 7.1G 428G 2% / reiserfs ==> ext4 udev 10M 128K 9.9M 2% /dev /dev/sdb1 1.4T 930M 1.3T 1% /home reiserfs ==> ext4 /dev/sdc1 1.4T 4.2G 1.3T 1% /data reiserfs ==> ext4 tmpfs 3.0G 0 3.0G 0% /dev/shm
Los pasos a realizar son:
- Hacer que el kernel actual sea EXT4 Compatible
- Convertir /data
- Backup de /data en /home/backup-fs-data.tgz
- Reformatear /data como EXT4 y recuperar el backup
- Convertir /home
- Backup de /home en /data/backup-fs-home.tgz
- Reformatear /home como EXT4 y recuperar el backup
- Convertir /
- Boot con LiveCD
- Backup de / en /data/backup-fs-root.tgz
- Reformatear / como EXT4 y recuperar el backup
Nuevo e2fsprogs
- Selecciono la última versión de e2fsprogs
bolica linux # echo "=sys-libs/e2fsprogs-libs-1.41.4 ~amd64" >> /etc/portage/package.keywords bolica linux # echo "=sys-fs/e2fsprogs-1.41.4 ~amd64" >> /etc/portage/package.keywords bolica linux # emerge -v e2fsprogs
Nuevo Kernel
Primero voy a hacer a mi Kernel del Root (/) ya instalado que sea "EXT4 compatible", así que me bajo el kernel disponible a fecha de hoy (6/2/09) que soporta por primera vez de forma estable EXT4, se trata de la versión 2.6.28.
- Descargo el nuevo kernel 2.6.28
bolica linux # echo "=sys-kernel/gentoo-sources-2.6.28-r1 ~amd64" >> /etc/portage/package.keywords bolica linux # emerge -v gentoo-sources These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild NS ] sys-kernel/gentoo-sources-2.6.28-r1 [2.6.27-r8] USE="-build -symlink" 51,532 kB Total: 1 package (1 in new slot), Size of downloads: 51,532 kB : :
- Migro al nuevo kernel 2.6.28
bolica ~ # cd /usr/src
bolica src # rm linux
bolica src # cp linux-2.6.27-gentoo-r8/.config linux-2.6.28-gentoo-r1/
bolica src # ln -s linux-2.6.28-gentoo-r1/ linux
bolica src # cd linux
bolica linux # make oldconfig
NOTA: Este proceso repasa todas las opciones NUEVAS del kernel y te pregunta qué quieres hacer con ellas.
Fui pulsando ENTER a todas dejando su respuesta por defecto (en la mayoría es N)
- Entro en la configuración del kernel para activar EXT4
| Configuración del kernel de Linux: Opciones para EXT4 |
Enable the block layer ---> -*- Enable the block layer [*] Support for tracing block io actions FileSystems ---> <*> The Extended 4 (ext4) filesystem [ ] Enable ext4dev compatibility [*] Ext4 extended attributes [*] Ext4 POSIX Access Control Lists [*] Ext4 Security Labels |
- Compilo el nuevo kernel
bolica ~ # cd /usr/src/linux bolica linux # make && make modules_install : bolica linux # cd /usr/src
- Compilo soporte para Realtek RTL8111D driver del fabricante. (Recordemos que esto hay que hacerlo siempre que se compile el kernel)
bolica src # cd /usr/src/Realtek/r8168-8.010.00 bolica src # make clean modules bolica src # make install bolica src # depmod -a
- Compilo de nuevo los drivers de nvidia (Recordemos que esto hay que hacerlo siempre que se compile el kernel)
bolica src # cd /usr/src bolica src # emerge -v nvidia-drivers bolica src # eselect opengl set nvidia
Activación kernel 2.6.28
- Instalo el nuevo kernel
bolica src # cd /usr/src/linux bolica linux # mount /boot bolica linux # cp arch/x86_64/boot/bzImage /boot/bzImage-2.6.28-gentoo-r1 bolica linux # cp System.map /boot/System.map-2.6.28-gentoo-r1
- Modifico /boot/grub/grub.conf
bolica linux # nano /boot/grub/grub.conf default 0 timeout 10 title=Gentoo Linux 2.6.28-gentoo-r1 root (hd0,0) kernel (hd0,0)/bzImage-2.6.28-gentoo-r1 root=/dev/sda3 title=Gentoo Linux 2.6.27-gentoo-r8 root (hd0,0) kernel (hd0,0)/bzImage-2.6.27-gentoo-r8 root=/dev/sda3
- Rearranco el sistema y selecciono la versión 2.6.28
Conversión de /data y /home
- Parar Window Manager, X, NFS, etc...
- 1) Salir de Gnome o KDE
Pulsar CTRL-ALT-F1
# /etc/init.d/xdm stop # /etc/init.d/xfs stop
- 2) Parar NFS
# /etc/init.d/nfs stop
- 3) Dejar preparado /etc/fstab
# nano /etc/fstab # Disco 1 de 1500GB (/home) /dev/sdb1 /home ext4 noatime 0 2 # Disco 2 de 1500GB (/data) /dev/sdc1 /data ext4 noatime 0 2
Backup /data y recrearlo como EXT4
- Backup de /data
# cd / # tar cvpzf /home/backup-fs-data.tgz data/ # umount /data
- Recrear /data como EXT4 y montarlo
# mkfs.ext4 /dev/sdc1 # mount /data (<== se montará como EXT4 porque ya modificamos antes el fstab)
- Recuperar el backup
# cd / # tar xvpzf /home/backup-fs-data.tgz
# VERIFICO QUE SE HA RECUPERADO CORRECTAMENTE Y BOORO EL BACKUP (rm /home/backup-fs-data.tgz)
Backup /home y recrearlo como EXT4
- Backup de /home
# cd / # tar cvpzf /data/backup-fs-home.tgz home/ # umount /home
- Recrear /home como EXT4 y montarlo
# mkfs.ext4 /dev/sdb1 # mount /home (<== se montará como EXT4 porque ya modificamos antes el fstab)
- Recuperar el backup
# cd / # tar xvpzf /data/backup-fs-home.tgz
# VERIFICO QUE SE HA RECUPERADO CORRECTAMENTE Y BOORO EL BACKUP (rm /data/backup-fs-home.tgz)
Conversión de Root (/)
- Rearranco el equipo con el System Rescue CD
- Monto Root en /mnt/gentoo
# mount /dev/sda3 /mnt/gentoo
- Monto Data en /mnt/data
# mkdir /mnt/data # mount /dev/sdc1 /mnt/data
- Modifico /mnt/gentoo/etc/fstab
# nano /mnt/gentoo/etc/fstab /dev/sda3 / ext4 noatime 0 1
- Backup de Root (/)
# cd /mnt/gentoo # tar cvplzf /mnt/data/backup-fs-root.tgz .
- Recreo Root (/) como EXT4
# umount /mnt/gentoo # mkfs.ext4 /dev/sda3 # mount /dev/sda3 /mnt/gentoo
- Recupero el backup
# cd /mnt/gentoo # tar xvzfp /mnt/data/backup-fs-root.tgz
- Rearranco
# cd # umount /mnt/data # umount /mnt/gentoo # reboot
Enlaces y Créditos
| [1] | http://wiki.luispa.com/ | Página principal de LuisPa. |
| [2] | http://en.gentoo-wiki.com/wiki/Ext4 | La guía de Gentoo para EXT4 |
| [3] | http://ext4.wiki.kernel.org/index.php/Ext4_Howto | Una guía similar pero no específica para gentoo |
| [4] | http://www.kev009.com/wp/2008/12/how-to-upgrade-to-ext4-in-place/ | Cómo hacer un upgrade probado con gentoo y fedora |
Volver a la página anterior
--Luis 21:54 6 feb 2009 (CET)

