lunes, 7 de enero de 2013

Ida y vuelta de grub4dos a grub2

Hace un tiempo (cuando todavía tenía cuenta en twitter) tuve un intercambio con @L_maga para ayudarla a poner una caja de contacto en un blog. Encontré una forma indirecta de hacerlo vinculando una tabla de google docs a una caja de texto, y mandando las notificaciones de actualización a mi correo. No llegué a saber si @L_maga pudo hacerlo, creo que mi entusiasmo por el tema fue mayor que el suyo.
De ese experimento surgieron un par de cosas interesantes y mucho spam. Interesante fue la búsqueda de nickoo para instalar desde imágenes vhd con winntsetup que quedó en los comentarios de este otro post, y la pregunta de nabla que da origen a éste. Les transcribo el intercambio para meternos en el tema:

Nabla:  Estoy intentando (sin éxito) cargar grub4dos desde un grub2 de un ubuntu 12.04, para desde disco duro (alojandolo en el c: de windows) poder cargar esa magnífica utilidad que es supergrubdisk, tu script lua boteador de isos, etc.Sin embargo, no lo consigo (me imagino que por diferencias en la sintáxis). He consultado en internet (consulta boot grub4dos from grub 2)y en algunos sitios se traspasa el menu.lst de grub4dos por la opción --config-file, otros con configfile, otros ponen comillas, otros no, otros utilizan la configuración de discos (hdx,msdosx), y una largo etc, etc. de variaciones para el archivo de configuración grub.cfg. No he logrado ninguna combinación válida de arranque combinando todo lo anterior.Te animo a que investigues y que publiques con éxito la sintáxis correcta.
Saludos y espero que puedas continuar con este interesante blog.
Se despide. Un fan."
486 Gracias! Te dejo una respuesta en forma de post: El iso booter maneja eso de ir y volver entre grub4dos y grub2, con dos métodos no muy elegantes pero efectivos al fin. Para salir de grub4dos a grub2 carga la iso de supergrubdisk (eso es malísimo, pero grub2 es bastante mañoso si se desempaqueta) desde el grub.cfg
Para bootear las isos desde grub2 es necesario volver a grub4dos. En realidad, el grub2 sólo me sirve porque tiene intérprete de un lenguaje parecido al C (LUA), y cada entrada del menú con las isos vuelve a un grub4dos con su configuración pasada por parámetros.
Lo que estás buscando está en el archivo m.lua, que construye el menú con las ISOs con esta forma:
search -f --set /grub.exe 
linux /grub.exe

