Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Vaagish en 24 Marzo 2014, 23:59 pm



Título: Preparar maquina virtual para mi bootloader
Publicado por: Vaagish en 24 Marzo 2014, 23:59 pm
Hola.. Alguien ha tenido que configurar VMWare o VirtualBox para probar un bootloader? No doy con la configuración,, ya probé iniciar las maquinas con el binario y con la imagen del mismo pero no va.. si inicio una pc con el bootloader en diskette arranca..

Saludos! Y Gracias!


Título: Re: Preparar maquina virtual para mi bootloader
Publicado por: Eternal Idol en 25 Marzo 2014, 00:14 am
VMWare y en su momento Virtual PC. Si tenes un diskette con hacer una imagen del mismo y configurarla en la maquina virtual deberia ir bien, asegurate que la BIOS intente bootear con floppy ... ¿Que problema tenes exactamente?

PD. Esto no tiene nada que ver con C/C++.


Título: Re: Preparar maquina virtual para mi bootloader
Publicado por: dato000 en 25 Marzo 2014, 00:16 am
Creo que esto va en linux...


Título: Re: Preparar maquina virtual para mi bootloader
Publicado por: Vaagish en 25 Marzo 2014, 00:38 am
Citar
VMWare y en su momento Virtual PC. Si tenes un diskette con hacer una imagen del mismo y configurarla en la maquina virtual deberia ir bien, asegurate que la BIOS intente bootear con floppy ... ¿Que problema tenes exactamente?

El asunto es que estaba haciendo las pruebas en una maquina fisica,, con disketera y ahi cargaba bien el bootloader, pero ahora quiero probar con mi pc (sin disketera) en una VM,, el problema exacto es que no lo lee al bootloader,, dice Operating Sistem not found en ambas maquinas (VMWare y VirtualBox), ahora estaba leyendo en OSDev, de un enlace de MCKSys,, pero dice esto:

Citar
The VMware BIOS supports booting from a CD (use mkisofs to make a bootable CD, attach cdrom device to the .iso file) or a floppy drive (attach the floppy disk to a file), plus hard drives. These are the easiest options for loading your own kernel.
Pero no entiendo si tengo que quemar el disco o el diskette,, (calculo que no.. espero)

Citar
PD. Esto no tiene nada que ver con C/C++.
Verdad, en ASM hubiera sido mas correcto,, en dudas generales no me iban a dar bola  :laugh:

Citar
Creo que esto va en linux...
Mmmm.. nop  ;D


Título: Re: Preparar maquina virtual para mi bootloader
Publicado por: Eternal Idol en 25 Marzo 2014, 00:42 am
Pero no entiendo si tengo que quemar el disco o el diskette,, (calculo que no.. espero)

No, solamente necesitas crear una imagen del diskette que contenga el bootloader (asegurate que tenga el tamaño de un diskette real, como 1.44mb).


Título: Re: Preparar maquina virtual para mi bootloader
Publicado por: MCKSys Argentina en 25 Marzo 2014, 00:52 am
Para hacer una imagen del diskette, fijate esto: click (http://xpt.sourceforge.net/techdocs/nix/virtual/vmware/vm07-UsingVMware/ar01s04.html)

Saludos!


Título: Re: Preparar maquina virtual para mi bootloader
Publicado por: Vaagish en 25 Marzo 2014, 00:56 am
Haa,, una imagen del diskette.. yo estoy creando una imagen del archivo, que obviamente ni pesa eso ni es un disco.. bueno,, pero eso tendría que ser mañana, si emulo el dispositivo podre hacerlo hoy? o otra solución?  :rolleyes:

Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.

Citar
Para hacer una imagen del diskette, fijate esto: click
Lujo!! Ahora lo leo,, aclaro que no tengo disketera.. pero leo eso a ver que pasa..

Gracias!! Como siempre, una fuente de sabiduría ustedes jeje ;)


Título: Re: Preparar maquina virtual para mi bootloader
Publicado por: Eternal Idol en 25 Marzo 2014, 01:29 am
Con CreateFile, WriteFile, SetFilePointer, SetEndOfFile y CloseHandle lo haces rapidamente.



O incluso siendo argv[1] un archivo con el bootloader:
Código
  1. HANDLE hFloppy = CreateFile(argv[1], GENERIC_ALL, 0, 0, OPEN_EXISTING, 0, 0);
  2. if (hFloppy != INVALID_HANDLE_VALUE)
  3. {
  4.  SetFilePointer(hFloppy, 1440 * 1024, 0, FILE_BEGIN);
  5.  SetEndOfFile(hFloppy);
  6.  CloseHandle(hFloppy);
  7. }


Título: Re: Preparar maquina virtual para mi bootloader
Publicado por: Vaagish en 25 Marzo 2014, 02:27 am
jaja paraa EI,, dejame asimilar.. vos decís que,, a ese código le pase como argv el bootloader,, eso lo va a abrir y después ta, me perdí.. jajaja

Na,, déjame que investigue eso, ademas nunca use SetFilePointer y SetEndOfFile, tengo que leer esas funciones..

Gracias!! Saludos! ;D


Título: Re: Preparar maquina virtual para mi bootloader
Publicado por: Eternal Idol en 25 Marzo 2014, 02:32 am
Lo que va a hacer es que el archivo tenga como tamaño 1440 KB  ;D


Título: Re: Preparar maquina virtual para mi bootloader
Publicado por: Vaagish en 25 Marzo 2014, 04:22 am
Listo,, a las cansadas anduvo.. use ese código que me pasaste EI, con eso queda como bien dijiste del tamaño correcto,, luego con el NERO creo la imagen del archivo y ahi lo agarra VMWare, también probé con ImgBurn, pero por algún motivo me crea una imagen, pero en ninguna parte veo mi código (con un editor hexa,, claro), el ImgBurn tiene una opción que es crear una imagen del bootloader de algún disco, pero tampoco (aparte no seria mi bootloader),, por ahora me sirve asi y me saca del "apuro", mañana pruebo otras opciones, porque con nero.. es mucha cosa para algo que debe ser mucho mas simple..

Solucionado! Gracias!!!!  ;)


Título: Re: Preparar maquina virtual para mi bootloader
Publicado por: Eternal Idol en 25 Marzo 2014, 11:10 am
En realidad deberia funcionar directo con el codigo ese, simplemente llamalo floppy.iso y chau. Mientras tenga al principio el bootloader (con todo su codigo y la firma - 0x55 y 0xAA - donde corresponda) mas el tamaño de un diskette es suficiente.


Título: Re: Preparar maquina virtual para mi bootloader
Publicado por: Vaagish en 25 Marzo 2014, 18:31 pm
Mejor,, intento con eso,, había probado con bootear con "boot.bin" pero no me dejo, debe ser por el nombre..

Citar
simplemente llamalo floppy.iso y chau. Mientras tenga al principio el bootloader (con todo su codigo y la firma - 0x55 y 0xAA - donde corresponda) mas el tamaño de un diskette es suficiente.

Tiene sentido, si el archivo pesa lo que tiene que pesar, y tiene las instrucciones que tiene que tener,, tiene que andar..

Gracias! Ya puedo seguir otro rato mas jeje Saludos!


Título: Re: Preparar maquina virtual para mi bootloader
Publicado por: Eternal Idol en 25 Marzo 2014, 18:36 pm
Mejor,, intento con eso,, había probado con bootear con "boot.bin" pero no me dejo, debe ser por el nombre..

Tiene sentido, si el archivo pesa lo que tiene que pesar, y tiene las instrucciones que tiene que tener,, tiene que andar..

Gracias! Ya puedo seguir otro rato mas jeje Saludos!

El nombre del archivo no es problema, el tamaño si, sino no es una imagen de un diskette valida  ;D