Mostrando las entradas con la etiqueta pendrive. Mostrar todas las entradas
Mostrando las entradas con la etiqueta pendrive. Mostrar todas las entradas

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, 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.

viernes, 11 de septiembre de 2009

Cómo preparar un XP instalable desde USB en 3 pasos / Destripando WinSetupFromUSB



Los muchachos de MSFN y Boot-Land nos simplifican la vida poniendo en una gui sencilla de usar todo el conocimiento de sus foros sobre instalacion de xp desde pendrive, bla, bla, bla, etc.

Y que hay que hacer?

1) Bájese el WinSetupFromUSB desde acá e instálelo en su máquina.
2) Dígale al programita dónde está su cd de instalacion de windows y su pendrive/disco externo. Apriete GO.


3) Mientras espera, ponga un hielo grande en un vaso. Agregue una medida de Fernet Branca y cuatro o cinco de Coca Cola. Tómeselo y disfrute mientras espera.

Listo!

Y basta de intro y how-to. Pasemos a lo que nos interesa: Cómo lo hacen?

Básicamente, WinSetupFromUSB es una interfaz que maneja otras herramientas que ya conocemos. Espiando en su directorio de instalacion encontramos cosas que ya vimos (y llevamos en el pendrive por las dudas): grub4dos, syslinux, pe2usb, HP format tool, y otras que conocimos por bootland como RMprepUSB. También hay scripts y programas para preparar la instalación, y por lo que veo algún driver que reemplaza al que debíamos conseguir del SP1 del windows server 2003.

Así que cuando preparamos la instalación el programa se encarga de modificar lo necesario y copiar todo al pendrive, y además instala un boot basado en grub4dos, que divide la instalación en dos partes, arrancando la primera desde setupldr.bin (as usual) y la segunda desde el mismo pendrive corriendo ntldr, como vemos en su entrada del menú:

title First part of Windows XP Professional setup
root (hd0,0)
chainloader (hd0,0)/$WIN_NT$.~BT/SETUPLDR.BIN
savedefault 1

title Second part of Windows XP Professional setup
root (hd0,0)
chainloader (hd0,0)/NTLDR
savedefault

Todo muy lindo hasta acá. Ahora las malas noticias: La instalación sólo funciona tal como viene en mothers nuevas (que por lo menos reconozcan el pen como (hd0,0) y no como (fd0) ) y si bien dice soportar desatendidos, es necesario que hayan sido armados dejando habilitada la opcion para instalar desde DOS (que no está en nuestros desatendidos favoritos, como el winchiquito o las versiones updateadas del UE7). Como trampa, es posible engañar al instalador para que nos permita crear el usb copiando de un cd de windows original los archivos faltantes (todos los que empiezan con "winnt"), pero aun si esto pudiera hacernos pasar de la pantalla de carga de drivers (que yo no pasé) de todos modos creo que sería un dolor de cabeza: los desatendidos mas populares son muy dependientes del cd. Quizás los técnicos debamos esperar a que, ahora que existe la herramienta, algun amigo como BJ se ponga a armar el paquete con los scripts actualizados para pendrive.

Y entonces... por que tanto entusiasmo?

Bueno; para mi lo mejor que tiene este programa es algo que ya alabé en el instalador de Geexbox, y antes en unetbootin: por medio de una interfaz intuitiva, nos deja con configuraciones que funcionan para hacer las cosas que queremos hacer. Una mirada al menu.lst, por ejemplo, nos revela el modo más práctico de bootear desde una imagen iso que tenemos en el pen:

title Start AcronisMedia.iso from partition 0
root (hd0,0)
map /AcronisMedia.iso (0xff) || map --mem /AcronisMedia.iso (0xff)
map --hook
root (0xff)
configfile /grub4dos.lst || chainloader (0xff)

Esto es para mi como tener a Jaclaz (famoso en los foros que mas me interesan, y primero en la lista de agradecimientos) dictándome los comandos!
Vemos que mapean la iso a la dirección (0xff), y en la misma línea hacen lo mismo pero montándola en memoria (supongo que esa doble barra significa que hacen una cosa o la otra, segun cual funcione. Quizas sea mucho suponer). Después cambian la raiz a la iso montada, y al final se tiran a cargar bien una configfile de grub o directamente intentan cargar el bootsector con chainloader. Esta segunda opción es la que funciona con esta iso en particular (el cd de recuperacion de Acronis True Image). También funca para el silverdisk, y se me hace que entre las dos cubren gran parte de los booteables. Por suspuesto, también podemos hurgar un poco en la iso y escribir la linea correcta, que para algo venimos practicando con grub4dos!

Y no los molesto más. Si les interesa comentar lo que pudieron hacer arrancar (y cómo) los voy agregando al post. Por mi parte, pienso probar hirens, puppy y slitaz para empezar, ni bien tenga algo de tiempo para algo de diversion geek.

