This HOWTO as several parts
- Use case
What is needed
Principal of operation
Get prerequisites
Local test (with only one PC and without any network)
Configuration
Files layout
Test
Code: Select all
mkdir bigInitramfs.d
cd bigInitramfs.d
zcat /path/to/your/initrd.gz | cpio -i -d
cp /path/to/your/lupu-511.sfs .
find . | cpio -o -H newc | gzip -9 > ../bigInitramfs.gz
Code: Select all
append initrd=bigInitramfs.gz
Code: Select all
#!/bin/sh
# MagicZaurus January 2009 for Puppy Linux GPL.
# Based on script from SLAX.
# Enhanced by Ecomoney August 2009
# Customized by Ph. Lelédy
PXE_IP=$(ifconfig "$(ls -1 /sys/class/net | grep eth | head -n 1)" | grep "inet addr" | cut -d : -f 2 | cut -d " " -f 1)
IP_BASE=$(echo $PXE_IP | cut -d "." -f 1-3)
if [ "$PXE_IP" != "" ]; then
killall dnsmasq 2>/dev/null
mkdir -p /var/lib/misc/
./dnsmasq \
--port=0 \
--dhcp-vendorclass=set:PXE,PXEClient \
--tag-if=set:notPXE,tag:!PXE \
--dhcp-ignore=tag:notPXE \
--dhcp-range=tag:PXE,$IP_BASE.110,$IP_BASE.200 \
--no-ping \
--dhcp-boot=pxelinux.0 \
--dhcp-option-force=tag:PXE,208,F1:00:74:7E \
--dhcp-option-force=tag:PXE,209,"default" \
--dhcp-option-force=tag:PXE,210,"pxelinux.cfg/" \
--dhcp-option-force=tag:PXE,211,30 \
--enable-tftp \
--tftp-root=$(pwd)/tftpboot \
$*
# --test
# -k, --keep-in-foreground
# -d, --no-daemon
else
echo "No IP assigned to network interface. Cannot start DHCP and TFTP server."
gxmessage "No IP assigned to network interface. Cannot start DHCP and TFTP server. Please use the network connection wizard to connect to via Ethernet/LAN"
fi
Code: Select all
net-boot/
net-boot/dnsmasq
net-boot/tftpboot
net-boot/tftpboot/pxelinux.0
net-boot/tftpboot/pxelinux.cfg
net-boot/tftpboot/pxelinux.cfg/boot.msg
net-boot/tftpboot/pxelinux.cfg/bigInitramfs.gz
net-boot/tftpboot/pxelinux.cfg/logo.16
net-boot/tftpboot/pxelinux.cfg/vmlinuz
net-boot/tftpboot/pxelinux.cfg/help.msg
net-boot/tftpboot/pxelinux.cfg/default
net-boot/start.sh
Code: Select all
default puppy
display boot.msg
prompt 1
timeout 50
F1 boot.msg
F2 help.msg
LABEL puppy
SAY Booting Puppy Linux from PXE-Server PhL
KERNEL vmlinuz
APPEND initrd=bigInitramfs.gz pkeys=fr
Code: Select all
ifconfig eth0 172.16.123.101
cd /path/to/your/usb/net-boot/
. start.sh -d
Code: Select all
--dhcp-vendorclass=set:PXE,PXEClient \
--tag-if=set:notPXE,tag:!PXE \
--dhcp-ignore=tag:notPXE \