es decir, busca el archivo grub.exe (el ejecutable para DOS de grub4dos) y pone el disco en el que está grub.exe como root, y después lo pone como kernel (llamado linux en grub2) para bootear. La diferencia con m.lua es que ahí también se pasa como parámetro una configfile (la que carga la ISO), pero supongo que si tenemos en la raíz del mismo disco que grub.exe el archivito menu.lst debería funcionar igual. Por las dudas explicito cómo quedaría la línea para cargar el supergubdisk:
search -f --set /grub.exelinux /grub.exe --config-file=\"root (hd0,0); map /iso/sgd.iso (0xff) || map --mem /iso/sgd.iso (0xff); map --hook; root (0xff); chainloader (0xff)\"
Suerte, no dudes en preguntar.486
PD: si tengo tu autorización, me gustaría publicar tu carta (no tu correo, por supuesto) y esta respuesta como post (después de chequear las configuraciones por parámetro o por menu.lst). Avisá si no tenés problema.
Nabla: Entiendo que la entrada para grub2 en el grub.cfg sería por ej. (cambiando a mi configuración de disco (hd1,1) - Disco dos partición 1 (creo que en grub 2 el disco empieza por 0 y la particón por 1)
search -f --set /grub.exelinux /grub.exe --config-file=\"root (hd0,0); map /iso/sgd.iso (0xff) || map --mem /iso/sgd.iso (0xff); map --hook; root (0xff); chainloader (0xff)\"
menuentry "Grub4DOS"{
search -f --set /grub.exelinux /grub.exe --config-file=\"root (hd1,1); map /iso/sgd.iso (0xff) || map --mem /iso/sgd.iso (0xff); map --hook; root (0xff); chainloader (0xff)\"

Probaré esta entrada con las variaciones de disco, aunque no se si puede dar problemas la utilización de linux16 y linux, y por la configuración de disco (en algun post explican que para cargar kernel linux no "reales" hablan de utilizar linux16), de todas formas lo probaré.
Si consigo arrancar sgd.iso te lo notificaría para poder postearlo como post, por mi no hay problema.
Saludos 
486: Si, la entrada en el menú quedaría como vos decís (agregando la llave de cierre, claro). Y me faltó aclararte que las isos deben ir en un directorio /iso en el mismo disco en el que ponés grub.exe. Yo uso bastante el ISObooter (si no lo uso yo entonces quien, no?), sobre todo ultimamente para bootear el hirens13 o algún disco de recuperación de w7, y no me trajo problemas. Supongo que es sobre todo porque una vez que carga el kernel al que hace chainload el grub4dos desaparece del mapa (de memoria).
Otra precisión: no se como maneja el grub2 las particiones, por eso uso search para poner el root automágicamente; pero grub4dos empieza a contar desde (hd0,0) y eso es lo que importa porque de las comillas en adelante le estamos pasando parámetros a grub4dos y no a grub2. Disco 2 partición 1 sería (hd1,0). O se puede usar una solución mas elegante y reemplazar root (hd0,0) con find --set-root /grub.exe, que hace lo mismo que search -f --set /grub.exe en grub2
 Acá se cortó la cadena de mails, pero la idea de buscar cómo se hacía quedó implantada (si, volví a ver inception hace poco, con mis hijas) hasta que encontrara el tiempo de probar lo que le aconsejé a nabla.

Y por supuesto, no funcionó. 
En primer lugar porque en grub2 no hay que modificar el archivo /boot/grub/grub.cfg, éste se genera automáticamente a partir del contenido de los archivos en /etc/grub.d/ cuando hacemos sudo update-grub (proceso que también corre cuando el sistema actualiza el kernel, llevándose puestos nuestros cambios manuales). Así que en vez de hacer lo que le dije a nabla que había que hacer, lo que tenemos que hacer para agregar una entrada personalizada al menú de grub2 es modificar el archivo /etc/grub.d/40_custom (sudo gedit /etc/grub.d/40_custom), que es como su nombre lo indica, el lugar para las entradas personalizadas. Como acá queremos agregar grub4dos el contenido a agregar debajo de las líneas existentes sería:

#sgd

menuentry "Grub4Dos"{
search -f --set /grub.exe
linux /grub.exe --config-file=/m.lst


suponiendo que grub.exe y m.lst esten en la raíz de alguno de los discos, y nuestro archivo de configuración sea m.lst. (verán que desistí de pasar la configuración por parámetro entre comillas, no pude hacer que grub4dos la reconozca). Luego debemos correr sudo update-grub para que se genere el grub.cfg. Para los mas obsesivos, esto también sirve para tener varios archivos de configuración distintos (m.lst, n.lst etc), y agregar así directamente las distintas configuraciones de grub4dos a grub2.

Con eso cargamos grub4dos. Si lo que queremos es el superIsoBooter (sin pisar nuestro boot con el instalador) lo más práctico es crear a mano la carpeta /iso, copiar m.lua a la raíz del mismo disco que tiene grub.exe (yo los tengo en (hd0,0), si lo prueban en otra avisen) y agregar a m.lst (o menú.lst, si ese es su archivo de configuración) las líneas para cargar la iso de SGD:

title SuperGrubDisk ISO

find --set-root /iso/sgd.iso
map /iso/sgd.iso (0xff) || map --mem /iso/sgd.iso (0xff)
map --hook
root (0xff)
configfile /grub4dos.lst || chainloader (0xff) 

Así tendremos en nuestro boot de ubuntu 12.10 (grub 2.0, supongo que el mismo que trae ubuntu 12.04) la entrada para cargar grub4dos con todos sus juguetes, incluyendo por supuesto el SuperIsoBooter. 
BTW, Slax7 corre de maravilla desde ahí.

Enjoy!

PD1: Nabla, si andás por ahí comentá tu experiencia.
PD2: Si son fans de la hibernación como yo, les aconsejo poner todo lo de grub4dos en una partición de windows y acordarse de desmontarla antes de hibernar.
PD3: es una buena práctica agregar al archivo de configuración de grub4dos un retorno al menú original de ubuntu, lo que nos ahorra un reinicio si algo falla o metemos mal el dedo. Basta con hacer chainload directo al boot del disco en el que está instalado grub2, algo así: 


title Ubuntu
rootnoverify (hd0,5)
chainloader (hd0,5)+1

  
Si lo tienen en el mbr sería:


title Ubuntu
rootnoverify (hd0)
chainloader (hd0)+1


PD4: Hace mucho que no ponía una posdata al pedo.

miércoles, 21 de noviembre de 2012

Militancia

Esto apareció hace un par de días en mi laburo, pegado en la ventana que se ve camino a la escalera o el baño de hombres:

Y esto apareció al otro día, al lado de la anterior
Seguro, los kirchneristas necesitamos un poco mas de diseño. 
Me gusta que aparte ponga el teléfono.

(Nótese el sticker anticacerolo)


miércoles, 17 de octubre de 2012

Crónica de medio fracaso, u otra forma de instalar windows 7 desde el pendrive.


“Cuando no se tienen recursos, más vale tener opciones” 

(Proverbio árabe que acabo de inventar)

Este blog empezó llamándose “Informática del subdesarrollo”, para tiempo después pasar a ser “Subdesarrollados”, principalmente porque no me gusta la palabra “informática”. Como sea, siempre se trató de divertirse con poca plata y algo de tiempo: cosas que se pueden hacer con un pendrive y material que se descarga desde la red, distribuciones de linux que aparte de ser libres eran free as in free beer; circuitos armados con tres leds y anécdotas sin copyright.

Y en lo técnico, se trató de buscar herramientas novedosas, divertidas y sencillas para hacer las cosas que tenemos que hacer todos (o casi todos) los días. Novedosas, sencillas, divertidas y agregaría: redundantes.
Porque está muy bien conseguir la killer app (o killer tool) que nos soluciona siempre-de-la-misma-manera un problema X, ahorrándonos tiempo (y plata, porque "el tiempo..." etc); pero es todavía mejor tener a mano un par de no tan bonitas y no tan sencillas herramientas para el momento en que nuestra killer app (o killer tool) hace agua y nos deja a gamba.

En eso andaba pensando esta mañana (mentira, pero como enganche sirve) cuando me encontré en la necesidad de instalar un windows 7 cuya iso yo tenía en mi pendrive en una máquina que no tenía sistema. 

Lo que tenía

  • Mi pendrive de trabajo: 16gb (2gb libres)

En el pendrive: 


Lo que NO tenía: 

  • Un CD o DVD virgen.
  • Un pendrive que pudiera borrar. 
  • Una máquina extra.


Mi idea original era bootear con el hirens 10, correr el WinNTSetup, apuntarlo a la iso (que la versión 2.3 clama poder abrir) y dedicarme a tomar mate mientras corría la instalación. Pero a veces las cosas no son tan fáciles en la realidad como en nuestra imaginación, y me topé con que el minixp no veia el disco de la máquina host. Malditos controladores sata. Reinicié con DART70x86, pude ver los discos pero al intentar cargar la iso me choqué conque el soporte no funcionaba tan bien como decía, o no era tan intuitivo como yo pensaba.
Entonces voy a la carpeta de wintools del hirens 15 (el menú no arrancó por falta de vb6) y con 7zip extraigo el contenido en una carpeta graciosamente llamada W7. Trato de correr el WinNTSetup apuntando al archivo install.wim, me acepta y reconoce la fuente, seteo los discos, le doy play y ni bien empieza se quiebra con un error “1” que no me deja salida.
Terco, intento con el NT6.x fast installer, un instalador que es un cmd que por lo que dice extrae el install.wim a la fuerza e instala el bootsector a lo guapo. Me desayuno en ese momento que la descarga no incluye (por cuestiones de copyright) un ejecutable llamado imagex.exe que pertenece a WAIK, y se me trunca la carrera.

Derrotado, sintiéndome del siglo pasado voy a buscar un CD para grabar la imágen desde el minixp con algún programita que seguro tengo por ahí (InfraRecorder, o BurnISO), cuando me acuerdo de Grub4dos.

Copio a la raíz del pendrive el contenido de la carpeta W7 (el archivo bootmgr y las carpetas boot y sources), reinicio, voy a la cosola de grub4dos y escribo:

find --set-root --ignore-floppies /bootmgr

boot

Pongo “instalar”, y preparo mate.


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


martes, 11 de septiembre de 2012

Rescate (mas que) emotivo del XP

Hace aproximadamente 10 años quien les escribe instalaba por primera vez windows XP en un AMD duron 800 con 128 Mb de RAM, y comprobaba que los muchachos de Microsoft habían hecho un buen laburo: un windows 2000 con mejor aspecto, más fácil de usar, con mejores drivers y compatibilidad hacia atrás con DOS y todos sus desktop managers (lease windows ME, 98 y 95). Un par de service packs más tarde el XP se convirtió en un tanque, un sistema liviano para cualquier máquina que todavía funcione, que se colgaba mucho menos de lo que hubiera querido Stallman.
Cinco años después del lanzamiento del XP, la gente de Redmond iba a lanzar una campaña que elevaría su viejo sistema al rango de leyenda: la estrategia se llamó windows Vista, y fue tan efectiva que la gente estuvo más que contenta de comprar un sistema con 6 años de antigüedad con tal de evitarlo. El lanzamiento del SP3 le dio larga vida al rey, que para la salida de windows seven en 2009 ya llevaba 7 años como mejor opción.

El windows 7 ha demostrado ser un buen sistema, que consume mucho más espacio de disco que el XP (pero a quién le importa), que funciona bien con los 2Gb de ram mínimos que cualquier pc debería traer instalados (vender una pc con seven y 1Gb de ram debería considerarse estafa) y soporta los 8 Gb que van a ser necesarios dentro de un par de años. Y tiene una bonita cantidad de drivers, y se ve bien. Ya son pocos los clientes que piden un downgrade, los que se resisten a aprender a usar la barra de inicio, los que conservan una impresora incompatible. El futuro llegó hace rato, e instalar xp en un Intel i7 es como ponerle nafta común a un Lamborghini.

Pero los años de reinado del XP dejan sus huellas, y nuestros clientes conservan en sus máquinas agonizantes sistemas comerciales, de contabilidad, aplicaciones de cálculo y demases hechas a medida por desarrolladores inubicables, empresas que cerraron o sacaron versiones que no permiten importar los datos del 2004. Programas que se pagaron a precio de oro, llaves de puerto paralelo cuyos controladores no distinguen un W7x64 de un Ubuntu 12.

Aquí es cuando la habilidad del técnico se pone a prueba. Habilidad para convencer al cliente de que a pesar de haberse comprado una máquina nueva tiene que seguir arrastrando un sistema operativo que tiene diez años, o para montar un xp en una máquina virtual modesta adentro de la bestia y explicarle al cliente (aunque sea mínimamente) el concepto de tener su sistema en una máquina dentro de una máquina.

Desde hace un tiempo esa viene siendo mi opción preferida, y descubrí que los clientes son menos refractarios a aceptar la idea de lo que yo suponía. En parte se debe también a que VMware player hace un muy buen trabajo integrando el mouse de forma transparente, y permitiendo un manejo simple de los dispositivos.

Ahora: instalar un XP dentro de una máquina virtual supone duplicar el trabajo de instalación (un poco menos que eso, claro: no hacen falta los programas y los drivers), o haberse tomado el trabajo de pasar por VMware converter un sistema físico para llevar la máquina virtual en el pendrive. Es un trabajo que muchos de mis lectores ya hicieron. Pero estoy seguro de que algunos están todavía en veremos, por lo que, como premio por haberse aguantado este choclo autoreferente que no le hace honor al resto del blog (esto es un nuevo comienzo, entiendan), les voy a dejar justo aca una descarga de 200Mb que tiene un XP SP2 limpio de cargo y culpa (aunque todavía sin bautizar), y listo para cargar en el player. Si lo usan, recuerden agradecer a su bloguero amigo, preferentemente cobrando por la instalación lo que vale una hora de trabajo extra y gastándosela en cervezas o picadas a mi mala salud.

Por si no se vio: Link de descarga.

Enjoy!

PD: Este post fue inspirado por este sistema (Sivet), su llave de puerto paralelo y su última versión made in 2005.
PD2: Supongan los que bajaron el archivo que el dueño de la máquina que virtualizé se llama Roberto García.
PD3: Avisen si el link se cae! (Es posible, tengo la sensación de que el tema de licencias es un poco mas delicado con esto que con el grub4dos).

PD4: Feliz día a todos los maestros!
PD5: A la memoria de Salvador Allende.
PD6: I'll be back.

lunes, 21 de mayo de 2012

¿Qué pasó?



Anónimo:

Este blog sirvió desde un principio como descarga de inquietudes personales, técnicas y de las otras; y como backup de herramientas y métodos de laburo que me ayudaran en mi trabajo como técnico.

Y lo que pasó es que hace un tiempo que no incorporo herramientas a mi pendrive, salvo quizás por las (honrosas) excepciones de un batch uninstaller, una iso de rescate para windows 7 (DaRT70.X86) que reemplaza la consola de recuperación pero con más éxito en el arranque (y funciona muy bien con el iso booter que habrán visto en este blog) , y una actualización del glorioso autoruns de sysinternals que permite correrlo desde un live en un sistema offline.

Hubiera escrito sobre todo eso si no fuera porque una búsqueda en google de cualquiera de los términos nos lleva a un artículo muy explicativo, o a una descarga sin misterio.

Sigo usando (mucho, y para todo) grub4dos, probando sistemas live (Android x86 funca bastante lindo en mi netbook) y frikeando de a ratos con problemas nuevos, pero en su momento no encontré la forma de escribirlo mejor que la fuente de la que lo saqué. Nunca quise hacer un blog de traducciones, o uno que explique "como instalar el antivirus paso a paso, con capturas". Somos grandes.

No quiero decir con esto que bajamos la persiana (me, myself and i). Este espacio es mío, y va a seguir abierto para consulta, para lo que quieran preguntar los ocasionales que pasen por acá, y para volcar lo que se me cante en el futuro.

EDIT: Ya no estoy en twitter. Ya no estoy en facebook. Con suerte me dedico a volver a este espacio.

sábado, 16 de julio de 2011

Consejos gratuitos para la hora de cobrar


Cuando dos técnicos de PC se sientan por casualidad (por casualidad o no, tanto que se sienten como que sean colegas) a compartir un mate o birra por mas de media hora, hay un tema de conversación que siempre de algún modo termina saliendo: el tema de los honorarios,.
Y yo no se si es que el viento nos amontona o es una sensación común a los laburantes independientes que tienen que lidiar con clientes, pero mis amigos y yo vivimos con la sensación de estar cobrando de menos.

Por eso, para mis amigos y para mi, para que lo recordemos a la hora de tirar un precio, para que lo completemos con el tiempo, van estos consejos gratis, que doy gratis porque estoy seguro de que nadie me pagaría por darlos, aunque quizás me pagarían mejor si los siguiera.

1) (Y principal) El laburo que hacemos es técnico, y saber distinguir el monitor de un televisor tiene su valor. No por nada todos nos pasamos horas instalando todo lo que nos cayó en las manos en vez de jugar al quake, no por nada sabemos arrancar el hirens y los pibes de 13 nos rompen el culo en el counter-strike.

Si estamos cobrando, y suponemos que podríamos vivir de esto, nuestra hora de trabajo debería valer lo suficiente como para mantenernos. Saquemos una cuenta, que nos gusta. Un empleado público (administrativo sin antiguedad) gana aproximadamente $3500 por 6 horas de trabajo de lunes a viernes*. Eso son 30 horas a la semana por $900= 30 pesos la hora.Por supuesto, este empleado tiene estabilidad, obra social, vacaciones y jubilación incluidas en sus 30 pesos. Digamos entonces 40 para equiparar. Es un piso bastante bajo, pero nos dice que una instalacion que nos lleva 3 horas no se puede cobrar menos de 120 pesos.

*Es cierto que se complica vivir con 3500 al mes, sobre todo si uno alquila y tiene, pongamos, un auto con el que trabaja y algún hijo que mantener. Pongo el objetivo en un mínimo para resaltar el punto.

2) La asistencia telefónica también es trabajo. Hay clientes que solo llaman cuando se les rompe algo y clientes que nos tienen al teléfono con el catálogo de Compumundo para ver qué notebook se compran. Y casi nunca dicen “que te debo?” antes de cortar. Por lo que podemos tener dos posturas: o les cobramos la próxima vez que nos traigan una máquina para arreglar (que puede ser nunca, claro) o ponemos la hora de laburo a 50 pesos.

3) Los trabajos tienen garantía. Al menos algunos de nosotros nos hacemos responsables por las máquinas y partes que vendemos, y los trabajos que salen del taller. Y eso es algo a tener en cuenta a la hora de presupuestar. Puede que el cliente conecte la máquina y no nos llame hasta la próxima o puede llamar al otro día porque no le anda el programa x, o porque el teclado quedó configurado distinto al que tenía, o porque conectó la impresora y no anduvo, o porque el disco que recién pusimos se partió al medio. Hay que ser explícitos a la hora de aclarar qué esta incluido y qué no, pero no tanto como para que el cliente piense que nuestro trabajo falla muy seguido. No es fácil. Y otra vez, el tiempo perdido en garantías se cobra después, o mejor antes. Digamos 60 pesos la hora.

