Mostrando las entradas con la etiqueta geekadas varias. Mostrar todas las entradas
Mostrando las entradas con la etiqueta geekadas varias. Mostrar todas las entradas

lunes, 17 de septiembre de 2012

Nostalgias

(Tandil, reserva natural sierra del tigre, Argentina)

- Empleado1: Che, me podés conseguir una buena imagen de un puma para poner en el cartel de la jaula?
- Empleado 2: Tengo una máquina con windows 95 que tiene justo lo que andamos buscando. Hasta creo que tengo instalado el ACDSee.



(Si no le resulta conocida esta imágen, compruebe su partida de nacimiento: el año debería ser mayor que 1990).
Link 
Imágen completa


lunes, 9 de agosto de 2010

El regreso del freak: The Super Duper ISO booter

Desde el comienzo de los tiempos el ser humano buscó un modo de bootear una imagen iso desde un pendrive de forma automágica, es decir, sin tocar un solo archivo de configuracion, por el solo expediente de colocarla en una carpeta. Siglos han pasado desde entonces, y para que semejante hazaña sea posible fue necesario que primero se inventaran (o descubrieran según seamos aristotélicos o platónicos) los pulgares oponibles, las herramientas, el lenguaje, la rueda, el fuego, la imprenta, la electricidad, las computadoras, los cds, las imagenes ISO, los puertos usb, los discos extraibles, syslinux, grub4dos y grub2.

A nosotros, seres humanos que vivimos una época en la que todo lo anterior existe, nos queda entonces la obligación de disfrutar de nuestros inpulsos frikis haciendo uso de las herramientas a nuestro alcance.

En eso me encontraba cuando empece a investigar el entonces nuevo grub2, descubriendo que incorpora un interprete LUA, que hasta donde pude ver (tengo la referencia del lenguaje para leer, solo me da paja hacerlo) es un lenguaje de programación similar a C y que puede usarse como lenguaje scripting. Y entonces me surgió la curiosidad de saber si bootmanager+scripting me podían dar el famoso boot automático de isos por el que varios lectores preguntaron al comienzo de las andadas de este, su blog amigo, cuando incursionabamos en pendrives booteables. Y resultó que sí.

Y el pueblo: ¿Quiere saber de que se trata?

O mejor dicho: si no quiere saberlo, puede saltar directamente a la sección "Todo masticado", en la que encontrara una bonita descarga con, justamente, todo masticado.

Para los que quieran saber de que se trata, les cuento: Se trata de una coleccion de utilidades, scripts archivos de configuración robados de otros proyectos y colocados todos juntos para que funcione. Para dar crédito a los autores originales vos a explicar como funciona.

El script de instalacion es una modificacion (y semi traduccion) del que se encuentra al final de la pagina del hirens para bootear por usb, y se encarga de copiar los archivos grub.exe, syslinux.conf, menu.lst, sgd.iso y m.lua a la raíz del pendrive. Luego crea el directorio /iso y mueve sgd.iso ahi, y al final instala el sector de arranque de syslinux en el pendrive. Con esto tenemos todo instalado.

Al bootear, el pendrive lee el sector de arranque y carga el syslinux. Este lee el archivo de configuración syslinux.cfg y carga el grub4dos (grub.exe modificado para que no saltee el floppy) , que lee el menu.lst y carga la iso del Super Grub Disk (modificada para agregarle la entrada del Super Duper Iso Booter) , que lee el script m.lua (que es modificacion del script bootiso.lua que trae el SGD2) y nos muestra un menú con todas las iso que haya en el directorio /iso. Cuando seleccionamos una entrada del menú, grub2 vuelve a cargar grub4dos, con parametros de configuración que mapean la iso y bootean desde el sector de arranque.

Y por qué es tan complicado?

Es complicado porque al hacerlo me encontré con algunos problemas:

- No instalo directamente grub4dos como arranque porque syslinux es mas compatible con maquinas viejas, y de todos modos uso grub.exe después.
- No puedo bootear la iso desde syslinux porque no lo soporta.
- No pude editar el floppy de SGD2 porque no pude montarlo en linux o en windows. Si alguien quiere hacerlo y poner el grub.cfg de la iso lo espero en mediafire.
- No puedo generar el menú desde grub4dos porque no soporta scripts.
- No puedo bootear las iso desde grub2 porque no soporta chainload, y eso nos deja sin bootear muchas cosas (el hirens, por ejemplo. O el silverdisk).

Verán que son muchos items, poniendo solo los que se me ocurrieron y no pude resolver. Por otra parte, la ventaja del método actual es que nos quedan a la vista un syslinux.cfg y un menu.lst para agregarle lo que queramos!

Un poco de código:

CorraMe.bat

@echo off
echo.
set udrv=
for %%x in (syslinux.cfg syslinux.exe grub.exe menu.lst sgd.iso m.lua) do if

not exist files\%%x goto error
set /p udrv=Ingrese la letra del disco USB (Por ejemplo F:)
if "%udrv%"=="" goto nodrv
echo.
echo !! CUIDADO !!
echo.
echo ESTO INSTALARA SYSLINUX EN %udrv%
echo PRESIONE CUALQUIER TECLA PARA CONTINUAR (O CIERRE ESTA VENTANA)
pause
echo Copiando archivos al pendrive ...
for %%x in (syslinux.cfg grub.exe menu.lst sgd.iso m.lua) do echo copy /y

files\%%x %udrv%\ && copy /y files\%%x %udrv%\
for %%x in (syslinux.cfg grub.exe menu.lst sgd.iso m.lua) do if not exist

%udrv%\%%x goto errcopy
mkdir %udrv%\iso
move %udrv%\sgd.iso %udrv%\iso

echo Instalando el boot en el USB...
echo files\syslinux.exe -ma %udrv% -f
files\syslinux.exe -ma %udrv%
if errorlevel 0 goto ok
echo syslinux.exe error
pause
goto end
:ok
echo done
pause
goto end
:nodrv
echo nothing is selected
pause
goto end
:errcopy
echo Error while copying
pause
goto end
:error
echo file(s) missing (syslinux.cfg syslinux.exe grub.exe menu.lst sgd.iso

m.lua)
pause
:end



Este es el "instalador", modificacion del que viene en el paquete de syslinux del hirens. Primero chequea que existan los archivos necesarios en /files, después pide la letra de la unidad y copia los archivos. crea el directorio /iso y mueve ahi el sgd.iso .Despues escribe el boot en el mbr y sale, Lo que sigue son los mensajes de error que nos muestra si algo falla. Verán que no están traducidos, con lo que notarán mi lazyness.

Syslinux.cfg

default /grub.exe

Simple, carga el grub.

Menu.lst

timeout 2
default 0

title SuperGrubDisk ISO
find --set-root /iso/sgd.iso
map /iso/sgd.iso (0xff) || map --mem /iso/sgd.iso (0xff)
map --hook
root (0xff)
chainloader (0xff)

Encuentra la iso del super grub disk, la mapea directamente o en memoria y bootea desde ahi. Esta forma de cargar las iso en grub4dos está robada del proyecto winsetupfromusb.

Grub.cfg (dentro de la iso)

...
#Super iso booter
menuentry "Super duper iso booter" {
search -f --set /m.lua
configfile /m.lua
}
...

Agregado la entrada del menu. Search es el reemplazo de find (diferencia entre grub4dos y grub2), y se pasa como archivo de configuracion el script que genera el menu

m.lua

#!lua

isofolder = "/iso"

function enum_file (name)
local title = string.match (name, "(.*)%.[iI][sS][oO]")