Mientras tanto, disfruten!
(Y si no pueden invitar, al menos cuenten).

viernes, 21 de agosto de 2009

Virus de pendrive... en pendrives, donde va a ser!

Hace algunos años, los tecnicos de pc tuvimos que empezar a lidiar con los virus. En un principio se trataba de cadenas de código autoreplicante, que se anexaban a los ejecutables y los "infectaban". En esa época los antivirus se encargaban de escanear y limpiar los ejecutables y, cuando las rutinas de deteccion descubrían el virus antes de que estuviera lista la rutina de desinfección, colocar el archivo en cuarentena esperando la cura.

Los mecanismos de infeccion eran azarosos para los que no andabamos por BBSs: el único modo era contagiarnos mediante algun diskette con archivos infectados, o un virus del sector de arranque. Cuando se popularizaron las grabadoras, quizas alguno haya llegado por un cd. Después vinieron los virus de macros en documentos de office, y luego la fauna de troyanos que conocemos ahora.

A mi siempre me interesaron los aspectos de ingeniería social en la distribución, es decir, aquellos que en vez de explotar vulnerabilidades del sistema se encargaban de explotar debilidades del usuario. Para nombrar un par, los archivos de extensión doble del tipo "miramisfotosentopless.jpg.scr" en el msn, y las páginas de falsos escaneos de disco como la que vimos aca me parecen ideas geniales.

Hace algún tiempo (dos o tres años aca en argentina, o desde que empece el blog) se popularizaron los discos extraibles en cualquiera de sus formas: pendrives, mp3, tarjetas de memoria etc, y los hacedores de virus observaron ese crecimiento con los ojitos brillantes por la emoción. Entonces se dedicaron a crear virus de pendrive.

Desafortunadamente para ellos, los diseñadores de pendrives y sistemas operativos ya no son como entonces: los discos extraibles no tienen autorun automático como los cds, y no se puede infectar el bootsector como en los diskettes. Es decir, que no hay manera de que el pendrive con virus infecte a la máquina sin intervención del usuario. Con solo enchufarlo no basta.

Y como cualquiera sospecharía de un archivo llamado "miraestevideocachondo.wmv.exe" en la raíz del disco (bueno, no cualquiera, seguro que algunos le harían doble click si se encontraran el pendrive tirado, pero digo cualquiera con dos dedos de frente, se entiende...), nuestros amigos tuvieron que buscar otras formas, principalmente de ingeniería social, para que el usuario ejecute el virus por si mismo en el uso normal del pen.

Detallo aqui los dos métodos que vi "in the field", con la esperanza de que mis lectores-técnicos de campo agreguen las joyas que hayan encontrado:

1) El viejo autorun.inf: Como ya vimos en este blog, es posible crear un autorun para asignar resultados específicos a las acciones sobre el pendrive. Así, un doble click al disco extraible desde Mi PC ejecuta sin preguntar el archivo que se indique en la linea open= o shellexecute= , mientras que si hacemos boton derecho sobre la unidad tendremos un menú que podemos personalizar a gusto. También se ejecuta la linea open= si aceptamos la accion predeterminada en el cuadro de dialogo de reproduccion automágica.

Usando este mecanismo, muchos virus de pendrive (la mayoría) se copian a la raiz del disco, y crean un autorun.inf oculto, que ejecuta el virus ante cualquier acción del desprevenido usuario. De estos vi también algunos que crearon una carpeta (oculta también) que pretendía pasar como una de sistema (recycler, por ejemplo) para dormir tranquilos ahi dentro.

El especimen mas raro que encontré de este tipo es uno que consistía en un autorun.inf solitario (sin ejecutable a la vista) ,de 140k. Al abrirlo, aparecía la maraña de caracteres especiales que uno ve cuando abre un binario con un editor de texto, con alguna cadena legible a lo largo del archivo. Me imagino que sería un combo autorun/virus, lo cual sería interesante para tratar de descubrir como corno ejecutas un .inf, o algún método para evitar el borrado del autorun, lo cual sería inteligente, o algun truco para hacerme creer eso, lo cual sería humillante. Elijan la que quieran.

2) La nunca bien ponderada falsa carpeta: Esta la vi ayer, y me parece genial. Una compañera de laburo/cliente le compro un Mp5 a la hija, y me lo trajo porque no podía cargarle música, ni sacar las fotos de adentro, y el antivirus saltaba cada vez que quería abrir una carpeta. A pesar de eso, el aparato funcaba. Cuando lo conecté encontré algo como esto:


