English / Deutsch | Print version Plop Linux  
Twitter
twitter

<< Previous
PXE Boot from network (DHCP, TFTP, NFS, Samba, FTP, HTTP) - Linux server

Table of Contents

Next >>
Reduce size

PXE Boot from network (DHCP, TFTP, Network share, FTP, HTTP) - Windows server


The minimum requirements to boot from network are a DHCP server and a TFTP server

The access to the Plop Linux files can be with a Windows network share, TFTP, FTP or HTTP

Download a working sample with the full directory structure: netboot-sample.tar.gz, for ISO netboot-sample-iso.tar.gz

The download links in this description are for the 64-bit version. To create a 32-bit version use the corresponding files from the download area.


Basic conditions for this example setup:

  • Network type: 10.0.0.x Netmask 255.255.255.0
  • Server IP: 10.0.0.1
  • Client IP: received from the DHCP server
  • TFTP root directory: c:\tftpboot

It works with other IP addresses too!


1. Setup
1.1. Extract the Plop Linux files
1.2. Setup the DHCP and TFTP server
 
2. The network share
2.1 Boot with Windows network share
2.2 Boot the ISO over the Windows network share
 
3. TFTP
3.1 Boot with TFTP
3.2 Boot the ISO over TFTP
 
4. FTP
4.1 Boot with FTP
4.2 Boot the ISO over FTP
 
5. HTTP
5.1 Boot with HTTP
5.2 Boot the ISO over HTTP
 
6. Boot problems

1. Setup


1.1. Extract the Plop Linux files


Extract the file ploplinux-pxeboot.zip to c:\

Now you have the basic directory structure and files in c:\tftpboot.

Extract the file ploplinux-24.2-x86_64.zip

Copy the content of the directory ploplinux-24.2\ to c:\tftpboot\ploplinux-netboot\.

Now you should have the following directories and files

c:\tftpboot\
           \ploplinux-netboot\
                    	     \boot.msg
                    	     \memtest
		    	     \menu.c32
		    	     \spash.png
		    	     \vesamenu.c32
                             \pxelinux.0
                    	     \ploplinux\
                            	       \bin\
                            	       \bin.sqfs
                            	       \etc.tgz
                            	       \lib.sqfs
			    	       \opt\
                            	       \ploplinux.version
                    		       \pxelinux.cfg\
                                		    \default
		    		       \syslinux\
		            			\kernel\
		                    		       \bzImage
			            		       \initramfs.gz
		            			\plop\
		                		     \plpbt.bin
			        		     \plpinstc.com


1.2. Setup the DHCP and TFTP server


Use TFTPD32 from http://tftpd32.jounin.net/. This is a DHCP and TFTP server in one program.

TFTPD32 settings:

  • Set base directory to c:\tftpboot
  • Enable TFTP server
  • Enable DHCP server
  • If needed TFTP security none
  • Enable Option negotiation
  • Enable Translate Unix file names

Setup DHCP:

  • IP pool address starting with 10.0.0.100
  • Boot file \ploplinux-netboot\pxelinux.0


2. Windows network share


2.1. Boot with Windows network share


Requirements are the DHPC and TFTP Server (Setup).

Share the directory c:\tftpboot\ploplinux-netboot with the share name ploplinux-netboot.


Parameter: smbmount=//SERVER/SHARE:SMBUSER:SMBPASSWORD

SMBUSER: user to access the share. If the share permits access to all users then use "" for SMBUSER
SMBPASSWORD: password of the user to access the share. For an empty password use ""

Example: smbmount=//10.0.0.1/ploplinux:myuser:mypass
Example: smbmount=//10.0.0.1/ploplinux:myuser2:""

File name: c:\tftpboot\ploplinux-netboot\pxelinux.cfg\smb.conf

# Boot from Samba/Windows share

label linux-smb
menu label Plop Linux - Samba
    kernel syslinux/kernel/bzImage
    append initrd=syslinux/kernel/initramfs.gz vga=1 smbmount=//10.0.0.1/ploplinux-netboot:SMBUSER:SMBPASSWORD nomodeset


label linuxfb-smb
menu label Plop Linux framebuffer mode - Samba
    kernel syslinux/kernel/bzImage
    append initrd=syslinux/kernel/initramfs.gz vga=0x317 smbmount=//10.0.0.1/ploplinux-netboot:SMBUSER:SMBPASSWORD

smb.conf is loaded by c:\tftpboot\ploplinux-netboot\pxelinux.cfg\default
Remove the # in the line with #include pxelinux.cfg/smb.conf to enable the loading of smb.conf.

If the tftpd32 is running correct you should be able to boot Plop Linux via network.


2.2. Boot ISO over the Windows network share


You need the ISO ploplinux-24.2-x86_64.iso, the directory structure and files of ploplinux-pxeboot.zip and the syslinux directory of ploplinux-24.2-x86_64.zip. The DHCP and TFTP Server must work.

Requirements are the DHPC and TFTP Server (Setup).

Share the directory c:\tftpboot\ploplinux-netboot with the share name ploplinux-netboot

Copy ploplinux-24.2-x86_64.iso to c:\tftpboot\ploplinux-netboot\

Rename it to ploplinux.iso


Parameter smbmount=//SERVER/SHARE:SMBUSER:SMBPASSWORD iso_filename=ISOFILE

SMBUSER: user to access the share. If the share permits access to all users then use "" for SMBUSER
SMBPASSWORD: password of the user to access the share. For an empty password use ""
iso_filename=: ISO name relative to the share

Example: smbmount=//10.0.0.1/ploplinux-netboot:myuser:mypass iso_filename=ploplinux.iso
Example: smbmount=//10.0.0.1/ploplinux-netboot:myuser:"" iso_filename=ploplinux.iso

File name: c:\tftpboot\ploplinux-netboot\pxelinux.cfg\smb-iso.conf

# Boot from Samba/Windows share - ISO

label linux-smb-iso
menu label Plop Linux - Samba ISO
    kernel syslinux/kernel/bzImage
    append initrd=syslinux/kernel/initramfs.gz vga=1 smbmount=//10.0.0.1/ploplinux-netboot:SMBUSER:SMBPASSWORD iso_filename=ploplinux.iso nomodeset


label linuxfb-smb-iso
menu label Plop Linux framebuffer mode - Samba ISO
    kernel syslinux/kernel/bzImage
    append initrd=syslinux/kernel/initramfs.gz vga=0x317 smbmount=//10.0.0.1/ploplinux-netboot:SMBUSER:SMBPASSWORD iso_filename=ploplinux.iso

smb-iso.conf is loaded by c:\tftpboot\ploplinux-netboot\pxelinux.cfg\default
Remove the # in the line with #include pxelinux.cfg/smb-iso.conf to enable the loading of smb-iso.conf.


3. TFTP


3.1. Boot only with TFTP


Requirements are the DHPC and TFTP Server (Setup).

Create the file c:\tftpboot\ploplinux-netboot\filelist for TFTP boot that lists all Plop Linux files. You can use the program genfilelist.exe from the command line.

genfilelist c:\tftpboot ploplinux-netboot > c:\tftpboot\ploplinux-netboot\tftpfilelist

Example file: c:\tftpboot\ploplinux-netboot\tftpfilelist


Parameter: tftpboot=SERVER|FILELIST dir=PLOPLINUXDIRECTORY

Example: tftpboot=10.0.0.1|ploplinux-netboot/tftpfilelist dir=/ploplinux-netboot/ploplinux

File name: c:\tftpboot\ploplinux-netboot\pxelinux.cfg\tftp.conf

# boot from TFTP

label linux-tftp
menu label Plop Linux - TFTP
    kernel syslinux/kernel/bzImage
    append initrd=syslinux/kernel/initramfs.gz vga=1 tftpboot=10.0.0.1|ploplinux-netboot/tftpfilelist dir=/ploplinux-netboot/ploplinux nomodeset


label linuxfb-tftp
menu label Plop Linux framebuffer mode - TFTP
    kernel syslinux/kernel/bzImage
    append initrd=syslinux/kernel/initramfs.gz vga=0x317 tftpboot=10.0.0.1|ploplinux-netboot/tftpfilelist dir=/ploplinux-netboot/ploplinux

tftp.conf is loaded by c:\tftpboot\ploplinux-netboot\pxelinux.cfg\default
Remove the # in the line with #include pxelinux.cfg/tftp.conf to enable the loading of tftp.conf.


3.2. Boot ISO over TFTP


You need the ISO ploplinux-24.2-x86_64.iso, the directory structure and files of ploplinux-pxeboot.zip and the syslinux directory of ploplinux-24.2-x86_64.zip. The DHCP and TFTP Server must work.

Copy ploplinux-24.2-x86_64.iso to c:\tftpboot\ploplinux-netboot\
Rename it to ploplinux.iso

Create the file c:\tftpboot\ploplinux-netboot\tftpfilelist-iso for TFTP boot with the Plop Linux ISO file name. In the file the path has to use "/" instead of "\".

echo "ploplinux-netboot/ploplinux.iso" > c:\tftpboot\ploplinux-netboot\tftpfilelist-iso


Parameter: tftpboot=SERVER|FILELIST iso_filename=ISOFILE

Example: tftpboot=10.0.0.1|ploplinux-netboot/tftpfilelist-iso iso_filename=ploplinux-netboot/ploplinux.iso

File name: c:\tftpboot\ploplinux-netboot\pxelinux.cfg\tftp-iso.conf

# boot from TFTP - ISO

label linux-tftp-iso
menu label Plop Linux - TFTP ISO
    kernel syslinux/kernel/bzImage
    append initrd=syslinux/kernel/initramfs.gz vga=1 tftpboot=10.0.0.1|ploplinux-netboot/tftpfilelist-iso iso_filename=ploplinux-netboot/ploplinux.iso nomodeset


label linuxfb-tftp-iso
menu label Plop Linux framebuffer mode - TFTP ISO
    kernel syslinux/kernel/bzImage
    append initrd=syslinux/kernel/initramfs.gz vga=0x317 tftpboot=10.0.0.1|ploplinux-netboot/tftpfilelist-iso iso_filename=ploplinux-netboot/ploplinux.iso

tftp-iso.conf is loaded by c:\tftpboot\ploplinux-netboot\pxelinux.cfg\default
Remove the # in the line with #include pxelinux.cfg/tftp-iso.conf to enable the loading of tftp-iso.conf.


4. FTP


4.1. Boot with FTP


Requirements are the DHPC and TFTP Server (Setup) and a FTP Server.

The FTP root directory is in this example /tftpboot/.

Create the file c:\tftpboot\ploplinux-netboot\filelist for FTP boot that lists all Plop Linux files. You can use the program genfilelist.exe from the command line.

genfilelist c:\tftpboot\ploplinux-netboot ploplinux > c:\tftpboot\ploplinux-netboot\ftpfilelist

Example file: c:\tftpboot\ploplinux-netboot\ftpfilelist


Parameter: url=ftp://FTPUSER:FTPPASSWORD@FTPSERVER/FTPDIRECTORY|FILELIST

Example: url=ftp://myuser:mypass@10.0.0.1/ploplinux-netboot|/ftpfilelist

File name: c:\tftpboot\ploplinux-netboot\pxelinux.cfg\ftp.conf

# boot from FTP

label linux-ftp
menu label Plop Linux - FTP
    kernel syslinux/kernel/bzImage
    append initrd=syslinux/kernel/initramfs.gz vga=1 url=ftp://myuser:mypass@10.0.0.1/ploplinux-netboot|/ftpfilelist nomodeset


label linuxfb-ftp
menu label Plop Linux framebuffer mode - FTP
    kernel syslinux/kernel/bzImage
    append initrd=syslinux/kernel/initramfs.gz vga=0x317 url=ftp://myuser:mypass@10.0.0.1/ploplinux-netboot|/ftpfilelist

ftp.conf is loaded by c:\tftpboot\ploplinux-netboot\pxelinux.cfg\default
Remove the # in the line with #include pxelinux.cfg/ftp.conf to enable the loading of ftp.conf.


4.2. Boot ISO over FTP


You need the ISO ploplinux-24.2-x86_64.iso, the directory structure and files of ploplinux-pxeboot.zip and the syslinux directory of ploplinux-24.2-x86_64.zip. The DHCP and TFTP Server must work. A FTP Server must be available.

The FTP root directory is in this example /tftpboot/.

Copy ploplinux-24.2-x86_64.iso to c:\tftpboot\ploplinux-netboot\
Rename it to ploplinux.iso

Create the file c:\tftpboot\ploplinux-netboot\ftpfilelist-iso for FTP boot with the Plop Linux ISO file name. In the file the path has to use "/" instead of "\".

echo "ploplinux.iso" > c:\tftpboot\ploplinux-netboot\ftpfilelist-iso


Parameter: url=ftp://FTPUSER:FTPPASSWORD@FTPSERVER/FTPDIRECTORY|FILELIST iso_filename=ISOFILE

Example: url=ftp://myuser:mypass@10.0.0.1/ploplinux-netboot|/ftpfilelist-iso iso_filename=ploplinux.iso

File name: c:\tftpboot\ploplinux-netboot\pxelinux.cfg\ftp-iso.conf

# boot from FTP - ISO

label linux-ftp-iso
menu label Plop Linux - FTP ISO
    kernel syslinux/kernel/bzImage
    append initrd=syslinux/kernel/initramfs.gz vga=1 url=ftp://myuser:mypass@10.0.0.1/ploplinux-netboot|/ftpfilelist-iso iso_filename=ploplinux.iso nomodeset


label linuxfb-ftp-iso
menu label Plop Linux framebuffer mode - FTP ISO
    kernel syslinux/kernel/bzImage
    append initrd=syslinux/kernel/initramfs.gz vga=0x317 url=ftp://myuser:mypass@10.0.0.1/ploplinux-netboot|/ftpfilelist-iso iso_filename=ploplinux.iso