if (title) then
local source = "search -f --set /grub.exe \n linux /grub.exe --config-file=\"root (hd0,0); map /iso/" .. name .." (0xff) || map --mem /iso/" .. name .. " (0xff); map --hook; root (0xff); chainloader (0xff)\" "

grub.add_menu (source, title)
print ("titulo: "..title.. " ruta: "..source)
end
end

grub.enum_file (enum_file, isofolder)

Este es el mas robado (lo que implica que no hubiera podido programarlo yo sin leer muuuucho mas)! Para mas datos, está robado específicamente del script listisos.lua de esta pagina de ubuntuforums. Crea una funcion que por cada archivo terminado en .iso (mayuscula o minuscula) agrega una entrada del menu con los parametros definidos en source y title. Yo solo le cambié la llamada a la funcion bootiso.lua por la llamada directa a grub4dos con los parametros de arranque.

Y listo!

Todo masticado!


Acá tienen la descarga del instalador en rar. Se descomprime en cualquier lado (el escritorio, por ejemplo, aunque yo lo dejaría en el pendrive por si hay que restaurar) y al ejecutar CorraMe.bat pregunta la letra de la unidad y se instala ahí.
Para agregar una iso al menu solo hay que copiarla en la carpeta /iso en el pendrive.


Notas:

- Cuidado! Si hay otro sector de arranque, syslinux.cfg o menu.lst en la raiz del pendrive hagan un backup antes de instalar, porque el CorraMe.bat sobreescribe sin preguntar.
- El grub4dos intenta mapear la imagen directamente, y si falla lo hace en memoria. Esto último sucede cuando la imagen iso esta fragmentada en el pendrive, y aparte de ser lento consume memoria, por lo que si vamos a tirar isos de 700Mb en la carpeta, es recomendable wincontig.
- Desde seven o vista, hay instrucciones en la última posdata!
- Las isos booteadas no siempre andan.
- Puede fallar!



PD: para toquetear los archivos de configuracion y probar, les recomiendo este probador de boot basado en qemu (robado del paquete UBCD4Win) .

PD2: (Arreglado. No les debo nada) .Les debo los links a las paginas de hirens, grub4dos, grub2, syslinux, lua, wincontig, UBCD4WIN y mil mas. Capaz que mas tarde, es decir dentro de seis meses, con mi ritmo de publicación.

PD3: Soy lento para despedirme y escribo muchas posdatas. Pero si alguien prueba esto deje un comentario, para saber que no soy el único friki al que le interesa esto. O que si.

PD5: Enjoy!

PD4: En W7 o Vista tenemos una problema: necesitamos ser administradores para poder escribir el mbr, pero el sistema cambia el path a \windows\system32 cuando ponemos el modo administrador, con lo que el batch no encuentra los archivos. Para solucionar eso debemos:
1) Abrir una consola en modo administrador. Eso se hace buscando en el menu "cmd", y después con boton derecho sobre el ícono "Ejecutar como administrador".
2) Cambiar el path al lugar donde tenemos el archivo CorraMe.bat. En mi pendrive, el comando es cd "F:\boot tools\SuperIsoBooter"
3) Ejecutar el batch a mano desde la consola.
4) Debería funcionar!
Of course, si alguien tiene una solucion mas elegante, lo espero en los comentarios y será agradecido. No eternamente, pero agradecido.

martes, 16 de febrero de 2010

Obsesiones surtidas: Mejorando la compatibilidad de Grub4dos en el pendrive

Grub4dos es una herramienta increíble: puede bootear directamente linux, xp, vista y seven, puede montar diskettes o imagenes iso, y tiene una linea de comandos poderosa, que nos permite buscar las opciones corectas en vivo.

En mi pendrive de laburo el grub4dos se encarga de bootear un par de mini XP, el Hirens 10, la consola de recuperacion de XP, las ISO de Acronis TrueImage y Puppy 4.21 y el Slitaz, una mini distro que es rápida y maneja bien NTFS.

Lamentablemente para nosotros, los habitantes del subdesarrollo, algunas máquinas de las que son mayoría por estos lares (maquinas con DDR y sin SATA, sin muchas opciones para bootear desde usb) tienen problemas para llegar al menú.

PROBLEMAS Y SOLUCIONES

El primer problema es en el booteo. El síntoma es que al arrancar desde el pendrive el sistema se queda colgado con un cursor parpadeante en la esquina superior izquierda, y es incapaz de cargar el grub. La solución que nos propone la gente del Hirens es cargar grub.exe desde syslinux, que es un arranque mucho más amigable. El archivo que descargamos de la página de hirens no hace mas que instalar el syslinux, copiar a la raiz del pen el grub.exe y el archivo syslinux.cfg, que contiene solo la sentencia “default /grub.exe”. Elegante y conciso. Y funciona. Por supuesto, nosotros no podemos dejar tranquilo ese syslinux.cfg, pero eso es de otros posts que ya pasaron!

El otro problema, con el que me encuentro mas veces de las que quisiera, nos deja en la línea de comandos de grub sin mostrarnos nuestro menú. Esto sucede porque la bios esta reconociendo el pendrive como un diskette, y nuestro grub4dos esta seteado explícitamente para no buscar en floppies.

Cómo sabemos si es esa la causa? Buscando nuestro menu.lst desde la linea de comandos con find /menu.lst el comando nos devuelve un bonito (fd0).

La solución más directa es hacer a mano lo que el grub no quizo hacer automáticamente.

Tipeamos:

find --set-root /menu.lst
configfile /menu.lst


Y tendremos nuestro menú. Hay que tener en cuenta que estamos booteando con fd0 como root, lo cual no suele gustarle al hirens, pero los chainloaders del xp o las iso no tienen mayores problemas para arrancar.

Pero... para los enfermos como yo existe una solucion más permanente, que nos evita el delay de cargar a mano el menú. Podemos modificar las opciones de arranque del grub4dos.

Parte de la magia de este bootloader está en su capacidad de cargar automáticamente el menu.lst. Si lo arrancamos en una máquina lenta, y tocamos las teclas del cursor al iniciar, podemos entrar en un menú intermedio, cuyas entradas buscan al archivo menu.lst en el directorio raiz /, en /grub y en /boot/grub. Al editar estas entradas vemos al culpable de nuestras desdichas. La línea que busca el menu.lst es así:
find --set-root --ignore-floppies --ignore-cd /menu.lst

y la siguiente

configfile /menu.lst

Bien! Ahora sólo nos queda sacar la parte de “ignore floppies” del menú intermedio, para que el boot funcione de primera.

Pero dónde está ese menú? Esta es la parte divertida del procedimiento. El menú está en el archivo grub.exe (y en el grldr, pero como usamos syslinux ese no nos importa), y podemos editarlo directamente con un editor hexadecimal.

Voy a usar el TinyHexer, que es el que llevo en el pendrive. No por nada en particular.

El truco es buscar la cadena de texto “--ignore-floppies --ignore-cd /menu.lst” en el archivo, seleccionar la parte de “--ignore-floppies“ y eliminarla. Acá una muestra de cómo se ve en mi editor:



That´s all folks!

PD: Para los que quieren todo cocinado, aca les dejo mis Grub.exe y grldr modificados.

PD2: Calmadas nuestras obsesiones, ya podemos seguir viendo los capitulos de Fringe que nos quedan. Hasta luego!

jueves, 18 de junio de 2009

Geexbox again!

Hace un tiempo publiqué en este mismo blog (obvio, porque no tengo otro) un método para poner el Geexbox en el pendrive. Y ahora voy a publicar otro. ¿Por qué? Porque el público se renueva (Mirtha Legrand Dixit), pero no solo por eso, ( la búsqueda en el blog está tan a mano, bastaría con poner "busquen Geexbox en el blog y lean, loco!", o un más lacónico link), sino porque Geexbox también se renueva.

Pero que corno es Geexbox, que ya lo nombré 5 veces y no dije que era?

Bien, para los recien caidos del catre, Geexbox es una mini distribución de linux que sirve como mediacenter. Pero en serio. Tiene codecs para todo lo que le tiremos encima (y digo todo, FLV, MP4, 3GP, MKV, RMVB, MOV, y por supuesto AVI y MPG, reproduce DVD, VCD y audio CD, MP3,OGG, JPG,BMP...y ya me cansé. Si encuentran algo que no corra ahi y sí en otro lado, me avisan), tiene soporte para red, usa la salida de tv de las placas nvidia y ati, detecta placas sintonizadoras de tv, esta preparado para usar con control remoto y pesa (con todo) unos 20Mb. Y arranca en 25 segundos, en un sempron 2400 con 96Mb de ram. Y se apaga en 2. Y reproduce archivos dañados. Y mas.

Geexbox a pleno!

Y por qué digo que se renueva?

Bueno, estaba esperando que pregunten eso! Si leyeron el post anterior, puede que recuerden que para poner el Geexbox teníamos que extraer la carpeta en el pendrive, instalar el syslinux y modificar el archivo syslinux.cfg para agregarlo. Ahora, los amigos de Geexbox nos dan un instalador que nos deja todo cocinado y listo para usar. Sólo nos pide que le digamos cual es la imagen iso que queremos instalar, y dónde la queremos poner. Basicamente hace lo mismo que hacíamos a mano, pero en 30 segundos.


En este momento yo lo estoy usando como solucion al problema del hirens 9.7 y grub4dos. Me basta con instalarlo, apretar ESC cuando carga el menu del Geexbox y escribir GRUB.EXE en el prompt para tener mi menu del hirens.

Pulse ESC aqui para salir al prompt...

Y hablando de grub4dos: el instalador en cuestion trae una sorpresa más. Si queremos poner la cajita multimedia en nuestra máquina con windows (es decir, elegimos la opción "install to windows partition") , este simpático programita instala grub4dos colocando una entrada a grldr en el archivo boot.ini, permitiéndonos entrar al menú de la distro desde el menú de arranque de windows.
Es decir, que en unos míseros 371Kb el instalador de Geexbox concentra la mitad del know-how de este, su blog amigo, y nos proporciona ejemplos funcionales de syslinux, grub4dos y el propio arranque de windows. Lo dicho, una joya que no debe faltar en el pendrive de la dama o el Mp3 del caballero.

La yapa: cómo configurar Geexbox para acceder a carpetas compartidas en red de windows.

Background: Hace unos días rescaté una mother asrock con un sempron 2400 (el viejo truco de cambiar los capacitores reventados. BTW ¿Vieron como están cayendo las asrock de hace unos 5 años? Como moscas!), y le puse una fuente de 20 pines, y una memoria de 128Mb (usando 32 para video). Como no tengo tele (y no creo que vaya a tener, asi de hippie soy) me consegui un monitor de 17´ y armé el engendro en la cocina. Después preparé un cable de red cruzado entre esa máquina y la de escritorio, y le puse a esa una dirección IP fija: 192.168.1.99.

Para lograr que el Geexbox me lea las carpetas compartidas, modifiqué el archivo /GEEXBOX/etc/network en el pendrive, cambiando estas líneas:

PHY_TYPE="auto" # Network physical type (auto|ethernet|wifi)
HOST="192.168.1.98" # GeeXboX IP ("" for DHCP) <--ESTA
SUBNET="255.255.255.0" # GeeXboX Subnet mask ("" for DHCP) <--ESTA

...

#STATIC_SMB="username<%>password<@>ip<&>myservername<#>share1<#>share2<#>share3"
STATIC_SMB="<%><@>192.168.1.99<&>lepton-z<#>peliculas<#>musica" <--ESTA

Siendo lepton-z el nombre de la pc que tiene las carpetas compartidas (lepton-z es el nombre por defecto de la maquina en el winchiquito), y "peliculas", y "musica" los nombres de las carpetas compartidas de contenido idem (no soy muy original). Le puse ip fija a las dos máquinas porque el DHCP no me funcó bien (culpo al router, un encore de los peores). Funciona de maravilla, y me permite ponerle a mis hijas el superagente 86 mientras sigo laburando en mi maquina.

Nota mínima pero importante: cuando editen el archivo, haganlo con un editor de texto plano. Quiero decir, no usen el bloc de notas ni el wordpad, porque ambos formatean el texto de algun modo, y después el Geexbox no lo lee bien. En windows pueden usar el Notepad2, o mas sencillo, inicio->ejecutar->edit.com . Y no digan que no les avisé!


Enjoy!

viernes, 20 de febrero de 2009

Un boot para dominarlos a todos: Jugando con grub4dos

En un comentario en la entrada sobre grub4dos en el menu de arranque de vista, Reirok nos recomendó un manual de grub4dos mas completo que el wiki oficial.

De ahí saque la clave para manejarme mejor en la consola de grub, y aprendí un par de comandos que me resultaron útiles para hacer lo que siempre trato de hacer: bootear todo lo que se me ocurra. Aqui se los voy dejando, por si alguien con mi misma enfermedad quiere jugar un poco.

Primero los básicos:

root : sirve para decirle al grub desde que particion queremos bootear. La primera particion del primer disco rígido es (hd0,0) , y de ahi en adelante. El comando nos devuelve amablemente una linea donde nos indica el tipo de particion y el sistema de archivos: "Filesystem type is fat, partition type 0xb".

kernel : indica el nucleo de sistema a cargar. Se usa principlamente para bootear linux.
initrd: tambien para linux, indica el nombre de la imagen de sistema base que se usa.

boot : arranca el sistema usando los parametros dados antes

Y ahora los mágicos; los que nos resuelven los problemas:

Problema uno: no me acuerdo cómo de llama el kernel que tengo que bootear, en que disco se encuentra o en que directorio lo puse.

find nos devuelve el disco en el que se encuentra el archivo buscado. No hace búsqueda recursiva, por lo que necesitamos decirle en que directorio buscar, pero en caso de que no sepamos bien ese dato podemos usar TAB para autocompletar.

Por ejemplo, si queremos encontrar el archivo de imagen de floppy de win98, que esta en una carpeta img, o imagen, o images etc, basta con poner:

find / +TAB, nos da el listado de lo que hay en / en el disco (hd0,0). De ahi sacamos el nombre del directorio (imagenes, por ejemplo).

find /imagenes/ +TAB nos lista el contenido del directorio imagenes en (hd0,0), para saber el nombre de la imagen.

find /memdisk nos devuelve (hd0,0) (porque copie el archivo ahí para probar)

Ahora podemos bootear el diskette colocando

root (hd0,0)
kernel /memdisk
initrd /imagenes/win98.img
boot

Para ahorrarnos un paso, podemos combinar find y root colocando find --set-root /memdisk ; lo que nos devuelve la salida de ambos comandos.

Problema dos: me cargué el arranque de xp/vista/win98 y necesito bootearlo.

chainloader hace lo que su nombre indica: encadena el arranque del grub con otro cargador a nuestro antojo. Así podemos bootear win98 sin instalar el boot, copiando io.sys, msdos.sys y command,com al disco (hd0,0) y corriendo chainloader /io.sys, o xp con chainloader /ntldr o el menu de arranque de vista con chainloader /bootmgr.