El fucking virus había ocultado las carpetas reales, y había creado sendos ejecutables con el mismo nombre e icono! También había un ejecutable suelto y un autorun, para no dejar vector de ataque sin usar. El usuario entraba al aparato, y solo podía ver los ejecutables, por supuesto, sin las extensiones… lo cual es un excelente modo de hacer que cualquiera haga doble click sobre tu virus.

A pesar de la inventiva de los muchachos, hay que decir que cualquiera de estos métodos queda al descubierto cuando tenemos acceso al pendrive con vista de extensiones, archivos ocultos y de sistema; y que es posible (por ahora, al menos) explorar cualquier pendrive sin riesgo abriendo el explorador de windows a mano, y simplemente eligiendo la unidad con un click en el arbol de directorios. Por supuesto, en una máquina limpia! Porque teniendo control sobre la maquina host, cualquiera puede ocultarte lo que no quiera que veas.

Para terminar, les dejo una segunda recomendación: inmunicen su pendrive, y los de sus usuarios. No es necesario instalar nada, ni llevar un antivirus. Basta con seguir el método de CoskiBukowski, creando una carpeta en la raiz con el nombre autorun.inf, asi cuando ponemos el pendrive en una maquina con virus el maldito no puede crear su autoarranque, y el pendrive colecciona los ejecutables sin contagiar. Esto nos deja sin el bonito autoarranque, pero nos libera de revisar el pendrive cada vez que pasamos por una maquina sospechosa.

Fin. Enjoy!

jueves, 6 de agosto de 2009

Uno de herramientas

En nuestro laburo diario como técnicos, hay ocasiones en las que tenemos que poner a prueba nuestra inteligencia, inventar soluciones, hacer uso de nuestra experiencia en el manejo del usuario o simplemente aprender algo nuevo "on the fly". Estos son los trabajos que mas nos gustan y mas nos desafían. También son aquellos por los que cobramos siempre menos de lo que valen. Y son los mas escasos.

Asi, que, en general, los trabajos que tenemos que hacer son rutinarios y aburridos: reinstalar un sistema, cambiar una fuente, instalar un router wifi, compartir una impresora ,cambiar un antivirus o armar un equipo nuevo. Por eso está bueno disponer de herramientas y técnicas que nos permitan hacer esas cosas de un modo simple y rápido, mientras jugamos al Call of Duty o leemos a Feinmann en pdf (se nota que no tengo internet en casa todavía).

Como ejemplo, les presento tres herramientas que uso en casi cualquier trabajo sobre un sistema en uso: reinstalaciones, limpieza de virus, restauración de imágenes de ghost y otras.


1) Windows XP live USB Angelina edition: creo que su nombre lo dice todo. Lo baje de Taringa! hace un tiempo, antes de que saliera el hirens 9.7, y lo sigo prefiriendo sobre el mini xp que viene ahi, aunque es mas limitado. No tiene soporte para red, y algunas aplicaciones no arrancan por falta de librerías, pero el wallpaper lo vale!

Llámenme baboso...

Lo pueden conseguir acá, y buscando "XP Angelina" salen varios más.
En el rar esta la imagen, y el PeToUsb configurado para ponerlo en el pendrive. Por supuesto, yo lo tengo arrancando desde el Grub4Dos del hirens con las lineas:

title Angelina
find --set-root /minint/setupldr.BIN
chainloader /minint/setupldr.BIN

Lo uso principalmente para examinar el disco en máquinas en las que el windows no aranca, para hacer limpieza de documentos antes de reinstalar y para jugar al solitario (portable, claro) mientras se hace o se restaura una imagen de ghost. En tareas de limpieza es ideal con la próxima herramienta...

2) Scanner: Una joya que encontré en la Lupo Pensuite. Es uno de los muchos programitas que nos muestran el disco de alguna forma mas o menos gráfica. En este caso, en forma de anillos. Una muestra recursiva: el pendrive que tiene el programa:

Gasto casi 19Mb en la iso del geexbox... porque lo vale!

Es asi de simple: sirve para ver porqué un XP que parece limpio y se usa "solo para navegar" pesa mas de 20Gb; para encontrar las carpetas de descarga (por ejemplo, viejos temporales del emule, o carpetas de música y películas), y desde el Angelina sirve para borrar sin problemas el archivo de intercambio, la informacion de restaurar sistema, los temporales de internet y todo lo que no nos parezca innecesario antes de hacer el backup de un sistema usado. La verdad, creo que son pocas las maquinas en las que no termino corriéndolo para ver que onda. Lo pueden bajar desde acá.


El otro infaltable a la hora de rescatar documentos de una maquina con virus (o de una que no arranca) es el archiconocido Total Commander. Para los perdidos que no lo conocen, es un clon del viejo Norton Commander pero para windows. Es muy útil para mover grandes cantidades de información a golpe de F5, y tiene una ventaja importante con respecto al explorador de windows: cuando falla la copia de un archivo por cualquier motivo, nos permite continuar con el siguiente item. Además nos permite sincronizar directorios, puede leer y copiar desde archivos comprimidos y tiene funciones para partir y combinar archivos (split/join). Una belleza!
Para los que no lo tengan, pueden bajar una versión shareware funcional de la página oficial, o una versión portable y trucha desde acá.