4) Digamos que un cliente nos pregunta: A cuanto una reinstalación del xp? Nosotros nos atenemos al presupuesto como está hasta ahora, y teniendo en cuenta que la reinstalación se puede hacer en unas 2 horas decimos “120 pesos”.
El cliente acepta el presupuesto, y nos trae la maquina que hay que reinstalar. Es un pentium 3 con un disco de 10Gb y 128Mb, lleno hasta la manija de fotos. La lectora de CD no funciona desde hace años y la mother no bootea desde el pendrive. Al encender el equipo nos damos cuenta de que el trabajo va a tardar al menos 4 horas, entonces llamamos al cliente para acomodar el presupuesto. Si es mas que el doble, puede que el cliente (que mantiene el pentium 3 y no piensa gastar un peso) se lleve la maquina con el trabajo. Si es menos estamos regalando nuestro trabajo. En ambos casos estamos perdiendo plata, salvo que le cobremos por el presupuesto (que levante la mano el técnico independiente que pueda).

Y este es un ejemplo afortunado: también puede ser que la reparación se extienda al doble o triple del tiempo que estipulamos porque si, porque la mother no acepta el desatendido y hay que hacerlo a mano, instalar service packs, bajar drivers etc, porque el antivirus que instalamos se niega a arrancar y hay que buscar uno que lo haga, porque la webcam dice ser X pero el chip está tocado y el driver oficial no funca, y (coloque aquí su anécdota de horas perdidas).