Hay que tener en cuenta que este método requiere que el disco de arranque sea el (hd0).

Para los que vienen siguiendo el blog, esto simplifica enormemente el trabajo de colocar el hirens, el livexp y cualquier linux en el pendrive. Basta con copiar todo a la raíz del pen, instalar grub4dos y modificar el menu.lst. Quizas haga un mini howto paso a paso en otro post.

chainloader también sirve para bootear desde una particion (bootsector) o disco (mbr). Así, si queremos bootear desde el mbr del disco (hd0) usamos chainloader (hd0)+1, que le indica a grub que botee del disco hd0, el sector1 (que es donde se encuentra el mbr); y si queremos iniciar desde lilo, instalado en el bootsector del (hd0,3),. basta con poner chainloader (hd0,3)+1

Problema tres: mi disco de windows no aparece como (hd0), y no me funciona el chainloader/ntldr.

map es un comando muy útil que nos permite solucionar este tema. Basicamente nos permite engañar al sistema que queremos arrancar para que crea que el disco X esta en la posición Y. Por ejemplo, si tenemos la particion de windows xp en (hd1,1) y queremos hacer chainloader /ntldr, tenemos que decirle a grub que haga aparecer el disco hd1 como hd0:

map (hd1) (hd0)

Si ahora usamos find /ntldr el comando nos devuelve
(hd0,1)
(hd1,1)

Esto es porque el disco 1 esta mapeado en hd0, y esta realmente en hd1.
Ahora, si queremos volver a tener acceso al disco 0 anterior, o necesitamos verlo en dos, lo mejor es hacer el cambio completo

map (hd1) (hd0)
map (hd0) (hd1)

y por fin, si queremos ver los cambios antes de bootear, podemos salir de esta ambigua situacion con

map --hook

este comando hace efectivos los mapeos anteriores, con lo que el resultado de find /ntldr pasa a ser

(hd0,1)

map es una instrucción muy potente, que aparte nos permite montar una imágen de floppy o de disco rigido como (fd0) o (hd0). Lamentablemente, esta funcion requiere que la imagen en cuestión sea contigua en el disco (no fragmentada), con lo que muchas veces el mapeo nos da un error.

Para solucionar esto podemos usar el modificador --mem, que carga la imagen en memoria antes de bootear (para imágenes de disco, hay que tener en cuenta que necesitamos tener ram al menos del tamaño de la imagen).

Por ejemplo, para montar nuestra imagen del disco de inicio de win98:

map --mem (hd0,0)/images/win98.ima (fd0)

Como dato adicional, el comando map --mem puede montar imagenes comprimidas con gzip (así como memdisk puede bootear zip).

Nota extra: todos los que nos obsesionamos tratando de crear cds/pendrive multiarranque soñamos con la utilidad que nos permita montar una imagen iso y arrancarla desde un menú. Mejor aún: una que busque en el pendrive todas las iso que pongamos adentro, y nos de un menú desde el que elegir cuál queremos bootear. Bueno, grub4dos no hace eso todavía, y es posible que no lo haga. Pero la posibilidad de mapear una iso como (hd32) y bootearla con chainloader es lo mas cercano que ví hasta ahora.

Problema cuatro: tuve que reinstalar windows y me cargué el boot de linux.

Este problema podría solucionarse con una vuelta larga: bootear windows, acceder a la particion de linux con el plugin ext2 de totalcommander, extraer el menu.lst, imprimirlo, bootear grub4dos e ingresar a mano los parametros de kernel e initrd con todos sus append. O más corta, ubicar el menu.lst anterior en el disco, listarlo con cat y copiar a mano los parametros. En lugar de eso tenemos un comando que nos permite cargar el menu.lst de nuestro linux como menu de grub4dos.

configfile le indica a grub4dos cual es el archivo de configuracion que debe usar. Así, si teníamos nuestro linux en (hd1,5), que vendría a ser la primera unidad lógica de la partición extendida del segundo disco, podemos buscarla con:

find /boot/grub/menu.lst
(hd1,5)

y después cargar el menu con

configfile (hd1,5)/boot/grub/menu.lst

, con lo que tendremos todas las opciones que habíamos perdido. Hay que tener en cuenta que es posible que las opciones de arranque no funcionen sin laburo extra. Por ejemplo, si booteamos grub desde un pendrive; este se pone como (hd0,0), desplazando la nomenclatura de los discos internos, por lo que debemos hacer algo de edición "en vivo" sobre las opciones para sacarlas andando.

El comando configfile también es útil para hacer submenuses, solamente haciendo entradas que apunten a distintos archivos de configuración. Si quieren ver un excelente ejemplo vean SGD. Un estudio de los archivos de menú les va a dar una idea más clara.

Ya escribí demasiado. Chau, que lo disfruten!

PD: cada comando tiene un link a la guia del amigo diddy, en la que todo está mucho (mucho) mejor explicado. Les recomiendo que lo sigan, para hacerse una idea de que tan mala es esta mini guia.

martes, 27 de enero de 2009

Jugando con fuego: rootkits

El blog del Maligno es una fuente inagotable de sabiduria y mala leche (pero con onda).
Hace unos días pasaba por ahi, y me topé con estas im-pre-sio-nantes conferencias de Mark Russinovich, que los amigos de M$ nos regalan a cambio de que instalemos su Silverlight.

Como ultimamente estoy pro M$ y estaba usando la beta del seven, no tuve ningun reparo moral en instalarlo y pasarme una hora y cuarto mirando la charla "Advanced Malware Cleaning", en la que Mark repasa los métodos de detección y remoción de malware, enfocandose principalmente en el uso de las herramientas de sysinternals, ProcessExplorer y Autoruns. A los que trabajen de ésto, les recomiendo verla. Es en inglés, pero les aseguro que mi nivel no es muy bueno, y Mark habla claro y lento, así que es difícil perderse algo. Como ayuda, les dejo un pdf con la presentación que Russinovich usaba de guia.

Lo que más me interesó de la charla fue la parte en la que habla acerca de los rootkits. Estos son programas diseñados para esconderse a si mismos, y esconder tambien otros programas que pueden ser maliciosos o no, de modo que sean indetectables para cualquier programa que intente verlos a traves de las llamadas al sistema (APIs). En resumen, una cagada para el técnico (lease yo), que puede pasarse horas mirando el ProcessExplorer, el Hijackthis, el Autoruns, el regedit o cualquier otro programa que no esté diseñado específicamente para verlos, sin sospechar que la máquina sigue infectada.

Pasada la introducción, pasamos a la diversión.

Me suscribí a www.rootkit.com, y dediqué un rato a "infectar" una máquina con pruebas de concepto, para ver cómo se ven.

Materiales:

Maquina (1)
PIII con winchiquito, usada desde la cuenta administrador (una bomba de tiempo). No es de lo más estable (se cuelga sin infectarla), pero es lo mejor que tengo para pruebas.

Rootkit (2)
HideToolz: herramienta que nos presenta una interfaz desde la que podemos ocultar procesos. No corre junto con Hacker Defender (cuelga la maquina), por lo que no lo incluyo en los análisis. para el que quiera probarlo, es bastante inocuo (igual no me hago responsable etc.)
HackerDefender: Más completo, nos permite ocultar procesos, claves del registro, archivos y más. Además puede setearse para iniciar un proceso oculto.

