Como recuperar grub después de haberlo roto con grub2 (Ubuntu/Debian)

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.

Cambiar la MAC de un dispositivo de red

Este es un pequeño post que no pretende aportar mucho a la comunidad.. ya que lo que colgaré se puede encontrar muy fácilmente con Google, pero me importa más bien poco, más que nada lo colgaré para acordarme yo :) .

Primero de todo.. ¿Por qué querríamos cambiar la MAC de nuestro dispositivo de red? Pues porque existen sitios donde sólo se pueden conectar ciertas máquinas autorizadas.. las cuales son distinguidas por los routers a través de su dirección MAC... y a veces nos gustaría conectarnos a dichas redes. Es por eso que tendremos que falsificar la MAC de nuestro dispositivo de alguna manera (por lo general cambiándola por la mac de algun dispositivo que sepamos que está autorizado... y sobretodo, desconectado en el momento de nuestra conexión).

En este post me centraré en sistemas GNU/Linux, utilizando el programa macchanger. Si trabajamos desde Ubuntu o Debian, para instalar el programa será tan fácil como escribir

1
aptitude install macchanger

o bién

1
apt-get install macchanger

Si trabajamos desde cualquier otra distribución... ni idea, yo lo que recomiendo es buscar el típico tarball de código fuente y ejecutar los también típicos comandos make y make install.

A lo que vamos, antes que nada, deberíamos desactivar la red con el comando siguiente:

1
/etc/inid.d/networking stop

o bién con:

1
ifdown dispositivo [el dispositivo puede ser: eth0, eth1, wlan0...]

Después de eso, deberíamos guardar la mac original del dispositivo, por si acaso. Para hacer eso simplemente hace falta ejecutar el comando ifconfig y se nos mostrará la mac asociada a cada dispositivo de red. Dicho todo esto, pasemos a la acción (desde root) con el siguiente comando:

1
macchanger --mac XX:XX:XX:XX:XX:XX dispositivo

donde XX:XX:XX:XX:XX:XX es la mac que queremos establecer para nuestro dispositivo, así de simple :D .

Por si alguien tiene curiosidad sobre por qué he escrito esto, bueno, diremos simplemente que lo estoy utilizando en la universidad para conectarme a través de la red cableada con mi portátil :) . (Espero que no aparezca nadie que me quiera sancionar por esto, xD.

Bueno, hasta otra :) .

Que le den por saco a Debian

Buenas, hace bastante tiempo que no escribo nada... y la verdad, en este tiempo he estado haciendo muchas cosas, jeje, tengo mucho sobre que escribir.

Empecé a trabajar en Newcomputing Netservices el día 15 de Julio, estuve casi unos 15 días de pruebas y cuando me íban a contratar, les tuve que decir que no me interesaba por cuestiones personales (y porque tenía una carga de trabajo que no me gustó nada, tenía que llevarme el trabajo a casa :S ). El caso es que durante esos días me tuve que esforzar bastante y aprendí muchas cosas.

Justo después de dejar la empresa me fuí a trabajar de becario en la UAB en un proyecto de Mitsubishi, y aquí estoy todavía. La verdad es que no mandan mucho trabajo, y nos pasamos casi una hora en el bar cada mañana (en teoría yo tengo que trabajar 4 horas diarias), pero aún así intento aprovechar el tiempo.

Actualmente estoy haciendo una LFS (Linux From Scratch) en una pequeña partición de mi máquina de trabajo, es interesante ver como contruir un sistema GNU/Linux desde cero, y supongo que ayuda a entender los entresijos de su funcionamiento :p . Por otro lado, mientras dejo compilando las piezas del sistema me entretengo leyendo artículos, libros o lo que me pase por las manos. Así que bueno, he tenido tiempo para hacer bastantes cosas:

  • mejorar la cutrada del oggtube (he hecho que no requiera Qt, por si alguien no quiere utilizar la interfície gráfica)
  • Hacer una aplicación de seguimiento para mi portátil, en caso de robo, si el ladrón fuese lo suficientemente imbécil como para conectar mi portátil a Internet antes de borrar todo su contenido, ése dejaría un aviso en una aplicación que he hecho en ésta misma página. Le quedan bastantes detalles para que sea una aplicación realmente útil, pero bueno, iré haciendo algo, y ya os colgaré el código. (He aprendido a hacer daemons con esto)
  • Estoy haciendo un pequeño compilador para un lenguaje cutrillo, estoy siguiendo diversos tutoriales combinados con mi imaginación, de momento es capaz de generar código ensamblador para x86 y para x86_64... aunque no tiene mucho mérito, jeje, ¡solo reconoce 4 órdenes, xD!
  • Mandar a tomar por saco Debian (a cambio, he instalado Ubuntu), que es lo que daba nombre a éste artículo. Me encanta trastear con los detalles técnicos de la máquina, solventar pequeños errorcillos de vez en cuando, eso a uno le sube la moral... pero ya estaba harto de tener que retocar tantas cosas para cada tontería... pero sobre todo, de lo que me he hartado es de KDE. Le he cogido manía, sólo se salvan: Amarok, Yakuake, Kate, K3b, Katapult, KDevelop y KOrganizer (aunque yo no lo utilizo). El caso es que K3b lo he cambiado por Brasero, que va muy bién, Katapult lo he cambiado por Gnome-do, que va mucho mejor, y bueno, Yakuake lo cambiaré cuando Guake sea lo suficientemente estable, además, KDevelop no lo utilizo casi nunca y KOrganizer tampoco, definitivamente me he convertido a usuario de Gnome, que és mucho más bonito, aunque sea más pesado. (No he mencionado Konqueror ni Dolphin, porque aunque tienen una cosa que me gusta mucho, las pestañas o la Split View, pronto se hará lo mismo con Nautilus). Por otro lado, en Gnome hay utilidades muy, pero que muy interesantes, como F-Spot o Tracker, que aún no tienen rival claro en KDE.
  • He aprendido cosillas bastante interesantes sobre virtualización de entornos, sobre todo por lo del LFS, que también lo quiero provar en mi máquina, pero también por un proyecto que me mandaron en Newcomputing.
  • He renovado mis conocimientos sobre PHP, MySQL, y he aprendido bastante sobre las GTK y PHP-GTK, en parte por un proyecto que me mandaron en Newcomputing, en parte por experimentos propios...

Muchas cosas, jeje, tengo que liberar bastantes piezas de código, aunque primero creo que las tengo que pulir para que no den pena, son más interesantes por el hecho de que introducen conceptos (para los novatillos, entre los que me encuentro) y por que hay pocas utilidades libres con esos usos que por su calidad.

Añado que me he columpiado bastante en la organización del concurso de programación GNUAB, y a partir de mañana me pondré a hacer todo el trabajo atrasado que tengo... Quiron me va a matar!

P.D.: ¡Fedora es una mierda! Por otra cosa no será... pero.. ¿porque no reconoce ya la gente de Red Hat que apt, aptitude, dpkg y deb (aunque sean mejorables) son clarament superiores a yum, y rpm?