Y ahora que particionamos, limpiamos, backapeamos y estamos reinstalando un desatendido en la maquina del cliente, ya podemos bajarnos la iso del último puppy para poner en el pendrive. Y para probarla de inmediato, podemos usar Mobalivecd!

Trabajen... y disfruten!

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, 3 de abril de 2009

Resolviendo incompatibilidades del hirens 9.7 y grub4dos

Desde que escribi el apunte acerca del hirens 9.7 y grub4dos lo llevo conmigo en un pendrive, y tuve la oportunidad de probarlo en varias máquinas. Comprobé (al igual que algunos de los lectores de este blog) que el arranque es, digamos... mañoso. Tiende a fallar en máquinas que tienen éxito booteando syslinux, o directamente sectores de arranque de dos o ntfs. Por suerte también llevo encima otro pendrive con hirens 8.5 y slax... pero no es el caso. Nosotros queremos el oro y el moro, la chancha y los veinte. Y queremos que funcione el 9.7 con su XP live en las máquinas difíciles.

Por eso, porque somos tercos y obstinados, y porque un geek que se precie no se deja vencer por pequeñeces (en estas cosas al menos), es que vamos a poner el nuevo Hirens en el pendrive, pero con el método "old school", es decir booteando en el viejo y querido D.O.S.

Aquí un mini howto:

  1. Extraemos el contenido de la iso del hirens en una carpeta, digamos /hirens.
  2. De ahí extraemos el contenido del archivo /hbcd/boot.gz (que contiene el arranque en dos) a otra carpeta, digamos /boot. Es necesario extraer boot.img primero (puede ser con winrar) y después abrirlo con algún programa para manejar imagenes de diskette. Yo uso winimage (shareware).
  3. Formateamos el pendrive con la utilidad de hp, que pueden bajarse aca o aca. Tenemos que chequear "Create a DOS startup disk" y apuntar a la carpeta /boot para que saque de ahi los archivos de arranque.
  4. Copiamos al pendrive el contenido de las carpetas /hirens y /boot. Cuando copien /boot les tiene que pedir sobreescribir io.sys, msdos.sys y command com. Por las dudas pongan que no.
  5. Bajamos el ultimo grub4dos y extraemos a la raiz del pendrive los archivos ,grub.exe, grldr y menu.lst.
  6. Agregamos al menu.lst la linea para bootear el xp

    title Mini Windows Xp
    find --set-root /HBCD/XPLOADER.BIN
    chainloader /HBCD/XPLOADER.BIN

    (o si ya tenemos el grub de la pagina del hirens, usamos ese menu.lst)
  7. Y ahora la única novedad con respecto a los varios tutorials que hay acerca del tema en este blog: agregamos grub como opcion en el menu del hirens: esto se hace editando el config.sys que tenemos en la raiz del pen, agregando esta linea. después de la entrada [MOREMENU]:

    [MOREMENU]
    menuitem=GRUB, Grub del hirens9.7
    submenu=BOOTTOOL, MBR (Master Boot Record) Tools...
    ...
    y al final del archivo

    [GRUB]
    device=GRUB.EXE

Esto agrega una opción "Grub" como primer ítem del menú "Next..." del hirens, y ejecuta grub4dos desde DOS cuando la elegimos. Así nos evitamos el problema de que grub no encuentre grldr, porque estamos trabajando desde la particion y no desde el MBR (la rima es involuntaria). Aclaro que hubiera preferido ponerlo como opcion en el primer menú, pero parece que hay un límite en 10 items. Fijense dónde les resulta mejor (por ahí mover uno de los submenus a "Next..." para hacer un lugar).

Para los que ya hayan puesto el hirens con el método viejo (como el amigo Norberto) , los pasos son menos: basta con copiar los archivos del boot.img y el grub.exe a la raiz del pendrive, modificar el config.sys y sacar el grub del mbr. Este paso puede hacerse booteando hirens con el probador de Ubcd4win (que debería funcionar, porque no depende de la bios) , arrancando hirens->next->dos->dos , cambiando a A: e ingresando fdisk /mbr, y sys c:

Avisen como les fue
Enjoy!

Actualización: al igual que con la otra entrada acerca del hirens 9.7, todo lo dicho en este apunte se ve superado por una línea al pie de la pagina de Hiren sobre el tema

Troubleshoot

If you get GRLDR error then use syslinux to boot grub4dos