AntiRootkits (4)
RootkitRevealer (RKR): La herramienta de sysinternals es bastante buena detectando el problema pero no nos permite solucionarlo desde el programa. En la presentacion Mark usa un depurador en modo kernel (una herramienta que le permite "tocar" los parametros del kernel en vivo, en este caso softice) para sacar el rootkit . Véanlo. Es demasiado para mi.
Gmer: un limpiador mas amigable, con acceso a procesos ocultos (y la posibilidad de matarlos), servicios ( y cómo deshabilitarlos), vista del registro y claves ocultas e incluso archivos que no se ven en el explorador.
Rootkit Unhooker (RU): Un programita "Quick and dirty" que nos muestra facil y rápidamente si hay un bicho en nuestro sistema. También mata procesos e intenta borrar drivers y servicios malos.
System Virginity Verfier (SVV): uno de los juguetes de Joanna Rutkowska. Es una utilidad de linea de comandos que nos permite chequear rápidamente si el sistema está comprometido, e incluso tratar de repararlo. Y nada más. No nos dá mucha info, pero es muy util.

Y ahora a los bifes... Digo, a las capturas.

1) SVV nos dice que esta todo OK.


2) RU también


3) Corremos HackerDefender. Le decimos que se oculte, saque de nuestra vista todos los archivos y carpetas que lleven "hxdef*" y corra el bloc de notas pero "in the backround". Nos hace caso. Acá no hay captura: no hay nada que ver ahora!

4) SVV no está tan contento...

5) RU nos muestra el problema


6) GMER nos avisa ni bien entramos, y nos deja ver los procesos, servicios y archivos ocultos.

7) El escaneo completo del sistema, tanto con RKR como con GMER o RU, nos lleva a una bonita BSOD, asi que no hay cap.

8) Tratamos de limpiar. Gmer nos deja matar el proceso, con lo que recuperamos la vista de los archivos ocultos. También nos permite deshabilitar el servicio asociado. Con esto nuestro rootkit pasa a ser como cualquier otro virus, porque quedan a la vista los procesos, servicios, archivos y drivers que este se encargaba de ocultar. Borramos todo lo que parezca sospechoso (puede que haya que reiniciar para borrar los servicios malvados despues de deshabilitarlos).

9) Para terminar la limpieza, le pedimos ayuda a Joanna:


10) Reiniciamos y volvemos a chequear: Gmer muestra un par de entradas sospechosas (probablemente ya estuvieran ahi antes), pero ningun proceso oculto, ni driver o servicio fuera de lugar, y ninguna referencia a HackerDefender. RU no encuentra problemas, RKR no sé, porque el escaneo tarda mucho (si quieren una reseña profesional vayan a otro lado) y SVV vuelve al nivel 1 (good).

Y hasta acá llegamos con la prueba. Quien quiera repetirla y tenga algo para agregar, que no sea tímido. Para eso estamos.

FAQ

Q: Los reportes del final significan que el sistema quedó limpio?
A: No. Sólo quieren decir que está más limpio que antes. Lo fundamental de los rootkits es su habilidad para esconderse, y siempre se buscan nuevas técnicas para hacerlo. De todos modos, si uno no quiere volverse paranoico, un par de reportes limpios son buenas noticias. Y si no, siempre queda reinstalar.
Q: Por qué no hay capturas de la limpieza?
A: Porque el objetivo del post es mostrarles cómo se ven las infecciones de rootkits en general con las herramientas que probé. La limpieza es opcional (siempre queda reinstalar).
Q: Se te ocurre una pregunta mejor para terminar?
A: No. Chau.

domingo, 25 de enero de 2009

Grub4dos desde Dos, boot.ini y Vista/Seven Bootloader

Una de las obsesiones que tengo como técnico pasa por el tema de las herramientas. Los que sean asiduos del blog sabrán que soy fanático de las cosas que me simplifican el trabajo: si puedo bootear el hirens sin tener que llevar un cd encima, mejor. Si en el mismo pendrive puedo poner un par de distros de linux que me permitan testear el hardware, o acceder a inetrnet para buscar soluciones, mejor. Si puedo reparar una máquina a la que no le arranca el sistema operativo sin reinstalar, mucho mejor.

Por eso es que me interesan tanto los bootloaders: son meta-herramientas; aplicaciones que nos permiten iniciar otras, que son las que nos resuelven el problema. No hay nada más frustrante para el técnico que una máquina que no arranca.

Hace unos dias, cuando me compré la notebook, decidí hacerle caso al amigo Reirok, y me puse a aprender a usar Grub4Dos. Este es un proyecto derivado de Grub, con algunas funciones extra: En general, nos permite iniciar casi todo lo que arranque: puede "encadenarse" para correr dos (cargando io.sys), xp (cargando ntldr) o vista (cargando bootmgr), y por suspuesto puede emular diskettes desde una imágen, y cargar cualquier linux que se precie de tal. Consulten el wiki si quieren saber más (recomendado para frikis como yo).

Una ventaja importante que tiene este proyecto a mi modo de ver es que cuenta con muchas formas de iniciarlo. Reseño aquí las que usé hasta ahora:

Desde DOS

Esta es una buena forma de correr Grub desde un diskette de rescate o un pendrive que arranque, por ejemplo, el hirens. Basta con descomprimir el grub4dos en una carpeta (\grub , digamos), cortar el arranque con f5 y ejecutarlo desde la linea de comandos:

c:\grub\grub.exe


Desde el boot.ini de Xp

Esta opcion tuve que usarla en la notebook: instalé Windows Fundamentals, y el bootmanager se comió el inicio de DOS. Además tuve problemas para instalarlo en el MBR y en el disco con wingrub (creo que es porque hay una particion de diagnóstico que tiene su propio cargador), por lo que terminé agregándolo así: Copié grldr y menu.lst a la raiz del c: y edité el boot.ini agregando la linea

c:\grldr="Grub4dos"

Desde ahí, editando el menu.lst, pude probar todas las distros que listo en el post sobre la Notebook (menos slitaz, que se resistió y terminé grabando el cd), descomprimiendolas a distintas carpetas en C:. También tengo un par de diskettes de arranque con utilidades.

Desde El bootmanager de Vista/Seven

Hasta acá, además de mis impresiones, este post no agrega nada al wiki de grub4dos. Pero para este paso se me complicó un poco, por lo que quiero detallar el howto con los pasos extra que hicieron que funcione.

El bootmanager de Vista reemplaza el ya viejo boot.ini, sumando algo de complejidad al proceso de edición. Principalmente , el problema es que los archivos de configuracion no son de texto, sino binarios, y contienen código ejecutable; por lo que se necesita de una utilidad especial para editarlos: bcdedit

Explicito un poco los pasos a seguir para agregar grub:

1) Copiamos los archivos grldr, grldr.mbr y menu.lst a la raiz de alguno de los discos (preferentemente el de inicio)

2) Abrimos una consola en modo administrador (boton derecho sobre la entrada del menú). De otro modo el comando no tendrá acceso a los archivos que hay que modificar

3)Creamos una nueva entrada de tipo bootsector
bcdedit /create /d "GRUB4DOS" /application bootsector

el comando nos da una salida:
The entry {0eb98131-e9b4-11dd-85d4-d5d709602c29} was successfully created.

Entonces marcamos el {id} (boton derecho sobre la consola -> marcar. Al presionar enter la parte marcada se copia al portapapeles) y lo pegamos en el notepad. Lo necesitamos para seguir.

4) Ahora le indicamos al bootloader la particion desde la cual vamos a iniciar
bcdedit /set {0eb98131-e9b4-11dd-85d4-d5d709602c29} device partition=c:
The operation completed successfully.

Por supuesto, el {id} lo pegamos. Yo como soy perezoso escribo la linea en el notepad y la pego entera.

