[syslinux] Question of syslinux chainloading

C. Masloch pushbx at 38.de
Sat Apr 6 13:17:15 PDT 2019

On at 2019-04-05 09:06 +0800, Lu Wei via Syslinux wrote:
> On 4/4/19, Adan Calderon <adancalderon at gmail.com> wrote:
>> So when you boot from only your hard drive attached, it is the primary
>> and only drive.
>> It loads the master boot record that load the NT Loader boot code that
>> is then configured to load the operating system from the primary
>> partition on the primary drive.
>> When you boot from the USB drive, you make it the Primary drive.  You
>> then tell it to load the MBR fromt the secondary drive.  The secondary
>> drive then trys to load the NT operating system from the configuration
>> file.  That file would probably still say the operating system is on
>> the primary drive's first partition, but this would no longer be true.
>> This is what I understand.
> I have ntldr on both drive, and ntldr item on the usb-hdd can be
> loaded by syslinux successfully, showing menu in boot.ini. So I think
> even if the secondary drive tries to load ntldr on the primary drive,
> it should success.

AFAIK, the NTFS and FAT/FAT32 loaders of NTLDR (which reside in the
partition boot sectors) hardcode their ROM-BIOS disk unit to 80h (first
HDD). And the partitioning and filesystems may differ between unit 80h
and unit 81h. Therefore, the unit 81h loader, besides failing to find
its own NTLDR (on unit 81h), doesn't find the NTLDR stored on unit 80h

I also don't know how NTLDR (or BOOTMGR) locate their configuration. It
seems that the NTLDR entrypoint does accept a disk unit from the prior
loader, but I don't know whether that's actually used to find the boot.ini.


More information about the Syslinux mailing list