[arch-releng] [PATCH 2/3] [archiso] Add archiso_pxe_curl hook

Gerardo Exequiel Pozzi vmlinuz386 at yahoo.com.ar
Wed Nov 23 19:30:42 EST 2011

On 11/23/2011 07:52 PM, Thomas Bächler wrote:
> Am 23.11.2011 23:36, schrieb Gerardo Exequiel Pozzi:
>>>> The releng env is currently set to build every 4 days.  And it should
>>>> auto-update archiso from git IIRC
>>> Gerardo didn't push these patches to archiso.git yet. That's why I asked.
>> These patches are waiting for next mkinitcpio + pending RFC patch to fix
>> BASEDIR (Or I can just say "good-bye" to -b BASEDIR and use chroot
>> mkinitcpio")
> We could install mkinitcpio-git in the releng environments. Dieter?
>> Also I want to change a bit the directory structure of the ISO to be
>> more pxelinux friendly.
>> This is a change that I want to do long long time ago, but breaks "the
>> nice scheme" (syslinux only files in one place, kernel/initramfs in
>> other...).
>> [...]
>> bah, is still nice...
>> is there any objections?
> I like the old scheme better. I like how the bootloader files are
> separate from the linux files.
Yes current scheme is nice.
>> We can start a TFTP/FTP/HTTP/NFS that points directly to
>> /run/archiso/bootmnt from the live-enviroment. Or just extract/mount the
>> ISO in a running system ;)
> Why can't we do that with the current scheme?

Because pxelinux works different compared to other bootloaders (in terms 
of filesystem).
While syslinux/isolinux/extlinux you can see all files from the 
filesystem where is installed. For example extlinux installed on 
/boot/syslinux/ld-linux.sys from the bootloader you can access to 
In pxelinux things works differently, You have it installed on 
/tftpboot/syslinux/pxelinux.0 and you can not access to files outside 
"syslinux/" when you reference a file as "/pepito.txt" you are trying to 
access to /tftpboot/syslinux/pepito.txt (even if tftpd root is set to 
Yes sure still can be referenced as tftp:// (or http://)

I tried with change the tftp-prefix with dhcp-option 210 
(pxelinux.pathprefix) "dnsmasq --dhcp-option-force=210,/" then having 
this scheme (by default will take syslinux/ as prefix, the directory 
where pxelinux.0 is found)


And default file with this content (the same method used in ISO under 

DEFAULT loadconfig

LABEL loadconfig
   CONFIG /syslinux/syslinux.cfg
   APPEND /syslinux/

All things related to syslinux loads OK (c32, splash.png, etc...) but 
when you try to access to /arch/boot/i686/vmlinuz is not found

boot: cat /arch/pepe.txt
cat.c32: /arch/pepe.txt: file not found
boot: cat tftp://
I Am /tftpboot/arch/pepe.txt
boot: cat pepe.txt
I Am /tftpboot/syslinux/pepe.txt
boot: cat /pepe.txt
I Am /tftpboot/syslinux/pepe.txt


Another alternative directory scheme is

/arch/boot/pxelinux.cfg/default <- this is a copy of syslinux.cfg (not a 
"loadconfig" hack) So in the case of dual-iso, we need *.cfg files here.

Gerardo Exequiel Pozzi
\cos^2\alpha + \sin^2\alpha = 1

More information about the arch-releng mailing list