5) Y le indicamos el nombre del bootsector a cargar
bcdedit /set {0eb98131-e9b4-11dd-85d4-d5d709602c29} path \grldr.mbr
The operation completed successfully.

Al final, le decimos que queremos que la opcion quede al final de la lista:

bcdedit /displayorder {0eb98131-e9b4-11dd-85d4-d5d709602c29} /addlast
The operation completed successfully.

Así queda la entrada si la consultamos con bcdedit a secas
Real-mode Boot Sector
---------------------
identifier {0eb98131-e9b4-11dd-85d4-d5d709602c29}
device partition=C:
path \grldr.mbr
description prueba

C:\Windows\system32>


Al reiniciar, tendremos la nueva opcion para elegir, y si todo va bien, tendremos grub funcando.

En caso de error, puede que quieran borrar la entrada del menú recien creada. Para esto podemos pedir la lista con bcdedit, copiar el id de la entrada a borrar e ingresar:
bcdedit /delete {0eb98131-e9b4-11dd-85d4-d5d709602c29}

y listo.

El archivo menu.lst que viene por defecto es una buena muestra de lo que se puede hacer con este juguete. Por lo pronto, a mi me sirve para iniciar el mandriva que el boot del windows seven se cargó junto con el viejo grub.

Disfruten!

Actualizacion: Reirok se dio (bien) por aludido, y nos completa el wiki oficial con este otro, que es mas completo y hace de esta una guia completamente inútil. Gracias!

jueves, 22 de enero de 2009

Manías del técnico: el rescate.

Hace unos días mi amigo el Falcon me contaba de su nuevo juguete. Se había encontrado (tirado en la calle) un cpu, que resultó ser un 486DX2 con 16 Mb de ram y 2Gb de disco.
Me contó que lo estaba restaurando porque le parecía que era la máquina ideal para hacer programacion remota de centrales de alarma; que el modem ISA de 16 Kbps (no winmodem) que tenía era de una de las marcas soportadas por cierto tipo de centralitas, que el win95 arrancaba mucho más rápido que su XP (cierto) y que podía tener la máquina en su switch KVM lista ante cualquier cosa.

Aunque a decir verdad lo de la programación remota es un proyecto igualmente remoto, para el que Falcon ya reservó una notebook (celeron 400) que le dieron en parte de pago, y ese 486 este seguramente destinado a volver a las calles en unos meses.
Por supuesto, yo no le digo a mi amigo que su juguete es una piedra inútil. En parte porque es posible que, de puro cabeza dura, termine dándole algún uso real; y en parte porque yo también me veo en sus manías.

Ahora mismo tengo guardados un par de pentium, mothers de pentium2 y otras porquerías, que tuvieron como objetivo imaginario ser routers con algun disco de linux como el coyote, pero que fueron descartadas cuando la diferencia entre un switch y un router bajó de los 15 dólares.
Y claro que me gustaría ponerle a alguna de esas máquinas la plaquita ISA del scanner de mano Genius BYN, si pudiera encontrar una excusa para hacerlo. Y claro que estaría bárbaro restaurarlas y donarlas a alguna institución "que necesite una máquina para office y nada más", sólo para aprovechar que todavía funcionan.

Por supuesto, cualquiera que reciba una máquina de esas se daría la cara contra la dura realidad al querer conectarla a internet, poner un juego, abrir un documento reciente o cualquier otra cosa que supere su capacidad, comprobando que efectivamente el equipo es inusable para casi todo.

Entonces... ¿Por qué los seguimos guardando?

Creo que lo que sucede es que nosotros le dimos uso a esos equipos en su tiempo. Aprendimos a arreglarlos y mantenerlos, y los aprovechamos lo máximo que nos permitía el conocimiento que teníamos.
Sucede que cuando teníamos la commodore mirábamos con deseo las PC 286 (XT), y cuando tuvimos la 486 quisimos el celeron.
Sucede que en ocasiones gastamos nuestros ahorros para comprar eso que ahora es basura.
Sucede que alguien que pasó horas frente a un 486 jugando al Doom, haciendo ritmos con un tracker, probando programas o programando, no puede ver un equipo viejo como basura.

El pentium que tenía cuando tuve kiosco me dió horas de música, excel y rounds de Half Life en red con amigos. ¿Cómo lo voy a sacar a la calle?
Antes se lo doy al Falcon, que seguro le encuentra algún uso.

PD: Si alguien se atreve a recordarme que hace un mes compré una compaq armada 1500, y osa llamarla "piedra inútil", "vejestorio" o similar; le aviso que lo expulso del blog!

martes, 22 de julio de 2008

Porno Geek

No voy a hablar de gadgets, porque esto es el subdesarrollo y lo último que me compré fue un MP3 genérico de 2Gb para el día del padre. Esto es porno-porno, aunque no sabría si catalogarlo cómo NSFW, a menos que tu jefe también sea un Geek.

Ayer estaba probando cierto windows Xp "Mini USB edition" (50 Mb) que circula por ahi, para ver si desde ahí se podía instalar un sistema con el método del amigo Roderick (hablando de eso... que foto te mandaste, macho!).
Probado que no se podía (faltan dlls básicas), intenté con algunos portables para ver que jugo se le podía sacar; y entre ellos probé el VLC, abriendo alguno de los videos de mi disco al azar... encontrándome con que, a falta de las librerías más esenciales para el video (openGL y esas cosas), el amigo VLC no se rinde y nos muestra esto:

fuuufffffffffffffyuyuffyf!
(Click para agrandar, ya saben...))


Ni que decir que me quedé viendo...

Para el que quiera repetir la frikada, esta visualización está disponible en las preferencias->ouput modules, chequeando "Advanced options".

miércoles, 16 de julio de 2008

Cómo ser agradecido, o cómo agregar BartPE al pendrive

Desde que empecé con el blog son varios los lectores que llegaron con la duda acerca de cómo puede hacerse un USB booteable para arrancar un Windows XP live.
Hace unos días Ignacio preguntó lo mismo, sumando el factor geek de querer ponerlo en el menú de syslinux junto con lo demás. Le contesté que no sabía lo suficiente, y al día siguiente vino con la respuesta. Y lo mejor es que no se la guardó para él, sino que eligió compartirla con nosotros, que ahora pasamos a ser sus lectores:

Copio y pego el comment (Con tu permiso, Ignacio) :

Respecto a BartPE dentro del pendrive de multiples booteos, no dire que es sencillo pero googleando un poco encontre todo lo necesario.

Primero, descargan las cosas aqui señaladas http://users.telenet.be/Robvdb/BootPEUSB_UK.htm y luego hacen SOLAMENTE EL PASO 1, para descomprimir y alistar los archivos.

Una vez tienen los archivos requeridos tanto para armar de BartPE como los requeridos por este para poder bootear desde el pendrive, siguen las instrucciones DESDE EL PASO 5 en adelante http://www.irongeek.com/i.php?page=security/dual-boot-slax-linux-bartpe-windows-usb , si descargaron el BOOT_Slax.rar provisto por 486 saltense el PASO 7 y solo agreguen dentro del syslinux.cfg una entrada asi:

label bartpe
menu label Bart's PE
kernel pe2usb.bss

Esto para que lo puedan elegir del menu.

Si siguen los pasos en estos links mencionados tendran BartPE tambien funcionando desde el pendrive.

