Ayer al mediodía estaba yo pensando en cambiar a ext4 todas las particiones del disco duro de mi PC (por el momento uso ext3). Ya lo había hecho con la partición /home pero quería hacer lo mismo con /boot y con / para acelerar la carga del sistema, y la carga, instalación y actualización de aplicaciones. Lo difícil del asunto es que para poder arrancar con un sistema de ficheros ext4 necesito utilizar grub2 ya que el gestor de arranque grub no soporta ext4.

Bueno, ¿Qué hice?, pues ni corto ni perezoso hice un aptitude install grub2 . ¿Resultado? Al reiniciar se cargaba el gestor de arranque (grub2) pero ninguna de las entradas del menú funcionaba. Todas ellas me daban un código de error 11 (no me hagáis recordar qué texto aparecía ahora...).

Ahora viene cuando uno tiene que solucionar la cagada que ha hecho (tardé mucho más de lo que tardaréis vosotros si seguís mi consejo, pues probé muuchas cosas.. ). Lo primero es disponer de una LiveCD con GNU/Linux, el cd de instalación de Ubuntu, o una knoppix pueden ir bien. Arrancamos el cd y abrimos un terminal.

Una vez hemos abierto el terminal nos logueamos como root , se puede hacer con el comando su, el comando sudo -s y el comando sudo bash ... ¿quien da más? ¿conocéis más formas (no valen formas excesivamente rocambolescas) ? Ahora viene la secuencia importante de comandos (Primeramente prepararemos un entorno para acceder al sistema instalado, y luego desde allí operaremos)

  • cd /media
  • mkdir rescate
  • mount /dev/sdaX rescate (donde X es el número de partición donde tenemos montado normalmente el directorio / , hay que tener en cuenta que yo pongo sda porque uso discos SATA , pero si usais el típico ATA , muchos lo conocéis por IDE, debéis usar hda)
  • mount --bind /dev /media/rescate/dev
  • mount --bind /proc /media/rescate /proc
  • chroot /media/rescate (Aquí cambiamos el directorio raíz de trabajo.. ahora hemos ingresado en el sistema que tenemos instalado, pero al tanto, todavía no tenemos la partición /boot cargada.. )
  • mount -t ext3 /dev/sdaX /boot (Éste paso sólo es necesario si el directorio /boot lo teníamos en otra partición , como antes, X indica el número de la partición en la que están los ficheros de /boot y podría ser que usárais hda en vez de sda)
  • cd /boot
  • mv grub grub.old
  • aptitude purge grub2 (Nos deshacemos del grub2 que tanto nos ha molestado)
  • aptitude install grub (Volvemos con nuestro viejo "amigo")
  • grub-install /dev/sda (otra vez, podría ser /dev/hda , ésto puede que tarde un poco, es probable que os salga algun error relacionado con /dev/pty .. no pasa naaada, simplemente no ha podido crear un log de las operaciones)
  • update-grub (esto volverá a generar el directorio grub en /boot y la lista de sistemas operativos y núcleos en el fichero menu.lst)
  • Ahora solo nos queda reiniciar y disfrutar nuevamente de nuestro grub totalmente funcional... un consejo, borrad el directorio /boot/grub.old si os funciona todo, ocupa espacio innecesario, antes lo he dejado por si mi solución no os funciona.

Espero que si alguien tiene mi mismo problema ésto le pueda servir :)   , un saludo.