Entonces, promediando las reparaciones que nos llevan mas tiempo de lo que pensábamos con las que nos llevan menos, salimos perdiendo otra vez. Pongamos entonces 70 pesos la hora.

5) A veces no podemos solucionar las cosas en nuestro taller (que por lo que vimos acerca de los tiempos suele ser lo mejor), y tenemos que ir a lo del cliente. Esto supone tiempo de traslado, movilidad, logística para encontrarlo o para encontrar al usuario que sabe que le pasa al equipo. Todo ese tiempo invertido se cuenta al la hora de cobrar, o de presupuestar, por lo que la hora de trabajo a domicilio no puede cobrarse menos de 90 pesos. Puede hacerse quizás un descuento en la segunda hora dividiendo el gasto del viaje, pero eso ya lo dejo a su criterio.

Invito a cualquiera que ejerza de técnico a exponer su tarifario, su criterio o su sistema. estoy seguro de que sus consideraciones van a servir para que un colega cobre mejor!

Enjoy! O mejor: charge!

PD: Cuanto son 70 pesos? Para aquellos colegas que no sean de Argentina, o para aquellos que lean este divague en el incierto futuro (buuuh!), 70 pesos son, aproximadamente:

15 litros de nafta super,
2 kilos de carne para hacer al horno,
14 litros de leche entera, etc.
Saquen ustedes la cuenta según su pais.

