[syslinux] Interaction with Windows bootloader

Gene Cumm gene.cumm at gmail.com
Sat Jan 5 08:19:15 PST 2019


On Thu, Jan 3, 2019 at 12:31 PM David Henderson via Syslinux
<syslinux at zytor.com> wrote:
>
> Good afternoon all!  I have a project I'm working on that requires
> Linux to be installed either to its own partition, or to the partition
> of a host OS (Windows or Linux).  One way works, the other way does
> not...

For starters, what version?  Official pre-compiled binaries?

> Use Case 1:
> In this scenario, Linux is installed to its *own* partition as is
> syslinux (syslinux -i /path/to/syslinux/files).  Afterwards, I 'dd'
> the first 512bytes of that partition as the .bss file to chainload
> from the host OS bootloader.  This method works for all tested host
> OS's including Windows.
>
>
> Use Case 2:
> In this scenario, Linux is installed to the *same* partition as the
> host OS.  If the host OS is Linux, I just add the option of booting
> our software to the existing bootloader - everything works fine in
> this situation.  If the host OS is Windows, I have problems...
>
> If possible, I would like to have syslinux generate the .bss data as a
> file instead of writing to the partition.  This will retain the
> existing Windows bootloader while allowing me to chain load the file
> generated.  Looking at the online documentation, there is an optional
> value for the 'bootsecfile', but I can't get it to work.  I have
> tried:
>
> syslinux[64].exe -i "/path/to/syslinux/file" c: bootsecfile.bss
> syslinux[64].exe -i "/path/to/syslinux/file" c:\bootsecfile.bss
> syslinux[64].exe -i "/" c: bootsecfile.bss
> syslinux[64].exe -i "/" c:\bootsecfile.bss
> syslinux[64].exe -i c: bootsecfile.bss
> syslinux[64].exe -i c:\bootsecfile.bss

syslinux[64].exe -i -f c: bootsecfile.bss

This should have been the form for your desire as specifying the
filename should have told it to create the BSS instead of writing it
to the VBR.  Being the "fixed" HDD instead of a removable drive like a
USB stick, "-f" is necessary.

However, IF and only if you specify a bootsecfile and don't specify to
modify the VBR or MBR (ie don't do either install an MBR OR activate
the partition), I could see a mild feature enhancement to remove that
particular check.

> I either get an error "Not a removable drive (use -f to override)", or
> a returned listing of all the switches that can be passed to the
> executable.
>
> With none of those attempts working, I tried to just install syslinux
> to the partition so I could generate the .bss file using the first
> 512bytes of the Windows partition, but I can't get syslinux to
> install.  I've tried:
>
> syslinux[64].exe -i "/path/to/syslinux/file" c:
> syslinux[64].exe -i "/" c:
> syslinux[64].exe -i c:
>
> The results are the same as the prior attempts.  It appears that I
> can't even install syslinux on a Windows partition.  Any help would be
> appreciated!  Also, this is on a Windows 7 OS (but will also need to
> work with modern versions including Windows 10).

Likely the same, "-f" is necessary.

> Thanks,
> Dave

-- 
-Gene


More information about the Syslinux mailing list