En ese caso los pasos son:
  1. Bajar el syslinux de hirens y decomprimirlo en cualquier carpeta.
  2. Ejecutar RunMe.bat e ingresar la letra en la que se monto el pendrive.
Esto instala syslinux en el mbr del pen, y lo setea para correr grub.exe (incluido en el paquete).
Again, no tan entretenido, pero definitivamente mejor.
Suerte!

miércoles, 25 de febrero de 2009

Hiren lo hizo: cómo poner el nuevo hiren 9.7 en el pendrive usando grub4dos

El nuevo Hiren´s boot cd 9.7 nos da una buena razón para actualizarnos; razón que les voy a dar ahora mismo, para que ustedes sigan leyendo: trae un mini windows XP con soporte para red y la posibilidad de usar todas las herramientas para windows del cd...en menos de 40Mb!


El fondo es asi, pixelado.

Debo decir (sin que a nadie le interese) que llevo un tiempo usando en mi pendrive el hirens 9.2, y no había encontrado motivos suficientes para cambiarlo: los 100 Mb de ramdisk que usaba el 9.6 me resultaban excesivos, y las herramientas no eran muy distintas.

Y ahora, que ya tengo mi pendrive funcionando con ese hirens, slax, puppy y un mini xp gracias a grub4dos, viene el amigo Hiren y me pone todo junto, mas útil, más lindo y mejor. Gracias!

Va el mini howto: Cómo poner el hirens 9.7 en el pendrive.


En esta versión del hirens cambia la forma en que se carga el boot, debido a la necesidad de arrancar un bootloader de xp. Esto nos simplifica enormemente el proceso. Resumiendo: isolinux carga los archivos de dos desde el comprimido /HBCD/boot.gz, y el bootloader de windows directamente como kernel. Nosotros vamos a hacer algo similar con grub.

Herramientas: Hiren´s boot Cd 9.7 (enlace a la página del viejo amigo Max Thrane. Ahí hay varios links de descarga.), Wingrub, grub4dos.

Procedimiento
  1. Extraiga de la imagen iso del hirens la carpeta /HBCD (puede ser con winrar. Gracias Yayuca!). Eso es todo lo que necesitamos del cd. Los que hayan hecho el tuto del hirens anterior notaran que les sobra tiempo aca.
  2. Instale el boot de grub con wingrub. Es conveniente fijarse cual es nuestro pendrive en la lista de discos en tools->partition list, y después usar el menú install->MBR y ahi seleccionar nuestro pendrive. Los más intrépidos pueden hacerlo desde la linea de comandos y ahorrarse wingrub, pero creo que los más intrépidos no necesitan esta guía.
  3. Sobreescriba grldr, grldr.mbr y menu.lst con las versiones que vienen en el paquete grub4dos (las de wingrub son anteriores, y el chainload no anda bien). También es útil copiar grub.exe, para volver al menú de grub desde DOS.
  4. Edite el menu.lst agregando estas lineas:

title HIRENS MINI XP
find --set-root /hbcd/xploader.bin
chainloader /hbcd/xploader.bin


title Hirens 9.7
find --set-root /hbcd/boot.gz
kernel /hbcd/memdisk
initrd /hbcd/boot.gz

Recomiendo dejar las entradas por defecto de grub4dos en el menú (son muy útiles).

listo!

PD: en la página de Hiren actualizaron el proceso de creación del usb, y están usando.....grub4dos. Así que los que quieran pueden pasarse por ahí a bajar un zip que en 170Kb simplifica los pasos 2,3 y 4 de esta guia en uno solo. Aunque seguro que no es tan divertido.

Yapa: Los muchachos de UBCD4Win pusieron (algo escondido) en su release un instalador usb que estoy usando mucho como probador. Básicamente, el botón Test USB crea una carpeta qemu con el kernel y un par de archicos esenciales, mas dos archivos de comandos que sirven para probar el boot del pendrive y el de la iso generada. Realmente es muy cómodo (y portátil) . Recomiendo bajar el paquete completo, que arma el live-xp en unos pocos clicks y tiene plugins más que interesantes; pero para los que sean impacientes y no quieran esperar 300Mb de descarga, acá subí el probador "standalone".

Disfruten!

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.

miércoles, 17 de septiembre de 2008

Mini howto: cómo probar el boot de nuestro pendrive sin reiniciar.

El amigo Reirok me dejó este dato en un comentario del post anterior:

...Bueno te cuento a vos y a todos los que leen los comments que Qemu (Qemu manager mas facil, después hace un post con esto 486), puede bootear directamente desde un disco físico, claro también el pen, entonces pueden hacer las pruebas desde la maquina virtual sin tener que reiniciar. Los discos se ponen como \\.\PHYSICALDRIVE#. Como dato si funciona en la simulación entonces casi seguro funciona en todas las maquinas, no creo en las que el boot es USB-FDD que es mas viejo...
Como me pareció un muy buen dato, que nos evitaría tener que reiniciar mil veces en nuestras busquedas de prueba y error, hoy me puse un rato a investigar cómo funciona... Y funciona!

