0

I have setup a pxe server with tftp, it works using a debian installer.

http://www.debian-administration.org/articles/478

Now I don't want an installer but a system, that already exists (on usb). How can I boot that USB image and especially create the pxelinux.0 bootloader for it? On Debian I find only installer images.

Edit: OK, I have a system installed on USB and I want to boot it over the network using PXE on several clients. I installed a plain debian with tftp server and a pxe-environment according to the tutorial at the link provided above. It works for the installer but I tried to use another kernel but then it says file not found because the pxelinux.0 file points to the installer-kernel from the debian distribution.

1 Answers1

2

You have to understand not every USB boot-able/installable Linux image out there is going to work in a PXE environment.

An non PXE image usually boots and retrieve the required components from the booting device (HDD, USB, etc).

A PXE ready image will initially boot from the net "and" the init script is ready for mounting an NFS, HTTP, SMB, etc system in order to get the required components from there.

Non pxe install images not only do not have an init script ready to retrieve components from the net but also many times use kernels/busybox builds that do not even have network support or do not have the kernel modules for some of the protocols that make life easier when PXE installing like HTTP or SMB.

Remember TFTP is just used only on a few initial transfers (pxelinux/vesamenu/kernel/initrd), the big part of the install is going to be transferred later by HTTP or using an NFS or SMB share mount.

Then if you want to PXE boot an USB Linux install image you have to analyze the distro initrd and see if the included init script supports PXE, next you have to see if the kernel/busybox include the reqd components for net booting. It is not a trivial job.

If you want to boot an image that "is not an install" but it is a live distro you have to add to the init script the code for net mounting the squashfs file.

If you want to boot a an image that is neither a install nor a live distro things are even more complicated.

Pat
  • 3,519
  • 2
  • 17
  • 17