3 ms·
I'm an occasional iPXE contributor, I guess it's my time to shine! Bootloaders are reading block of data from CR-ROM, disk, floppy or USB drive by using int 13
by mareo 9y ago
I'm an occasional iPXE contributor, I guess it's my time to shine!
Bootloaders are reading block of data from CR-ROM, disk, floppy or USB drive by using int 13h[1] whose handler is set by the BIOS. A bootloader is only asking the BIOS to read data for him and does not have to implement drivers.
iPXE replaces the int 13h handler in the interrupt vector table[2] by its own, and when a read is issued by a bootloader, it performs it with an HTTP range or iSCSI request.
It's actually really simple. :)
[1] https://en.wikipedia.org/wiki/INT_13H https://en.wikipedia.org/wiki/INT_13H
[2] https://en.wikipedia.org/wiki/Interrupt_vector_table https://en.wikipedia.org/wiki/Interrupt_vector_table
- mbilker 9y agoHow does iSCSI work for Windows then? I setup iPXE to boot Windows 7 (Embedded Standard technically) to boot off an iSCSI target and it shows up as a disk in Windows. Does Windows still allow for int 13h handlers or is there some other special handling?
- mareo 9y agoiPXE uses the iBFT[1] to pass this information to the OS. ftp://ftp.software.ibm.com/systems/support/bladecenter/iscsi_boot_firmware_table_v1.03.pdf[1]