Limpieza de disco: cómo borrar viejos kernels

Screenshot-Synaptic Package Manager Tengo el disco duro del portátil a punto de reventar por sobrecarga. Necesito espacio en disco urgentemente. ¿Qué hacer? Un poco de limpieza 🙂 Llevo actualizando este viejo cacharro desde Ubuntu 7.04 (estamos en 9.04) así que de vez en cuando toca pasar la escoba. Desde la última actualización de versión de Ubuntu, he ido manteniendo al día todos los paquetes del sistema… incluído el kernel. Y claro, héte aquí que Ubuntu, precavido, cuando actualizas a un nuevo kernel no te borra el anterior, por si las moscas (de esta forma, si la actualización al nuevo kernel hiciera que algo dejara de funcionar, siempre puedes volver a la versión anterior). Eso tiene dos consecuencias: una, que el menú de GRUB acaba con scroll 🙂 y dos, que los archivos del kernel, módulos, cabeceras, etc. se mantienen en el disco duro. ¿Tánto ocupan? Hombre, en mi caso, no mucho, 500 y pico MB… no mucho si tienes un disco de 500GB… pero mucho si sólo tienes libres 0.9 GB 🙂  Conclusión: limpieza. ¿Cómo? Fácil:

uname -r

Te dirá la versión del kernel que estás usando en tu PC.

Abrir Synaptic (como root). Buscar:  linux-image-2   (es el prefijo para buscar linux-image-2.*)

Marcar para borrar por completo todas aquellas entradas que NO coincidan con el kernel que actualmente usas (no la vayas a liar parda…) Esto tiene dependencias que Synaptic resolverá solito (linux-restricted-modules y linux-ubuntu-modules, por ejemplo).  También te puedes cargar los paquetes linux-headers que no coincidan con la versión de tu kernel.

Es recomendable no pasarse en la limpieza, y tal vez, aparte de dejar el kernel actual (obviamente), también el anterior.

Finalmente, un apt-get autoclean, apt-get clean, apt-get autoremove eliminará también de la caché aquellos paquetes .deb que no uses y te sugerirá la desinstalación de otros que tampoco vayas a necesitar.

Etiquetas de particiones de disco en Nautilus

Tengo varios discos externos que suelo usar para hacer backups. Cada disco tiene unas 3 particiones (a veces más, a veces menos). En Ubuntu Jaunty se montan perfectamente al encenderlos. Todas las particiones, sin problemas. El problema viene en la visualización de los nombres de las particiones en Nautilus.

Screenshot Como puede verse en la imagen adjunta (pulsa sobre ella para verla con zoom), Nautilus ha decidido que los nombres de las particiones son 25.8 GB Media,  114.3 GB Media y 160 GB Media.  Y según el comando mount, se han montado en disk, disk-1 y disk-2. O sea, un completo caos de nombres (ninguno de ellos intuitivo, por cierto).

Al parecer, es un bug que lleva más de 3 años sin solucionarse.  El caso es que Nautilus muestra el nombre de la etiqueta de la partición. Si no encuentra nada (no hay etiqueta asignada a esa partición), pues muestra el tamaño de la misma. ¿Qué es lo que yo esperaba? Que me indicara el nombre del directorio donde lo ha montado (disk, disk-1 o disk-2), para poder desplazarme con Ctrl-L o por consola por ellos.  Y ya puestos a pedir, que me indicar el tipo de sistema de archivos que usa esa partición (fat32, ext3, ntfs, lo que sea…)  En fin, mientras eso se soluciona, al menos hay un workaround posible.

Con el comando hal-device podrás ver los nombres de las etiquetas de tus particiones:

$ hal-device | grep ‘ volume.label’

Para cambiarlas, desde la línea de comandos, tendrás que usar un comando u otro en función del sistema de archivos.

En el disco externo de la imagen, las particiones son ext3, fat32 y ntfs respectivamente, por lo que los comandos para asignar las etiquetas disk-1, disk-3 y disk-3  a esas particiones serían:

$ sudo e2label /dev/sdf1 disk-1

$ sudo mlabel -i /dev/sdf2  ::disk-2

$ sudo ntfslabel -f -v /dev/sdf3 disk-3

Ahora Nautilus muestra lo que yo quería (salvo en la partición 3, dado que en mi Ubuntu no he conseguido que el dichoso comando ntfslabel funcionara 🙁     En fin, algo es algo.

Extiende Firefox 3.5 y gana un MacBook Pro

La fundación Mozilla vuelve a organizar un concurso de desarrollo de plugins para Firefox. En esta ocasión, aprovechando la inminente publicación de Firefox 3.5 (el pasado día 16 salió a la luz la RC1), se ha abierto un apartado especial para premiar a las extensiones que hagan un mejor uso de las novedades de Firefox 3.5.

Todas las entradas participantes serán juzgadas por un panel de expertos, dividiéndose el concurso en 6 categorías: mejor plugin de nueva creación, mejor actualización de plugin, mejor plugin orientado a la compra online, mejor plugin en categoría de juegos y entretenimiento. Los premios a los ganadores de cada categoría incluyen un MacBook Pro de 15″ entre otros regalos. También habrá premios para los 6 siguientes clasificados en la categoría de mejor plugin de nueva creación.

El plazo de inscripción comenzó hace 3 días (16 de Junio) y se extiende hasta el 2 de Octubre de 2009. El 9 de noviembre se darán a conocer los nombres de los ganadores. ¡Anímate a participar!

Puedes leer las normas completas en la web del concurso.

Hackit!: nivel 3

Warning! Este post muestra paso a paso cómo superar la prueba 4 (nivel 3) del HackIt! de la Gipuzkoa Encounter 2009. Si no quieres verlo, deja de leer… ¿Todavía estás aquí? Entonces ¿quieres leer la solución? Vale, tú mismo. Allá vamos:

0) Descargar el ejecutable para Windows a crackear. Si estás en Linux, aprovecha para pasarle el comando strings y ver si encuentras algo interesante – no hay gran cosa-. Ya puestos ábrelo en vi (sí! abrimos el binario en vi) . Aquí sí que vemos algunas cadenas interesantes. Entre ellas UPX!

1) UPX es un empaquetador de ejecutables (tanto para Win como para Linux). Descargamos UPX. Desempaquetamos el ejecutable (se puede hacer en Linux con Wine si se desea)

/tmp/upx303w$ wine upx.exe -d ../crackit.exe
Ultimate Packer for eXecutables
Copyright (C) 1996 – 2008
UPX 3.03w Markus Oberhumer, Laszlo Molnar & John Reiser Apr 27th 2008
File size Ratio Format Name
——————– —— ———– ———–
28672 <- 8704 30.36% win32/pe crackit.exe
Unpacked 1 file.

2) La idea ahora es abrir el ejecutable con algún debugger para Win. Por ejemplo, OllyDBG. Lo he probado con Wine y no ha ido muy fino así que abrámoslo en el sistema del maligno 😉

Abrimos el fichero desempaquetado crackit.exe en OllyDBG.

Ponemos un punto de ruptura en la primera línea ejecutable del .exe (en la 00401811). Para ello, basta con hacer doble click sobre la línea en cuestión (el número de línea se pondrá rojo, igual que en la imagen). Ahora, dado que la primera línea es un «call 004023E4» lo inspeccionamos con «step into», es decir, pulsamos F7 para ver el código al que ese call está llamando. Ahora, empezamos a navegar por el código usando F8 (o sea, step over, es decir, ejecución línea por línea, sin meternos en los call)

Seguimos así hasta la línea 00401665 «call 00401005». Realmente la idea es que pulsamos F8 hasta ver cuándo se abre una ventana MS-DOS que nos está pidiendo login y password. En ese momento apuntamos la línea que provocó esa llamada y nos damos cuenta de que es la 00401665. Ahora reiniciamos la sesión de debug y pulsamos F7/F8  hasta pararnos en 00401665. Pulsamos F7 (step into) para ver «las tripas» de ese método.

Ahí hay un «jmp 00401010». Pulsamos F7. Y seguimos con F8, línea a línea. En la 00401050 vemos que se prepara el string que nos indicará por pantalla «En esta prueba es importante saber quién eres…». F8 y veremos que se hace una llamada a printf. Seguimos con F8. En la línea 004010A2 vemos que se hace una llamada a fgets (se solicita por teclado un string al usuario). Tecleamos «euskal» y pulsamos intro para seguir depurando. F8 hasta que nos pida el password. Tecleamos cualquier cosa (12345678, por ejemplo).

Ahora se supone que en algún momento deberá de compararse lo que hemos tecleado nosotros (12345678) con la clave correcta que se supone que deberíamos de teclear. Así que vamos pulsando F8 hasta que veamos el «strcmp» pasar por delante nuestro y justo antes, el string con el que comparar  🙂

(pulsa sobre la imagen para ver la contraseña en la línea 004011B3). Suerte con el nivel 4 😉

Google Summer of Code 2009: lista de organizaciones aprobadas

Google acaba de publicar la lista de organizaciones aprobadas para el Summer of Code 2009. Este año serán 150, que no es poco, aunque en años anteriores fueron más. Están las clásicas: PHP, Gnome, KDE, Eclipse, Blender, Debian, GCC, GNU, Joomla, Moodle, Mozilla… y algunas otras nuevas: por ejemplo, el proyecto Apertium (para la generación de aplicaciones que ayuden a la traducción entre las lenguas del estado: español, gallego, catalán y euskera – esta última con el proyecto hermano matxin), el proyecto Chromium (el proyecto open source detrás del browser Chrome de Google) o el proyecto Go-OO , una compilación especial de OpenOffice.org para añadirle plugins, plantillas y funcionalidades a la distribución OOo original (y base de NeoOffice para Mac y OxigenOffice)

Si eres un estudiante interesado en colaborar en alguno de los proyectos, encuentra el que más te guste   y apúntate a partir del 23 de marzo 🙂