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 /anyotherdir. 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 /tftpboot/).
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)

/tftpboot/arch/boot/i686/vmlinuz
/tftpboot/syslinux/with-all-files-here
/tftpboot/pxelinux.cfg/default

And default file with this content (the same method used in ISO under /isolinux/isolinux.cfg)

---
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://192.168.0.77/arch/pepe.txt
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
boot:

-------------

Another alternative directory scheme is

/arch/boot/{i686,x86_64}/{vmlinuz,archiso.img,...}
/arch/boot/syslinux/*.{cfg,c32,...}
/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.
/arch/boot/{g,p}xelinux.0


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

Reply via email to