Todo el truco consiste en ejecutar el qemu poniendo como disco de arranque el pendrive, con el parámetro -hda \\.\PhysicalDriveX, dónde X es la posición del pendrive en la lista de discos, contando 0 para el primario maestro, 1 para el esclavo y así.

El comando completo quedaría:

qemu.exe -L . -m 128 -hda \\.\PhysicalDrive2

(Este es el que funciona en la máquina dónde estoy probando, supongo que 0 es el rígido, 1 el zip y 2 el pendrive)


En esta linea -L setea el directorio donde está el archivo del bios (el mismo donde está qemu.exe), -m la cantidad de memoria asignada y -hda el disco a usar. Los más avezados podrán adivinar cómo poner unidades de cd y diskettes, aunque para lo que queremos hacer no hace falta.

Aclaración: estuve una hora tratando de hacerlo funcionar con la última versión de qemu para windows (0.9.1), y no hubo caso, sólo logré "qemu: could not open disk image \.PhysicalDrive2". Si tienen ese problema, prueben otra versión de qemu. A mi me funciona la que viene dentro de qemu manager 4 (del que ya hablé), o directamente desde qemu manager 5, con el que nos ahorramos hasta la linea de comandos.

Y cómo curiosidad: extrayendo solo el directorio qemu, y borrando los ejecutables para sparc, mips,etc, nos queda un bonito probador portatil de unos 5 Mb, que funciona bárbaro desde el mismo pendrive que usamos para bootear. Un lujo.

Aviso para los que quieran probar: es conveniente no intentar bootear desde el disco 0, a menos que tengamos un bootmanager instalado. como dicen aqui:

Please note that if you don't have a multi-boot environment, don't boot from your system hard disk.

C:\Program Files\Qemu> qemu.exe -L .\bios -hda \\.\PhysicalDrive0

It will break your host OS.


Es decir, que se rompe el sistema desde el que arrancamos la máquina. ¡Chicos, no lo hagan en casa!


Pequeña actualización: jugando con Qemu Manager 5 encontré otra ventaja del método. Podemos poner un pendrive como disco sin necesidad de bootear desde el, para por ejemplo instalarle el boot de dos desde el mini win98 del hirens (seteando -cdrom hirens.iso y -boot d), o arrancar el hirens desde un pendrive para particionar el otro con con el partmagic (con -hda \\.\PhysicalDrive2 y -hdb \\.\PhysicalDrive3).

Ahora si, diviértanse!

viernes, 29 de agosto de 2008

Todavía más fácil: Unetbootin

En estos últimos días dos lectores y amigos del blog (CoskiBukowski, de quién recomiendo su blog y ReiRok, a quien recomiendo abrirse uno. Gracias a los dos!) me hicieron llegar por mail un link hacia la página de esta utilidad: Unetbootin, que viene de Universal NetBoot Installer. Yo, como siempre, me tomé el trabajo de probarla antes de hablar, asi que aquí estoy

¿Y qué hace?

Entre otras cosas, hace automáticamente lo que nosotros venimos haciendo a mano en este blog: tomar la ISO de una distribución de linux y ponerla en un pendrive booteable. Explicitando un poco, lo que hace es, paso a paso:

  1. Extrae el contenido de la iso a la raíz del pen.
  2. Instala el bootloader (syslinux)
  3. Traduce el archivo de configuración de arranque (menu.lst de grub o syslinux.cfg) para construir su propio syslinux.cfg*
Y hace más que eso: Su capacidad principal es la de realizar estos pasos sin la imagen de disco, es decir que si elegimos una de las distribuciones de la lista de disponibles (que es extensa), el programita se encargará de bajarla primero, y después de pasarla al pen. De todos modos, yo prefiero bajar la iso con un programa que se dedique a eso (que tenga soporte proxy, descarga por partes y resume, por ejemplo Gigaget) y pasarla después.

Un detalle muy interesante con respecto a este programita es que no formatea el pendrive en cada instalación, lo que nos gusta particularmente porque nos permite, por ejemplo, poner varias distibuciones que no se pisen entre ellas (guardando el contenido de syslinux.cfg en cada paso y reconstruyendo el archivo a mano al final). Otra ventaja es que nos proporciona un modo de bootear desde el disco rígido en el menú (un punto flaco en el mismo syslinux).
Y de yapa, es portable.

Pruebenlo y me cuentan.

*La "traducción" es literal, es decir que separa la linea del kernel en "kernel" y "append", y pone dentro de "append" la linea "initrd". En algunos livecd, que dependen de opciones específicas para bootear por usb, esas las tenemos que poner a mano. Por ejemplo Geexbox funciona si cambiamos boot=cdrom por boot=sda1