Actualmente tengo en el pendrive un disco de inicio de Win98, BartPE y PUPPY (Tengo un notebook PB S18P de 7" el cual no tiene floppy ni CD y todo esto lo he investigado haciendo recuperaciones del sistema ><).


Y para no decir que yo no hice nada aquí, voy a hacer una reseña de los pasos necesarios en castellano, y por supuesto un pequeño aporte:

Método:

1)Bajamos Pebuilder 3110, que incluye el pe2usb y lo descomprimimos en algun lado (a partir de ahora \pebuilder3110a\)

2) a - Modo difícil) Bajamos el service pack 1 de windows 2003 server (330Mb) , lo descomprimimos, sacamos ramdisk.sy_ y setupldr.bin, extraemos ramdisk.sy_ para obtener ramdisk.sys y ponemos ambos archivos en una carpeta llamada \srsp1 dentro de \pebuilder3110a . Este es lejos el paso más tedioso a la hora de armar el bartPE booteable por usb, y el que me frenaba a la hora de experimentar. Para aquellos perezosos como yo, les doy dos opciones: pueden pasar por ese choclo o…
b - Modo chanta) Bajamos este pequeño archivo y extraemos el contenido en ..\pebuilder3110a\srsp1\ (de nada)

3) Armamos el disco con pebuilder.

4) Instalamos, si ya no lo tenemos, el boot universal con los sistemas que queramos poner.

5) Corremos pe2usb: Desde la línea de comandos vamos al directorio ..\pebuilder3110a\ y ponemos pe2usb p: (donde p: es la letra del pendrive)

6) Copiamos a la raiz del pen el archivo pe2usb.bin, renombrándolo cómo pe2usb.bss, y el archivo mkbt.exe que tenemos que bajar desde acá.

7) Arreglamos el boot corriendo desde la linea de comandos: mkbt -x pe2usb.bss p: y corriendo después bootinst.bat
8) Agregamos a nuestro syslinux.cfg las lineas:

label bartpe
menu label Bart's PE
kernel /pe2usb.bss

9) Booteamos para ver que onda.

Cabe aclarar que este método bootea el xp desde una imagen con ramdisk, y que el tiempo que tarda en cargar la imagen es bastante, asi que conviene mantener la imagen lo más chica posible. Lo mejor viene siendo agregar aplicaciones portatiles al pen fuera de la iso.

La segunda aclaración es acerca de mi fiabilidad: yo seguí el método de Ignacio y me dio un error de booteo “invalid system disk”. Es posible que esté haciendo algo mal, o que la máquina que tengo para probar no se banque el arranque (sin embargo, después del paso 5 el pen bootea en xp lo más bien). Posteo el método porque sé que a nuestro autor le funcionó, y creo que podemos depurarlo a prueba y error. Cualquier feedback en ese sentido es bienvenido.

domingo, 18 de mayo de 2008

I did it my way: Geexbox en el pendrive

Geexbox fue una de las primeras distros live que conocí, hace algunos años (creo que en el 2002), cuando The LiveCD List no tenía scroll vertical.
Basicamente, se trata de una distro que tiene como interfaz gráfica el menú de mplayer (no carga las x), y sirve para arrancar como media center. Más o menos como el quickplay de HP, pero en 9Mb. Aparte tiene soporte para la salida de TV de las placas de video, para sintonizadoras y controles remoto, y carga en memoria para dejarnos la unidad libre. En fin, una maravilla de diseño minimalista.



Hace un par de días me dispuse a ponerlo en mi pendrive, el mismo que tiene hirens, puppy, slax y nimblex. Pero una búsqueda de Geexbox usb sólo me dejó con lo que ya sabía: para ponerlo, había que grabar el cd, arrancar con F1 e instalarlo en el pendrive cómo en cualquier otro disco. Por supuesto, eso incluía formatear el pendrive.

Para acortar las cosas: yo hice todo eso en un segundo pendrive que tenía vacío. Pero para que ustedes no tengan que hacerlo, estudié ese pendrive para sacar esta pequeña guía:

Cómo poner geexbox en el pendrive desde windows:

  1. Bájese la imágen de geexbox desde el sitio oficial.
  2. Ábrala con Winrar, Winimage, MagicIso, CDmage o similar.
  3. Copie el directorio GEEXBOX a la raíz del pendrive.
  4. Bájese el boot universal para pendrive de acá e instale el boot como dice el post.
  5. Edite el archivo /boot/syslinux/syslinux.cfg agregando estas líneas:

  6. LABEL geexbox
    MENU LABEL Geexbox sda1
    KERNEL /geexbox/boot/vmlinuz
    APPEND initrd=/geexbox/boot/initrd.gz root=/dev/ram0 rw init=linuxrc boot=sda1 lang=es

    LABEL geexbox
    MENU LABEL Geexbox sdb1
    KERNEL /geexbox/boot/vmlinuz
    APPEND initrd=/geexbox/boot/initrd.gz root=/dev/ram0 rw init=linuxrc boot=sdb1 lang=es

    (no hay retorno de linea en APPEND)

  7. That´s it!


Nótese que agregamos dos entradas casi iguales: es porque si tenemos un disco SATA, éste normalmente va a ser sda1, y el pendrive sdb1. Si no, el pen se reconoce como sda1 directamente. En caso de que la unidad detectada sea otra, también se puede probar modificando a mano los parámetros de syslinux sobre la marcha (TAB mientras estamos en el menú).

Y para hacérsela de lujo (algunos entenderan la referencia), pueden también bajarse de acá el pack de codecs de mplayer (all o essential, elijan ustedes) , y poner el contenido en la carpeta /GEEXBOX/codecs, con lo que podremos reproducir casi todo lo que le tiremos encima.

Otra vez, enjoy!

Poesía básica (editado y comentado)

Pensó:
ella faltó a su último encuentro
y esa certeza se le hizo insoportable

años de entrenamiento
vinieron en su ayuda y pensó
que la frase (o el hecho)
no tenía sentido

si ella faltó a su último encuentro
entonces el ultimo no era ese
sino el anterior

y pensó
ella falto al ultimo encuentro
volviendo a empezar

cada vuelta del bucle borró un recuerdo.
enc=enc-1
while enc <>0 do return "cada vuelta del bucle borró un recuerdo"

asi se fueron
miradas
enc=enc-1
una cama se volvio a tender
enc-1
un cafe
-1

se detuvo un instante en la última vuelta
para olvidar con precisión su primer beso
cada detalle
antes de salir del bucle

Ella faltó a su último encuentro
él creyó olvidarla
en dos líneas de código.

viernes, 2 de mayo de 2008

El caloventor geek

Como los editores de Gizmodo, yo estoy siempre en la cresta de la ola tecnológica (habrán notado que también linguística, por la expresión "cresta de la ola"). Por eso (y porque hace frío) hace unos días me compré un flamante caloventor marca "Sponsor", evidentemente chino. Entre sus features encontré:

  • -Calienta poco
  • -Gasta mucho
  • -Quiere parecer un aire acondicionado

Pero el detalle de diseño geek es lo que distingue a este aparato (no le digo gadget porque es grande) del resto. Observen el indicador del temporizador (de 0 a 7 horas).

1h - 2h - 4h

Solo hay 10 clases de personas: las que lo entienden y las que no.

Por cierto, si hay algún lector que tenga claros los precios de componentes electrónicos (hace diez años que no compro un CI), quisiera preguntarle qué fortuna se ahorraron los muchachos de Sponsor por no poner un display de 7 segmentos y un integrado conversor.

Actualización 3/5/2008: Por el clamor popular, incluyo una foto completa del aparato (era la idea original, pero al momento de escribir el post no tenía la foto).

miércoles, 30 de abril de 2008

UltraVnc SC: una más y no jodemos más.

