The Problem: The main problem is that my old laptop which happens to be my router has a broken cdrom drive and BIOS does not support USB booting but it does support network/pxe booting. And all documents out there are about how to install FreeBSD via PXE using boot/pxeboot file or disk images. I want to use my existing pxelinux based enviroment to do the install.
Solution: Syslinux/pxelinux can actually read ISO images and hence the FreeBSD bootonly iso file can be used.
Ingredients:
- isc-dhcpd
- tftpd-hpa
- vsftpd (optional)
- syslinux (pxelinux)
- FreeBSD bootonly iso file
- FreeBSD disk1 iso file (optional)
Recipie: Setup dhcpd.conf for tftp as described on serveral blogs and docs. Here is the relevant section from mine
subnet 192.168.2.0 netmask 255.255.255.192 {
range dynamic-bootp 192.168.2.30 192.168.2.60; #dynamic or bootp
next-server 192.168.2.1; # TFTP server address
filename "gpxelinux.0"; # PXE boot loader filename
Edit the pxelinug.cfg/default menu and add the following section.
label fbsd menu label FreeBSD ISO Install kernel memdisk initrd images/freebsd/FreeBSD-8.2-RELEASE-i386-bootonly.iso.gz append iso raw
Note i gzipped the iso image and had to use the “raw” option.
And that’s it folks. Very simple. No hanky panky with mdconfig, extracting files, editing loader.conf etc etc. I installed using local ftp but you can use the other options too.