PD2: Hay un par de cuestiones que surgieron en los comentarios y que me parece atinado presentar acá.

1) Cuando la reparación es una pavada (por ejemplo llegar a lo del cliente y comprobar que la maquina está desenchufada, caso real BTW), y uno tiene la tentación de cobrar 20 pesos por el viaje, conviene no hacerlo. Es mejor cobrar una visita completa o no cobrar nada a que el cliente se quede con la impresión de que nuestro trabajo vale 20 pesos. Sentando precedentes así tenemos mas probabilidades de perder al cliente cuando queramos cobrar lo que el trabajo vale realmente o peor, abrimos la puerta a que el cliente nos recomiende a otros no porque trabajamos bien sino porque cobramos poco. Y eso nos lleva al punto...

2)Cobrar lo que el trabajo vale tiene otro efecto secundario positivo: espanta a los clientes con el bolsillo mas duro. Estos son los que siempre van a querer hacernos trabajar "de onda", los que nos van a llamar por cada pavada que les pase, los que van a cambiar de técnico ni bien encuentren otro que cobre mas barato, y van a volver con los problemas mas difíciles, los que el tecnico barato no puede solucionar; los que nos van a pedir un presupuesto para una máquina nueva cada seis meses y van a terminar comprando una en Carrefour. Hay que escapar de estos para tener tiempo para clientes fieles, que sepan lo que vale lo que hacemos y que confíen en que lo hacemos bien. Hay que cobrarles por todo y alegrarse cuando nos dicen "bueno, después te llamo...".