Actualización: olvide que, como dice Mirta, "el público se renueva", y lo deje pagando a Luis. Para los que llegan aquí por primera vez, cumplo en informar que esta entrada es continuación de ésta y ésta otra. Disculpen.

Supongamos que queremos crear un servidor UVNC para distribuir en una lan. Supongamos que no tenemos acceso a internet, o que la página que genera el ejecutable está caída. Supongamos que, por alguna razón válida, necesitamos crear el servidor personalizado offline. O dejemos de suponer y aceptemos que somos unos obsesivos insoportables, y que queremos tener (sólo por capricho) un método local para crear nuestro 486.exe .
Entonces rebuscamos en google y nos encontramos con UltraVNC SC client creator. Bonito. Y funciona (mejor para mi modificando a mano el helpdesk y corriendo sólo el paso 2). Pero hay algo que no nos cierra: nos exige tener instalado 7zip, y no es portable. Y hace más cosas que las que necesitamos. Así que empezamos a destriparlo para ver qué hace, y encontramos que la función que nos interesa está en un .bat (setupexe.bat). Entonces sacamos todo lo que no pertenece a ese .bat ,incluido el ejecutable con la interfaz del client creator, para quedarnos sólo con el contenido del archivo listfile.txt, mas los ejecutables nombrados en el batch. Y para que no nos pida tener instalado el 7zip, reemplazamos todos lo 7z*.* por la versión del 7zip portable (la tienen en la Lupo Pensuite, para los habitues), quedándonos con algo así:


Después de eso, sólo tenemos que modificar el helpdesk.txt y correr el setupexe.bat para crear nuestro servidor.
Y listo, ya podemos quedarnos tranquilos y dejar de alinear las servilletas en las esquinas de la mesa, y tenemos 1,12Mb ocupados con un proyecto que vamos a usar una o dos veces, con suerte.
Nos vemos!

PD: para el que lo quiera "masticado", el que yo llevo lo puse aca.

martes, 29 de abril de 2008

sábado, 26 de abril de 2008

Slax Vs. NimbleX: La pelea

Hace algunos días descubrí por medio esta entrada de Rafinguer, este otro blog: pendrivelinux. Ahí me entere de la existencia de NimbleX , que decía ser una distro liviana (200Mb), con KDE y otros escritorios, preparada para instalarse en un pendrive .
Al entrar en el sitio me encontré con algo novedoso: un generador de distribución personalizado, que desde una distro base nos permite elegir que paquetes agregar, para después bajarnos la iso. Muy bonito, lo probare cuando pueda.
Pero lo mejor fue cuando fui a la pagina de descarga, y me encontre con que hay una versión mini que pesa 100mb! Y mas abajo una de 70Mb! Con KDE!

Dispuesto a ver de que venía la de 100Mb, hice algo de prueba y error, hasta que logré correrla desde mi pendrive (el instalador formatea la llave y la reparticiona para poner grub. Como no me gustó, y no quiero que deje de funcionar el hirens, la hice arrancar con el syslinux).

Y entonces...
:

Por el premio de un lugar de privilegio en el pendrive de 486!!!!
En este rincoooon, con 200Mb de peso y una trayectoria más que probadaaaaa: Eeeeeeslax 6!!!!!
Y en este rincón, con 100 Mb de peso, y promesas de velocidad y ahorro, NiiiiiiiiiiimbleX sub100!!!!


Comienza la pelea!!!

Round 1

Slax le muestra a su padre, don Slackware, y Nimblex coontrataca mostrando sus documentos. Que momento!!!, Son hermanos!!!! Ahora slax le refiega sus módulos, y nimblex demuestra que puede usarlos también, mientras le dice "pesado, viejo y pesado". Slax muestra sus tiempos de booteo, y nimblex los mejora, Slax muestra sus aplicaciones de oficina, pero al público (yo) no le interesan....


Round 2

Arranca el segundo encuentro, con los contendientes cansados por el abrumador primer round. Giran en el ring, y se miran fijamente. Llegó la hora de hilar fino. Slax monta automáticamente unidades NTFS en modo escritura, y Nimblex también. Pero... la localización es incorrecta! Las carpetas con caracteres especiales no aparecen! Los dos púgiles se desconciertan, y llega el final del round.


Intermedio:

Los equipos de soporte de ambos contendientes están desesperados por encontrar una solución que les permita empezar el próximo round bien parados. se nota nerviosismo y tensión en el público...

Round 3

Se dirigen al centro del ring, y en el primer cruce slax, con una sonrisa, susurra un mini howto:

-Desmontar, modificar el fstab poniendo es_AR.utf8 después de locale. Guardar y montar.

El equipo de nimblex prueba el hack sin resultado, lo testea en linea de comandos y recibe un error: los archivos de localización no están disponibles. Averigua en ntfs-3g.org y desespera: no hay nada que hacer, es imposible montar en utf8 sin los archivos regionales. Nimblex los mira deshauciado, y cae al piso. Fin de la pelea!


Este primer encuentro es para el invicto Slax, que aparte de traer localizaciones para ntfs-3g trae esquemas de teclado, y me permite escribir este artículo desde OperaPortable con wine. Veremos que nos trae Nimblex (que promete, pero todavía no) en sus próximos lanzamientos.
Y, por cierto: en la página de slax hay un builder para hacer distribuciones personalizadas, pero todavía no funciona.
PD: al dia de hoy la pagina nimblex.net no funciona, pero nimblex sub100 todavía puede bajarse de acá.

domingo, 13 de abril de 2008

Geek.

Estoy un poco enfermo. Soñe que probaba extensiones nuevas de Firefox para RSS.

Yo mismo me diría "Get a life", pero me pasa que entre mis hijas, mi mujer, el laburo, la facultad y los clientes particulares no me queda mucho tiempo para buscar...

jueves, 7 de febrero de 2008

Plástico inservible parte 2: cómo hacer un probador USB en 20 minutos

Ingredientes:
  • 3 LEDs (preferentemente de distinto color.
  • 3 Resistencias (o resistores) de 1k.
  • Un pendrive quemado por enchufarlo en un puerto mal armado.
  • Un diagrama de circuito sacado de acá.(Actualización 15/8/08: La pagina está muerta, asi que puse un link a la captura que hice cuando armé el probador. Igualmente, lo único que no se ve en las imágenes es que todos los negativos están unidos bajo la cinta. Para el que no sepa leer el código de colores, las resistencias son de 1k).
  • 20 minutos.

Herramientas:
  • Soldador y estaño.
  • Cutter o trincheta.
  • Espejito portátil.

Procedimiento:
  • Se desarma el pendrive (1 minuto).
  • Se cortan las 4 pistas que salen del conector con el cutter (2 minutos).
  • Se sueldan los componentes como se ve en la figura1 (4 minutos).
  • Se hace un hueco en la carcaza con el soldador y se lo emprolija con el cutter, como se ve en la figura2 (2 minutos).
  • Se arma el pendrive (1 minuto).
  • Se esperan diez minutos para completar los veinte que debemos tardar (10 minutos).
Voila!


Figura1
Figura2


Este simple circuito nos dice varias cosas:
  • Si todo está bien prende el led rojo (aquí es donde los de diseño industrial se agarran la cabeza)
  • Si el negativo está mal puesto no prende nada.
  • Si el positivo está mal puesto prende uno de los otros colores.
  • Según dice el autor del circuito, también avisa si falta un conector de datos. Tengo que probar eso.
Para qué sirve el espejito?

Así armado como está, lo voy a necesitar para ver los leds si la abertura queda boca abajo... creo que va a ser mejor si le saco la carcaza.

Fin