script crear disco booteable.

Hola les cuento que quiero hacer un disket booteable.

Tengo un bootloader que yo hice bootloader.bin usa 3 sectores.
Tengo un kernel.bin usa 14.
Tengo una rutinaX en un rutinax.bin usa 1 sector.

En un script hago esto

dd if=/dev/zero of=boot.img bs=512 count= aca va la suma de los count de las ultimas dos lineas???
dd if=bootloader.bin of=boot.img bs=512 count= 3
dd if=kernel.bin of=boot.img bs=512 count=14 seek= 3
dd if=rutinax.bin of=boot.img bs=512 count=1 seek== 17

Esta bien asi? por que no me bootea :P y creo que el error viene por aca ya que no entiendo mucho esto

Desde ya muchas gracias, saludos!

Dices que tu bootloader ocupa 3 sectores, habrás tenido en cuenta que la rutina de arranque de la Bios únicamente carga en memoria y ejecuta el código contenido en el primer sector de arranque,es decir y para tu caso en concreto, los primeros 512 bytes de tu bootloader.

Hola si, yo dentro de mi codigo assembler tengo en cuenta eso.

Es decir por un lado se que el Bios carga el primer sector del bootloader.

Luego yo cargo usando la interrupcion int 13h que provee el BIOS los otros 2 del bootloader.

Tambien cargo los otro 14 del kernel, y por ultimo el ultimo de la rutinax

Como funciona la interrupcion creo que lo entendi bien.

Es decir para el bootloader:

mov al, 02h;cantidad de sectores
mov cl, 02h; sector
mov dh, 0 ;cabeza del sector
(Omiti los registros otros registros que cargo por que estos son los que te queria mostrar para el tema de los sectores)

Para el kernel:

mov al, 0Eh;cantidad de sectores
mov ch, 0; cilindro
mov cl, 04h; sector
Para la rutinax:

mov al, 01h;cantidad de sectores
mov ch, 0; cilindro
mov cl, 12h; sector

Gracias!, creo que el problema podria estar en como hice el script que fue mi primer pregunta por el tema del seek y el count de la primera linea

Saludos

Los parámetros para el comando dd son correctos, count en el primer dd debería ser 18, ya que vas a escribir 18 sectores, puedes omitir bs, ya que el valor por defecto para dd es de 512 bytes.

Muchas gracias por confirmarme que esta bien ! saludos wink jeje ya que estoy arrancando con el tema y algunas cosas no las tengo muy claras dumb

Salduos wink

Para lo que estás intentando hacer te puede ser de utilidad la aplicación syslinux, te puede servir para verificar el funcionamiento de tus programas a través de lo que la aplicación llama COMBOOT, que en esencia es que el bootloader de sysylinux ejecuta el programa que tu le digas, la información que acompaña el programa te puede resultar de gran interés.

Para lo que estás intentando hacer te puede ser de utilidad la aplicación syslinux, te puede servir para verificar el funcionamiento de tus programas a través de lo que la aplicación llama COMBOOT, que en esencia es que el bootloader de sysylinux ejecuta el programa que tu le digas, la información que acompaña el programa te puede resultar de gran interés.