Enjoy!

jueves, 14 de abril de 2011

Dragones.

En la película “Cómo entrenar a tu Dragón” hay un momento en que al protagonista le muestran un libro que tiene un extenso catálogo de dragones, con su peligrosidad, formas de ataque y modo de combatir. Nuestro héroe no tarda en comprobar que el libro es inútil porque a pesar de contener mucha información acerca de cada dragón, a la hora de enumerar métodos de defensa todos decían lo mismo: “Muy peligroso. Tirar a matar”.

Los que hacemos soporte técnico conocemos la sensación. Quizás de un modo menos épico pero no sin entusiasmo, nos enfrentamos con distintos tipos de alimañas, entre las que cuentan los virus. Y no han sido pocas las veces en las que, buscando algun método eficiente para deshacernos de alguno, nos topamos con el famoso “tirar a matar”.

La mayor parte de las páginas con información acerca de virus y métodos de remoción son como estas: Ejemplo1 , ejemplo2 .

Estos son los primeros resultados de una búsqueda acerca de la dupla de virus mgking.exe/arking.exe, conocidos y molestos virus de pendrive. Podemos notar a simple vista que las páginas están hechas con una plantilla, en la que se han rellenado los datos de los archivos y claves de registro que crea el virus, y el modo en que los antivirus lo llaman.

Y es completamente entendible, claro. Los virus mutan mucho mas que los dragones, y mantener un archivo extenso es una tarea que reite de Sísifo. Los pobres vendedores de lo que sea que vendan estas páginas tienen demasiado trabajo persiguiendo las búsquedas mas realizadas, tratando de recibir visitas a costa de agrandar su catálogo de páginas todas-con-la-misma-recomendación.

Debo decir que al menos sus sugerencias son interesantes (sobre todo en el primer link) : arranque en modo seguro, borre tales archivos, trate de matar los procesos, borre las claves de registro, use process explorer, pase el ccleaner. Eso es tener suerte en la búsqueda, porque lo mas usual es “Instale nuestro antivirus y nuestro antimalware, haga varios escaneos completos del sistema”, proceso que por supuesto lleva varias veces mas tiempo que reinstalar todo lo que hay en la máquina, y es recomendable únicamente en el caso de tener que perder mucho tiempo pero que parezca que estamos haciendo algo: “estoy pasando el antivirus”.

En el ABC de cualquier técnico/soporte que no resuelva todo reinstalando o tirando una imagen están todos estos métodos, junto con otros que los complementan o los completan: Borrar temporales y archivos sospechosos desde un miniXP, deshabilitar entradas con autoruns, restaurar asociaciones con FixEXE o habilitar la visualizacion de ocultos con RRT.

Estas acciones son similares para todos los virus que nos encontramos, y configuran el mínimo a probar antes de tomar la decisión de reinstalar.
Ya todos sabemos que no tiene sentido mirar el manual.

PD: un apunte sobre mgking/arking: una vez que entran en el sistema, el antivirus ya no los detecta, pero si captura los autorun.inf, b9v.exe y demases que estos amigos colocan en TODAS las unidades, sean discos físicos o de red. Por eso empecé a extender el consejo acerca de la carpeta \autorun.inf a las unidades de disco comunes. Si les interesa, aca les dejo un script para limpiar/crear los autorun.inf despues de deshabilitar el virus:

cls
echo Borrando/creando autoruns.
for %%d in ( C D E F G H I J K L M N O P Q R S T U V W X Y Z ) do (
if exist %%d:\autorun.inf attrib -s -h -r %%d:\autorun.inf
if exist %%d:\autorun.inf del /A:S %%d:\autorun.*
mkdir %%d:\autorun.inf
)
echo Presione cualquier tecla para salir...
pause > nul


Disfruten!

lunes, 11 de abril de 2011

Qué le pasó al Hirens?

Hace un par de años (allá por febrero de 2009), el autor de este blog se separaba del amor de su vida, y escribía acerca del hirens 9.7 un apunte intrascendente acerca de cómo bootearlo desde el pendrive. Meses después mencionaba el hirens 10 de pasada en un post, sin dedicarle mas tiempo por ser mínimo el cambio de versión. Entre nosotros, también era mínimo el cambio en el autor; no porque no fuera necesario sino porque éste no sabía que lo fuera. Aunque acá estamos hablando del hirens, claro.

Ocupado en armarse una vida, mas interesado en sobrevivir que en postear, descargando sus obsesiones en otras redes, quien escribe alquiló un departamento, armó una rutina, se equivoco parejo y trató de seguir adelante sin chequear si había nuevas versiones del hirens, y tampoco si la vida que llevaba se prestaba para un upgrade.

En agosto del 2010 ese recorrido lo dejó donde había empezado, con diez kilos y varias manías de menos. Al tiempo de escribir la última entrada de este blog (llamada oportunamente “El regreso del Freak”) había vuelto a casa con mi esposa. Y si, soy yo quien escribe.

Mientras tanto, en algún punto del recorrido, el hirens que me acompañó desde el inicio del blog también había cambiado, abandonando los vicios de pirata, creciendo en tamaño y agregando utilidades.

Cual fue el motivo de su cambio? No lo se, como tampoco tengo claro cual fue el mio. Quizás haya sido simplemente el momento propicio.

Ahora, para los que como yo mantuvieron la versión 10, improviso un mínimo changelog:

  • Se eliminaron las aplicaciones comerciales: no tenemos, por ejemplo, el Acronis Disk Director y el Ghost. Se reemplazaron por sucedaneos gratuitos (no siempre con éxito)
  • Se agregaron un par de distribuciones de Linux (basicamente versiones de Recovey Is Posible, RIP).
  • Se modifico el mini XP para incluir drivers para placas wifi, entre otras mejoras.
  • Se agregaron MUCHAS utilidades para correr desde el miniXP, entre las que destacan el Partition Wizard Home Edition (que en este caso, hace de buen reemplazo del Acronis), la RRT (remove restrictions tool, para quitar restricciones del registro) y WinNTsetup, una utilidad de la gente de MSFN que automatiza la instalación de cualquier windows XP (inclusive los n-liteados) desde el propio miniXP que estamos arrancando (en el link tienen una versión que además instala vista/seven).


En resumen: tanto el autor de este blog (en adelante yo) como el Hirens Boot CD cambiamos. Habrá quienes se interesen mas por el primer término y quienes estén mas atraidos por el segundo. En todo caso, elijan el que quieran.
El nuevo hirens creció en tamaño, mientras yo recuperé con creces mis 10 kilos. Aquel perdió algo de funcionalidad en máquinas antiguas pero, a diferencia de mi, puede convivir en nuestros pendrives con su predecesor via el booteador de ISOs por aquí conocido.
Ambos perdimos velocidad y ganamos experiencia.

Espero que Hirens también sea más feliz.

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.