[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#684717: debian-installer-7.0-netboot-amd64: Relative paths in syslinux configuration interact badly with TFTP prefix



Package: debian-installer-7.0-netboot-amd64
Version: 20120712
Severity: wishlist

I tried to make the d-i files available under the /debian-installer path
of my TFTP server with a bind mount:

	$ findmnt /srv/tftp/debian-installer/
	TARGET                     SOURCE                                                   FSTYPE OPTIONS
	/srv/tftp/debian-installer /dev/mapper/thoth-root[/usr/lib/debian-installer/images] ext4   rw,relatime,errors=remount-ro,user_xattr,acl,barrier=1,data=ordered

However the use of relative paths in the syslinux config files make this
difficult. My PXE-booted client displays the following:

	BOOT SERVER IP: 10.0.0.1
	!PXE entry point found (we hope) at 9E1C:0104 via plan A
	UNDI code segment at 9E1C len 199E
	UNDI data segment at 9C99 len 1830
	Getting cached packet  01 02 03
	My IP address seems to be 0A00010B 10.0.1.11
	ip:10.0.1.11:109.0.0.1:10.0.0.1:255.255.0.0
	BOOTIF=01-08-00-27-96-86-ec
	SYSUUID=blah
	TFTP prefix: debian-installer/amd64/text/
	Trying to load: pxelinux.cfg/default
	Could not find kernel image: debian-installer/amd64/boot-screens/vesamenu.c32
	boot: 

Looking at what's going over the network:

	# tshark -i eth0 -R tftp
	Capturing on eth0
	  6.254628    10.0.1.11 -> 10.0.0.1     TFTP 97 Read Request, File: debian-installer/amd64/text/pxelinux.0, Transfer type: octet, tsize\000=0\000
	  6.259698     10.0.0.1 -> 10.0.1.11    TFTP 1502 Data Packet, Block: 2
	...
	... data packets and requests for mac-address-specific pxelinux.cfg elided ...
	...
	  6.492348    10.0.1.11 -> 10.0.0.1     TFTP 120 Read Request, File: debian-installer/amd64/text/pxelinux.cfg/default, Transfer type: octet, tsize\000=0\000, blksize\000=1408\000
	  6.492898     10.0.0.1 -> 10.0.1.11    TFTP 67 Option Acknowledgement, tsize\000=154\000, blksize\000=1408\000
	  6.496270    10.0.1.11 -> 10.0.0.1     TFTP 60 Acknowledgement, Block: 0
	  6.496343     10.0.0.1 -> 10.0.1.11    TFTP 200 Data Packet, Block: 1 (last)
	  6.497011    10.0.1.11 -> 10.0.0.1     TFTP 60 Acknowledgement, Block: 1
	  6.497655    10.0.1.11 -> 10.0.0.1     TFTP 144 Read Request, File: debian-installer/amd64/text/debian-installer/amd64/boot-screens/menu.cfg, Transfer type: octet, tsize\000=0\000, blksize\000=1408\000
	  6.498214     10.0.0.1 -> 10.0.1.11    TFTP 61 Error Code, Code: File not found, Message: File not found
	  6.499417    10.0.1.11 -> 10.0.0.1     TFTP 148 Read Request, File: debian-installer/amd64/text/debian-installer/amd64/boot-screens/vesamenu.c32, Transfer type: octet, tsize\000=0\000, blksize\000=1408\000
	  6.499975     10.0.0.1 -> 10.0.1.11    TFTP 61 Error Code, Code: File not found, Message: File not found
	  6.501299    10.0.1.11 -> 10.0.0.1     TFTP 152 Read Request, File: debian-installer/amd64/text/debian-installer/amd64/boot-screens/vesamenu.c32.cbt, Transfer type: octet, tsize\000=0\000, blksize\000=1408\000
	  6.501857     10.0.0.1 -> 10.0.1.11    TFTP 61 Error Code, Code: File not found, Message: File not found
	  6.503305    10.0.1.11 -> 10.0.0.1     TFTP 150 Read Request, File: debian-installer/amd64/text/debian-installer/amd64/boot-screens/vesamenu.c32.0, Transfer type: octet, tsize\000=0\000, blksize\000=1408\000
	  6.503862     10.0.0.1 -> 10.0.1.11    TFTP 61 Error Code, Code: File not found, Message: File not found
	  6.505431    10.0.1.11 -> 10.0.0.1     TFTP 152 Read Request, File: debian-installer/amd64/text/debian-installer/amd64/boot-screens/vesamenu.c32.com, Transfer type: octet, tsize\000=0\000, blksize\000=1408\000
	  6.505995     10.0.0.1 -> 10.0.1.11    TFTP 61 Error Code, Code: File not found, Message: File not found
	  6.507237    10.0.1.11 -> 10.0.0.1     TFTP 152 Read Request, File: debian-installer/amd64/text/debian-installer/amd64/boot-screens/vesamenu.c32.c32, Transfer type: octet, tsize\000=0\000, blksize\000=1408\000
	  6.507794     10.0.0.1 -> 10.0.1.11    TFTP 61 Error Code, Code: File not found, Message: File not found

menu.cfg can't be loaded, because the TFTP prefix
'debian-installer/amd64/text' is prepended to the path in the config
file of 'debian-installer/amd64/boot-screens/menu.cfg'. If the config
file used paths relative to the pxelinux.0 file then I think booting
would work correctly.

Additionally the assumed prefix path written into the config files
doesn't let the 'text' and 'gtk' versions of the installers co-exist in
the same TFTP root, because the paths are missing the text/gtk element.
Once the various debian-installer-$VERSION-netboot-$ARCH packages are
co-installable, this will prevent different versions from being
accessible from the same TFTP server as well.

My workaround configuration involves bind-mounting
/usr/lib/debian-installer/images/amd64/text to
/srv/tftp/debian-installer/amd64, and then creating symlinks in
/srv/tftp pointing to 'debian-installer/amd64/pxelinux.{0,cfg/default}'.

An alternative workaround would be to configure the DHCP server to
specify the TFTP prefix path; however you're still limited to a single
version/architecture of debian-installer being configured per TFTP
server, and if you wanted to use another copy of pxelinux to boot
something else then the debian-installer configuration would still get
in the way.

-- System Information:
Debian Release: 6.0.5
  APT prefers stable
  APT policy: (550, 'stable'), (540, 'stable-updates'), (520, 'testing'), (510, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-0.bpo.2-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

debian-installer-7.0-netboot-amd64 depends on no packages.

debian-installer-7.0-netboot-amd64 recommends no packages.

Versions of packages debian-installer-7.0-netboot-amd64 suggests:
ii  tftpd-hpa                     5.2-4      HPA's tftp server

-- no debconf information


Reply to: