This document describes how boot a Knoppix from PXE Server. I am assuming that you already setup PXE booting BEFORE you start doing this. If you don't, and you have CentOS please read this page or if you have a Debian/Ubuntu please read this page.
We are going to use Knoppix and a NFS server required by knoppix to successfully network boot. If you don't have a NFS server or you don't know how to setup one, please read this page (this page covers only the NFS Server setup for CentOS).
First of all we are going to download Knoppix.
[codesyntax lang="bash"]
wget -c http://xenia.sote.hu/ftp/mirrors/knoppix/KNOPPIX_V7.0.4CD-2012-08-20-EN.iso
[/codesyntax]
Generating the required files to PXE boot
Knoppix has the built-in ability to auto-configure itself to network boot itself, and this makes the process rather easy. In the KNOPPIX submenu, select the Start Terminal Server option.
IMPORTANT NOTE! By doing this, it will start up dhcp, and many other services! Running two DHCP servers on the same subnet is generally a very bad idea!
When prompted, select the menu item to configure the terminal server, and run through that.
There are some approaches to don't start more DHCP server:
1. Start Knoppix in a Virtual Machine that has eth disconnected
2. Start Knoppix on a Physical Machine with network cable unplugged (be sure to stop DHCP Server on Knoppix before plug the cable back).
If you are looking in the /tftpboot directory you will find three files that are important to us: kernel, miniroot.gz, and pxelinux.cfg/default. The first is the kernel used to start knoppix, the second is the needed initrd to boot knoppix, and the last one contains all needed settings for your pxelinux configuration. "kernel" is a very generic kernel name, so I renamed mine to "knoppix-kernel", and the miniroot.gz to "knoppix-miniroot.gz"
[codesyntax lang="bash"]
mv /tftpboot/kernel /tftpboot/knoppix-kernel mv /tftpboot/miniroot.gz /tftpboot/knoppix-miniroot.gz
[/codesyntax]
Copy these files to your PXE booting server
[codesyntax lang="bash"]
rsync -avz --stats --progress --partial /tftpboot/knoppix* root@PXE-booting-server:/tftpboot/netboot/knoppix
[/codesyntax]
PXE configuration
On you PXE booting server add the following lines on /tftpboot/pxelinux.cfg/default
[codesyntax lang="bash"]
vim /tftpboot/pxelinux.cfg/default
[/codesyntax]
label knoppix
MENU LABEL knoppix
kernel /netboot/knoppix/knoppix-kernel
append nfsdir=172.20.30.1:/knoppix nodhcp lang=us ramdisk_size=100000 init=/etc/init apm=power-off nomce vga=791 xmodule=fbdev initrd=/netboot/knoppix/knoppix-miniroot.gz BOOT_IMAGE=knoppix
Please note that if you want your Knoppix to boot into runlevel 2 then you have to change vga=791 to vga=normal 2
After starting terminal server my /tftpboot contains only: boot.msg, german.kbd, and miniroot.gz. There is no kernel.