Actualización: el amigo Reirok me corrige con lo del boot. Transcribo parte de su correo:

Otra cosa, recién estaba viendo el ultimo post.
Y vos decís que con el syslinux no podías bootear desde HD.
Por ahí no lo viste pero hay varios módulos en el pack de syslinux.
En el cual hay dos buenos, como chain.c32 y reboot.c32.
(están en sysliux/com32/modules/)
Con estos podes hacer chainloader y reboot del sistema.

Proba esto en el syslinux.cfg

# Boor from Harddisk
LABEL LOCAL
MENU LABEL Boot from Harddisk
Kernel chain.c32 hd0 1

# Reboot
LABEL REBOOT
MENU LABEL REBOOT
Kernel reboot.c32

Son para menu.c32 pero para vesamenu.c32 creo que también funciona.
Gracias por el aporte!

martes, 29 de julio de 2008

Otra vuelta de tuerca: nimblex y BartPE desde el pendrive.

Desde hace un tiempo en este blog venimos, mis lectores y yo, jugando con syslinux. Este es un gestor de arranque muy versatil y simple de usar, que nos permitió poner el hirens y varias distro de linux, mas otro tanto de imágenes de diskettes a bootear desde el pendrive. Pero también tiene sus limitaciones: en este caso; el soporte para bootear un disco físico.

Por eso (y porque SGD me gustó mucho) probé con GRUB. Y la verdad es que me simplificó mucho la tarea a la hora de hacer el pendrive booteable Nimblex-BartPE. Aquí un pequeño how-to:

  • Ponemos el BartPe en el pendrive. Ante cualquier duda consulte aquí. O aqui. El que quiera puede usar tambien PeToUSB si no quiere pasar por la consola.
  • Extraemos el contenido de la iso de nuestro linux favorito con grub (aquí nimblex, porque slax no trae configuracion para grub) en la raíz del pendrive.
  • Con wingrub, instalamos grub en el pendrive en 3 pasos:
  1. Vamos a File->Open y seleccionamos el archivo menu.lst que está en el pen en /boot/grub




  2. Vamos a Tools->Partition list y nos fijamos cual de los discos es nuestro pendrive. En este caso el (2,0)



  3. Vamos a Tools->Install Grub, elegimos MBR y nuestro pendrive, y le damos a Install


  • Ahora sólo queda agregar la entrada del menú para bootear nuestro liveXP. Abrimos menu.lst con un editor de texto y agregamos las líneas:
title XP 486 edition
rootnoverify (hd0,0)

chainloader +1
boot

El truco aquí consiste en arrancar desde el pendrive cómo si fuera un disco, es decir usando el arranque de la partición, sin complicarnos con bootsectors ni nada. Lo bueno es que esto también sirve para arrancar un xp (o win98) que tengamos en la máquina, sólo jugando un poco con los números de disco: (hd1,0) para la primera partición del segundo disco; (hd0,2) para la tercera del primer disco etc. Asi si tenemos particionado el pendrive podemos poner más de un windows (y a eso voy, buscando otro modo de poner el hirens). El la entrada del menú el disco es el (0,0) porque la máquina toma como primero al disco de arranque.

  • Y si quieren, también pueden agregar sus diskettes de arranque: sólo tienen que copiar el archivo memdisk del paquete de syslinux (o saquenlo del boot universal) y la imágen de floppy a iniciar a algun lado (yo usé /boot/grub) y las lineas se agregan como sigue:
title Win98
root (hd0,0)
kernel /boot/grub/memdisk
initrd /boot/grub/win98.img

(todo minúsculas, que si no grub no encuentra los archivos)
Otra enorme ventaja que tiene grub es la capacidad de editar las lineas de comando al vuelo: en la pantalla de las opciones, basta con pulsar "e" sobre cualquier opción para pasar a un editor que nos permite agregar, quitar o modificar líneas para ese arranque, con lo que nos da un montón de prueba y error. Y para valientes también está el shell, y a ver quién es más geek.

(editando la entrada Nimblex-Boot in KDM del cd)

Para los que quieran experimentar: una leída a los menu.lst dentro de la imagen del Super Grub Disk nos da una idea de todo lo que podemos hacer.

Disfruten!

Actualización: en la emoción de que funcione olvidé un detalle: para que nimblex funcione no basta con copiar el contenido de la iso e instalar grub. También hay que modificar levemente el archivo menu.lst, cambiando el parámetro root de (cd) a (hd0,0) y agregando el modificador probeusb a la linea del kernel. En general cada entrada queda así:

title NimbleX 2008 - Boot in KDE
root (hd0,0)
kernel /boot/vmlinuz-nx08 ramdisk_size=7120 probeusb root=/dev/ram0 rw quiet vga=791 splash=silent changes=nimblex.data autoexec=startx
initrd /boot/initrd-nx08.gz
... y si queremos guardar los cambios que vayamos haciendo al sistema (como el fondo de pantalla, la configuración de red o los toques al fstab para que ntfs-3g nos muestre los caracteres especiales) directamente en la carpeta /nimblex podemos reemplazar changes=nimblex.data por changes=/nimblex

lunes, 28 de julio de 2008

3 formas 3 de instalar XP desde el pendrive.

Algunas veces nos sucede que tenemos que reinstalar el XP en una máquina que no tiene CD/DVD, que no podemos abrir porque está en garantía o porque es una notebook, ...o por lo que sea, porque somos geek y no necesitamos excusas para tratar de hacer algo de un modo distinto a lo que hacemos siempre. Digamos: porque nos aburrimos.

El hecho es que queremos instalar XP desde el pendrive, y ni bien nos ponemos a investigar descubrimos que no viene a ser tan fácil, principalmente porque el sistema no parece estar preparado para eso en lo más mínimo.
Por suerte para nosotros, siempre hay gente curiosa como uno, que ha encontrado formas de hacerlo. Aquí resumo dos métodos de los más nombrados:

El método Roderick: Basicamente, consiste en armarse un xp booteable por ramdisk e iniciar la instalación del sistema desde ahí, lo que sería:

  • Seguir el método que di un par de posts atrás para poner bartpe con slax, hasta el paso 5 (pueden saltarse el 4). (Copio y pego para los haraganes):

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.Aquí el amigop Roderick nos dice que debemos activar el plugin “RpcSS needs to launch DComLaunch Service First - SP2 only” si tenemos SP2.


4) ...

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

  • Copiar al pendrive la carpeta \i386 del cd de instalación de XP (ojo: muchas veces no funciona si tenemos un XP tuneado, nliteado o cualquier "ado". En lo posible un SP2 liso y llano)
  • Arrancar BartPE desde el pendrive
  • Preparar el disco dónde vamos a instalar (reparticionar, formatear etc)
  • Instalar con esta linea de comandos:

D:\i386\winnt32.exe /syspart:C: /tempdrive:C: /makelocalsource
(suponiendo que el disco dónde queremos instalar es C: y el pendrive se ve como d:)

  • Cuando pregunta si queremos pasar nuestro disco a NTFS, le decimos que no (porque se refiere al pendrive)
  • Continuamos la instalación normalmente.

Este método copia el directorio \i386 al disco rigido, e instala desde ahí. Después del primer reinicio podemos sacar el pendrive y hacer de cuenta que nunca lo pusimos.

El método dos-fan: consiste en armarse un diskette de arranque de windows98 que tenga sys, format, fdisk, xcopy y smartdrv, transladarlo como boot del pendrive con la utilidad de hp o la de hirens y después laburar en D.O.S: particionar con fdisk, formatear, instalar el boot, copiar \i386 y reiniciar sin el pendrive. Una vez ahí puede arrancarse la instalación desde c:\i386 con winnt.exe (versión de 16 bits de winnt32).
Para los que quieran probarlo, el disco de arranque completo y armado se puede conseguir aquí. (Para los que no, igual es un disco de arranque interesante, bájenselo que por ahora es gratis).


Y la yapa: el método 486: No es el mejor, sólo el más retorcido. Y el más divertido también. Ahí va:

  • Hacemos una máquina virtual en virtualbox, con un disco de 3Gb aprox
  • Hacemos la ISO de un BartCD con pebuilder (con las indicaciones de Roderick), y le agregamos el directorio \i386 con magiciso, poweriso o lo que sea, mas el plugin de nuestro programa de imágenes de disco favorito (léase ghost o acronis true image. Yo use ghost porque tenía a mano una versión portable).
  • Arrancamos desde la ISO y formateamos el disco (puede ser NTFS).
  • instalamos (dentro de la máquina virtual) con este comando:

D:\i386\winnt32.exe /syspart:C: /tempdrive:C: /makelocalsource /noreboot

(again, suponiendo que el disco dónde queremos instalar es C: y el pendrive se ve como d:)
  • Al terminar la primera parte de la instalación no reinicia, asi que desde el mismo bartPE hacemos una imágen del disco en nuestro pendrive (aprox 370Mb).
  • Y listo. Ahora cuando queramos instalar el xp basta con arrancar con el pendrive (si se quiere en dos, con el hirens, en un windowsPE, en linux usando ghost con wine etc), volcar la imagen sobre el disco que queremos como sistema, sacar el pen y reiniciar.

Y otra vez: al valiente que quiera probar estos métodos y pueda aportar resultados (buenos o de los otros): los comentarios son todos suyos!

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.