Fat32-bootsector
Un bootsector simple y muy compacto, que le permite cargar su cargador de arranque o kernel desde un archivo.
Construir usando script adjunto.
Aviso: no lea esto, lea el código fuente. Se comenta, así que toda la información está ahí
¿Qué hace realmente este botón?
Aquí está, paso a paso:
- Compruebe si el BIOS admite la operación de disco extendido
- Busca la primera partición Fat32 activa
- Busca su archivo en esa partición (en el directorio raíz)
- Lo carga en la memoria
- Lo ejecuta
Estado de la memoria después de mi bootsector
Tu código:
Su código se carga a 0x1000: 0x0000 (segmento: compensación), o 0x10000 (lineal).
Registros
La mayoría de los registros no están "a cero" y se les asigna basura
Solo aquellos tienen valores válidos:
- CS: IP - 0x1000: 0x0000 (asignado al archivo cargado)
- DS - 0x1000 (también asignado al archivo cargado)
- SS: SP - 0x0000: 0xffff (pila en el primer segmento)
- DL - Número de unidad (para interrupciones del BIOS)
Datos útiles que quedan en la memoria
Después de saltar al archivo cargado, todavía quedan algunos datos útiles en la memoria:
(Todas las compensaciones se especifican en el código fuente)
- 0x7C00 - Disco actual (número de dispositivo), dirección grasa, primera dirección del sector de datos e información similar.
- 0x7e00 - sector BPB de esa partición
Limitaciones
- Todo está en modo real, por lo que el tamaño máximo del archivo no debe ser más grande que unos pocos cientos de kilobytes
- El archivo debe estar en el directorio raíz de la partición seleccionada
- Nombre de archivo: bootsector busca archivo con 8.3 nombre de archivo
Instalar métodos
Para instalar uso:
- En los sistemas compatibles de Ubuntu usan script install.sh
- En Windows use Fat32-Bootsector.exe
Observe la versión de Windows no usa letras para particiones, pero Phisycal Partitions (no lógica), entonces: puede ser más difícil coincidir con la letra de partición, pero por otro lado admite unidades USB de divisas múltiples
¿Errores?
Cuando se produce un error, Bootsector extrae el código de error en la pantalla.
Aquí hay códigos y explicaciones de errores:
0 - Funciones de BIOS extendidas que no están disponibles
1 - Partición de arranque no encontrada
2 - La partición de arranque no es fat32
3 - Archivo no encontrado
4 - No se pueden cargar sectores (error de interrupción del BIOS)