Network booting with PXE, using Fedora Core
Computers can be booted trough network, without any CD’s or disks. This article briefly describes the PXE boot system. A system just like the one described here was taken into production use in Helia computer labs in 2005.
© 2003-2005 Tero Karvinen
Extract teros-tftpboot.tar.bz2 to your /tftpboot/.
- pxelinux.0 - Bootloader
- pxelinux.cfg/default - Bootloader menu config, same syntax as isolinux.cfg
- vmlinuz - Kernel image, from distribution to be installed
- initrd.img - Inital ramdisk image, from distribution to be installed
- pxeboot.msg - Text file displayed on pxe boot menu
- README.txt - Explains how the tarball was created
Add to your /etc/dhcpd.conf (where next-server is your server ip-address):
next-server 10.0.0.1; filename "pxelinux.0";
The tarball was created like this (as far as I remember):
# yum install tftp tftp-server $ wget kernel.org*syslinux* $ tar -zxcvf syslinux-* # mkdir /tftpboot/ # chown -R someuser:someuser /tftpboot/ $ cp syslinux-*/pxelinux.0 /tftpboot/ $ cd /ftptpboot/ $ wget ftp://ftp.funet.fi/pub/linux/mirrors/redhat/fedora/linux/core/1/i386/os/images/pxeboot/initrd.img $ wget ftp://ftp.funet.fi/pub/linux/mirrors/redhat/fedora/linux/core/1/i386/os/images/pxeboot/vmlinuz $ mkdir -p /tftpboot/syslinux.cfg/ $ nano /tftpboot/pxelinux.cfg/default
A sample bootloader configuration:
# pxelinux.cfg/default - See http://www.iki.fi/karvinen/pxe.html # Perform a local boot by default default install # Always prompt prompt 1 display pxeboot.msg # Boot automatically after 30 seconds in tenths of a second timeout 300 label local localboot 0 label install kernel vmlinuz append initrd=initrd.img
Tested with Fedora Core 1, 3 and 4 and Dell GX270. Should work with any computer whose BIOS supports PXE, practically any modern computer.
Troubleshooting
The Fedora Core installation tree in that directory does not seem to match your boot media
Installation program (vmlinuz and initrd) is different from package mirror. The kernel (vmlinux) and initial ramdisk image (initrd) used to boot the computer are not the same as the packages in the mirror set in kickstart (url –url).
If you downloaded the tarball above, you got Fedora Core 1 kernel. Download new kernel and replace the files in tftpboot. From your package mirror (eg. Fedora Core 4 http mirror), download vmlinuz and initrd.img from [..]/os/images/pxeboot/ (FC 4 pxeboot/). Put them into your /tftpboot/ where old Fedora Core 1 initrd.img and vmlinuz were. After you have overwritten the old files, try booting again.
See also
http://syslinux.zytor.com/pxe.php
http://cfm.gs.washington.edu/~adioso/HOWTO/RedHat/RHCustomCD.xml
http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-2.06.tar.bz2
Copyrights and Changelog
Copyright 2003 - 2005 Tero Karvinen. All Rights Reserved.
ChangeLog
- 2005-11-14 FC4 notes, new layout
- 2003-11-19 Inital release