ftp-iso.conf is loaded by c:\tftpboot\ploplinux-netboot\pxelinux.cfg\default
Remove the # in the line with #include pxelinux.cfg/ftp-iso.conf to enable the loading of ftp-iso.conf.


5. HTTP


5.1. Boot with HTTP


Requirements are the DHPC and TFTP Server (Setup) and a WEB Server.

The Virtual Host root directory is in this example /tftpboot/.

Create the file c:\tftpboot\ploplinux-netboot\filelist for HTTP boot that lists all Plop Linux files. You can use the program genfilelist.exe from the command line.

genfilelist c:\tftpboot\ploplinux-netboot ploplinux > c:\tftpboot\ploplinux-netboot\webfilelist

Example file: c:\tftpboot\ploplinux-netboot\webfilelist


Parameter: url=http://USER:PASS@WEBSERVER/WEBDIRECTORY|FILELIST

Example: url=http://www.ploplinux.com/ploplinux-netboot|/webfilelist
Example: url=http://myuser:mypass@www.ploplinux.com/ploplinux-netboot|/webfilelist

File name: c:\tftpboot\ploplinux-netboot\pxelinux.cfg\http.conf

# boot from HTTP

label linux-http
menu label Plop Linux - HTTP
    kernel syslinux/kernel/bzImage
    append initrd=syslinux/kernel/initramfs.gz vga=1 url=http://www.ploplinux.com/ploplinux-netboot|/webfilelist nomodeset


label linuxfb-http
menu label Plop Linux framebuffer mode - HTTP
    kernel syslinux/kernel/bzImage
    append initrd=syslinux/kernel/initramfs.gz vga=0x317 url=http://www.ploplinux.com/ploplinux-netboot|/webfilelist

http.conf is loaded by c:\tftpboot\ploplinux-netboot\pxelinux.cfg\default
Remove the # in the line with #include pxelinux.cfg/http.conf to enable the loading of http.conf.


5.2. Boot ISO over HTTP


You need the ISO ploplinux-24.2-x86_64.iso, the directory structure and files of ploplinux-pxeboot.zip and the syslinux directory of ploplinux-24.2-x86_64.zip. The DHCP and TFTP Server must work. A WEB Server must be available.

The Virtual Host root directory is in this example c:\tftpboot\.

Copy ploplinux-24.2-x86_64.iso to c:\tftpboot\ploplinux-netboot\
Rename it to ploplinux.iso

Create the file c:\tftpboot\ploplinux-netboot\webfilelist-iso for HTTP boot with the Plop Linux ISO file name. In the file the path has to use "/" instead of "\".

echo "ploplinux.iso" > c:\tftpboot\ploplinux-netboot\webfilelist-iso


Parameter: url=http://USER:PASS@WEBSERVER/WEBDIRECTORY|FILELIST iso_filename=ISOFILE

Example: url=http://www.ploplinux.com/ploplinux-netboot|/webfilelist-iso iso_filename=ploplinux.iso
Example: url=http://myuser:mypass@www.ploplinux.com/ploplinux-netboot|/webfilelist-iso iso_filename=ploplinux.iso

File name: c:\tftpboot\ploplinux-netboot\pxelinux.cfg\http-iso.conf

# boot from HTTP - ISO

label linux-http-iso
menu label Plop Linux - HTTP ISO
    kernel syslinux/kernel/bzImage
    append initrd=syslinux/kernel/initramfs.gz vga=1 url=http://www.ploplinux.com/ploplinux-netboot|/webfilelist-iso iso_filename=ploplinux.iso nomodeset


label linuxfb-http-iso
menu label Plop Linux framebuffer mode - HTTP ISO
    kernel syslinux/kernel/bzImage
    append initrd=syslinux/kernel/initramfs.gz vga=0x317 url=http://www.ploplinux.com/ploplinux-netboot|/webfilelist-iso iso_filename=ploplinux.iso

http-iso.conf is loaded by c:\tftpboot\ploplinux-netboot\pxelinux.cfg\default
Remove the # in the line with #include pxelinux.cfg/http-iso.conf to enable the loading of http-iso.conf.


6. Boot problems


Maybe there is somewhere a wrong path. When you are in the boot menu, then press at the entry that you want to boot the tabulator key. Then add at the end of the line "debug". You will see more info's during booting.



<< Previous
PXE Boot from network (DHCP, TFTP, NFS, Samba, FTP, HTTP) - Linux server

Table of Contents

Next >>
Reduce size


© 2024 by Elmar Hanlhofer