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!

12 comentarios:

Peste dijo...

El QEMU es un golazo. Ya me extra#aba que su habitualmente practico weblog no lo mencionara. Y recordemos, tambien, que su autor, Fabrice Bellard, es un peso pesado que por donde paso dejo marca. Se acordaran los veteranos, supongo, del LZEXE.

Aparte: es claro que si se bootea QEMU desde un filesystem _desmontado_ y un SO _sensato_ (ningun Windows desde 4.0 lo es), debiera andar todo suavemente...

[486] dijo...

Amigo Peste: tiene razón, hace como un año que no hablaba de qemu. Antes lo usaba para todo, pero me ganó Virtualbox por dos motivos: soporte USB e interfaz gráfica (me pueden los botones, vio). Ahora que me lo encuentro de nuevo, que veo cómo mejoro Qemu Manager y tengo este chiche de bootear de un disco físico creo que voy a volver a las raices. Saludos!

[486] dijo...

Ah, y me pico la cuiriosidad de saber lo de LZEXE: Fabricio, un groso.

Peste dijo...

Antes del UPX, antes del PkLite, antes del EXEPACK... no, antes del EXEPACK no, pero quien se acuerda de el hoy, cuando fue tan avasalladoramente superado?... fue el LZEXE.

Contrariamente a tantos que tapan sus cag... con tierra, M. Bellard lo exhibe con orgullo, si bien en una especie de vitrina: LZEXE Home Page.

Eso si, si tenias un ejecutable con overlays, que los dioses se apiadaran de ti, hermano. O que tuvieras astucia zorruna, y decidieras usar una combinacion pecaminosa de un ramdrive, APPEND y el lento pero ingenioso DIET, que sigue circulando por los mirrors fosiles de Simtel. y que seria divertidisimo exponer al juicio lapidario de cualquier antivirus heuristico (ya en aquella epoca solia ser levantado por portacion de codigo automodificable).

Peste dijo...

Ve por que no suelo hacer posts tecnicos? La nostalgia me deja K.O. Me voy a tomar una cerveza a la memoria de las neuronas que me deje en el camino.

Por cierto, el formulario este me anda para atras: desde que volvi por aca que estoy viendo el famoso error de Google ("vuelva en 30 segundos") demasiado seguido.

Peste dijo...

Ma' si, el dichoso error es una enga#apichanga. Vueleme el comentario de las 0.56, si es tan amable.

[486] dijo...

Hecho, maestro. Por cierto, tuve que aprender a borrar comentarios. Supongo que en algún momento me va a servir. Y si se desata el mostro de la censura... bueno, puedo echarle la culpa a usted.

Peste dijo...

Pero, faltaba mas. En lo que le pueda servir...

ReiRok dijo...

Hola Peste, lo saluda Reirok.
Veo que es un especie de Guru.
Espero poder pedirle ayuda en algún momento.
486,yo use las que vienen en el Qemu Manager, 0.9.1 y no tuve problemas, pero con la 0.9.0 no me funciono. Podes usar al opcion Debug Mode para ver que error te tira.
Otra cosa por hacer es crear un disco virtual para usarlo como pen, y con la maquina virtual en otro disco virtual o ISO, lo que sea, modificar el Disco virtual , y probar bootear con este, si funciona todo OK, luego lo hacemos con el Pen real.
Otra cosa, en cuanto cualquier momento te digo como correr tambien el windows live desde el pen. Yo hago todo como loader principal con Grub4Dos y no tengo drama para nada.
Lo pienso un toque y te contesto en el otro post.
Saludos ReiRok.

[486] dijo...

ReiRok: a mi me anda barbaro el 0.9.1 que viene en el qemu manager 5, a manopla y desde la interfaz gráfica. El que no me funca es el de la pagina de h7. Supuestamente son el mismo; es raro.
Sobre el windows live usb, lo tengo andando junto con el nimblex desde grub, pero con un truco: lo arranco con chainloader en vez de cargar el sector de arranque. Todavía no me puse a intentar meter el hirens en ese mismo pen, en parte porque en el que tengo con syslinux anda barbaro. Saludos

ReiRok dijo...

Bueno mas fácil todavía. En Grub no lo probe pero seria igual.
(Grub4dos)
title Load io.sys (Hiren)
root (hd0,0)
chainloader (hd0,0)/io.sys

ReiRok dijo...

O también.
Title Load io.sys (Hiren)
find --set-root /io.sys
chainloader /io.sys