john doe
2019-Sep-25 09:40 UTC
[syslinux] Issue with ldlinux.c32 when symlinked on Windows
Hi, I have successfully installed Debian using PXE boot and the local tftp server of Qemu. To do that I grab a copy of netboot.tar.gz for the amd64 architecture from the debian website for Buster (10.1), extracted it then recreate the symlink found: - mklink ldlinux.c32 debian-installer\amd64\boot-screens\ldlinux.c32 - mklink pxelinux.0 debian-installer\amd64\pxelinux.0 - mklink /D pxelinux.cfg debian-installer\amd64\pxelinux.cfg I start Qemu for Windows with the following command: qemu-system-x86_64.exe -boot n -net user,tftp=debian\netboot\text,bootfile=pxelinux.0 -net nic I get the following error: "Failed to load ldlinux.c32 Boot failed: press a key to retry, or wait for reset..." As shown above, the file ldlinux.c32 can not be downloaded because it is a symlink, if I do remove the symlink and copy the file in the tftp root directory it works. Why is it not working when the symlink is used? Looking online didn't help me understanding this behavior. I appriciate any help. -- John Doe
> As shown above, the file ldlinux.c32 can not be downloaded because it is > a symlink, if I do remove the symlink and copy the file in the tftp root > directory it works.Are you creating a symlink on NTFS? One possible reason, perhaps, IIRC... PXELINUX does not understand symlinks on NTFS volumes. Having said that, I might be misremembering and/or confused about this. Independently of using symlinks or not, ldlinux.c32 should be located in the same directory as the bootloader file (e.g. pxelinux.0). Unfortunately, Debian not always follows this basic advice, thus complicating the matter (unnecessarily). Regards, Ady.
john doe
2019-Sep-26 14:14 UTC
[syslinux] Issue with ldlinux.c32 when symlinked on Windows
Hi, thank you for your answer. On 9/25/2019 6:26 PM, Ady Ady via Syslinux wrote:>> As shown above, the file ldlinux.c32 can not be downloaded because it is >> a symlink, if I do remove the symlink and copy the file in the tftp root >> directory it works. > > > Are you creating a symlink on NTFS? >Yes, I'm creating symlink on NTFS partition.> One possible reason, perhaps, IIRC... PXELINUX does not understand > symlinks on NTFS volumes. Having said that, I might be misremembering > and/or confused about this. >Any chance that can be looked at and fixed up if pxelinux.0 can't handle symlink on NTFS?> Independently of using symlinks or not, ldlinux.c32 should be located > in the same directory as the bootloader file (e.g. pxelinux.0). > Unfortunately, Debian not always follows this basic advice, thus > complicating the matter (unnecessarily). >Couldn't agree more. I guess I will need to open an Debian-installer bug report on this. Does the same hold true for other *.c32 files (libcom32.c32 libutil.c32 esamenu.c32)? Other then pxelinux.0 and ldlinux.c32 that are to be in the same directory, is there other things that should be corrected by Debian (guideline best practices)? In other words, what should be corrected in the Debian netboot.tar.gz tarball. I realy appriciate your help and any feedback you can give me. -- John Doe