As you asked for syslinux, you intend to install Linux? In that case the easiest option might be to take out the
harddisc of your computer, plug it into another computer which is able to boot from USB or CDROM, install linux
and plug it back to your old computer.
No, syslinux is a package that would be needed to build a PXE boot server supporting pxelinux. You would install syslinux on FreeBSD (or just snag the necessary files out of a syslinux package).
If you're unsure what a discussion is about, which is how I interpret your response, it might be better to avoid answering with a confusing and unhelpful post.
A better answer is this:
I build PXE servers on FreeBSD (not FreeNAS) all the time. I generally use pxelinux with good success, it depends on what the target being booted is. Much stuff works fine with modern pxelinux. Some stuff like ESXi doesn't work with the modern pxelinux and needs older pxelinux. The *BSD's generally don't work well as a pxelinux target and probably need some other toolchain, which is also something I've done.
The fileservice side of PXE booting is something I'd expect FreeNAS to be completely capable of. Basic PXE setups generally involve TFTP, certainly as an initial bootstrap, and can also be used for the remainder of files served as well.
Here's the deal.
You need a DHCP server somewhere that you can configure to hand out boot information. For ISC DHCP, you need to be able to provide the nextboot server and path, as follows:
Code:
subnet 10.91.62.0 netmask 255.255.255.0 {
option routers 10.91.62.5;
option domain-name-servers rns1.sol.net, rns2.sol.net, rns3.sol.net, rns4.sol.net;
range dynamic-bootp 10.91.62.50 10.91.62.99;
default-lease-time 86400;
option subnet-mask 255.255.255.0;
next-server 10.91.62.47;
filename "/bench/gpxelinux.0";
}
So this configures DHCP on 10.91.62.0/24 to assign addresses in the range .50-.99, and to tell the PXE clients that the fileserver is at 10.91.62.47, and that the pathname to be requested should be "/bench/gpxelinux.0". In our case this is what's used on the shop bench to serve up some basic diagnostic tools via PXE. You do not need the subdirectory if you are not supporting multiple PXE environments.
The DHCP stuff is the only part of this that I think FreeNAS probably can't handle out of the box. Your typical consumer home "router" probably won't handle this either. You need a real DHCP server. This is how PXE works. It broadcasts for DHCP and then interprets options in the DHCP response to get itself pointed to a fileserver and path.
The rest of this is literally just files being served by a fileserver. gpxelinux.0 is a variant on pxelinux. You need to set up pxelinux in the TFTP directory specified and test using a TFTP client that when you connect to (in my example) 10.91.62.47 and ask for /bench/gpxelinux.0 that you receive the file. If that doesn't work with a generic TFTP client, it also won't work for PXE.
Our TFTP /bench/ directory looks like
Code:
total 1012
drwxr-xr-x 11 root wheel 1024 Sep 5 08:33 .
drwxr-xr-x 4 root wheel 512 Oct 29 2018 ..
drwxr-xr-x 3 root wheel 512 Nov 7 2018 biosutil
drwxr-xr-x 3 root wheel 512 Nov 7 2018 burnutils
-rwxrwxr-x 1 1026 1026 24560 Oct 6 2014 chain.c32
drwxr-xr-x 5 root wheel 512 Nov 7 2018 diskutil
drwxr-xr-x 2 root wheel 512 Sep 5 08:29 firmutil
-rw-rw-r-- 1 1026 1026 111334 Oct 6 2014 gpxelinux.0
-rwxrwxr-x 1 1026 1026 173108 Oct 6 2014 hdt.c32
-rwxrwxr-x 1 1026 1026 122308 Oct 6 2014 ldlinux.c32
-rwxrwxr-x 1 1026 1026 186500 Oct 6 2014 libcom32.c32
-rwxrwxr-x 1 1026 1026 66524 Oct 6 2014 libgpl.c32
-rwxrwxr-x 1 1026 1026 24132 Oct 6 2014 libmenu.c32
-rwxrwxr-x 1 1026 1026 24148 Oct 6 2014 libutil.c32
-rwxrwxr-x 1 1026 1026 4660 Oct 6 2014 linux.c32
drwxr-xr-x 5 root wheel 512 Nov 7 2018 linuxinst
-rw-rw-r-- 1 1026 1026 91550 Oct 6 2014 lpxelinux.0
-rw-rw-r-- 1 1026 1026 26140 Oct 6 2014 memdisk
-rwxrwxr-x 1 1026 1026 26596 Oct 6 2014 menu.c32
drwxr-xr-x 2 root wheel 512 Nov 7 2018 pxelinux.cfg
-rwxrwxr-x 1 1026 1026 1376 Oct 6 2014 reboot.c32
drwxr-xr-x 5 root wheel 512 Nov 7 2018 sysrescue
drwxr-xr-x 3 root wheel 512 Sep 5 08:32 sysutils
-rwxrwxr-x 1 1026 1026 27104 Oct 6 2014 vesamenu.c32
-rwxr-xr-x 1 root wheel 51392 Sep 5 08:32 wimboot
drwxr-xr-x 3 root wheel 512 Nov 7 2018 wininst
where most of the 2014-dated files are files from the pxelinux download tarball. No need to use "packages", no need to do any complicated install, these simply need to be in the fileserver in the correct directory. Our pxelinux.cfg/default includes menus and submenus for a bunch of tools to do stuff like BIOS flashing, burn-in, disk utils, card firmware updates, etc. There is nothing that actually "runs" on the fileserver other than the TFTP server daemon. You need to get the TFTP bit working 100% but FreeNAS should be able to do that just fine and dandy.
The rest of this is really pxelinux garbage and is out-of-scope for this forum, so don't expect a lot of help building a PXE environment here on these forums, but to give you some more of a push in the right direction, here's an example of what the stuff within a PXE environment might look like. This particular stuff is the stuff out of diskutil/ because that covered several different things including a .ISO, a USB image, and an vmlinuz/initrd setup. This is a small snippet of the pxelinux.cfg/default file covering the "Disk Utilities" submenu
Code:
MENU BEGIN
MENU TITLE Disk Utilities
LABEL reboot
MENU LABEL Reboot System
KERNEL reboot.c32
LABEL dbanz
MENU LABEL DBAN Auto Zero - Erase Disks
MENU PASSWD avadakedavra
MENU PASSPROMPT Enter 'avadakedavra' to erase disk(s)
KERNEL diskutil/dban.bzi
APPEND nuke="dwipe --autonuke --method zero" silent vga=785
LABEL dbanq
MENU LABEL DBAN Auto Quick - Erase Disks
MENU PASSWD avadakedavra
MENU PASSPROMPT Enter 'avadakedavra' to erase disk(s)
KERNEL diskutil/dban.bzi
APPEND nuke="dwipe --autonuke --method quick" silent vga=785
LABEL dbanp
MENU LABEL DBAN Auto Paranoid - Erase Disks
MENU PASSWD avadakedavra
MENU PASSPROMPT Enter 'avadakedavra' to erase disk(s)
KERNEL diskutil/dban.bzi
APPEND nuke="dwipe --autonuke --method prng --rounds 8 --verify all" silent vga=785
LABEL dban
MENU LABEL DBAN Manual Mode
KERNEL diskutil/dban.bzi
APPEND nuke="dwipe" silent vga=785
LABEL clonezilla
MENU LABEL Clonezilla
KERNEL diskutil/clonezilla/vmlinuz
APPEND initrd=diskutil/clonezilla/initrd.img boot=live username=user union=overlay config components quiet noswap edd=on nomodeset nodmraid locales= keyboard-layouts= ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_batch=no net.ifnames=0 nosplash noprompt fetch=http://10.64.62.47/bench/diskutil/clonezilla/filesystem.squashfs
LABEL hdclone
MENU LABEL HDClone (Free Edition)
KERNEL memdisk
APPEND initrd=diskutil/hdclone/hdclone.iso iso raw
LABEL atapwd
MENU LABEL ATA Password Tool
KERNEL memdisk
APPEND initrd=diskutil/fdubcd/fdubcd.img.gz floppy raw c=7 h=255 s=63 ubcdcmd=atapwd
LABEL wdidle3
MENU LABEL Western Digital WDIDLE3
KERNEL memdisk
APPEND initrd=diskutil/fdubcd/fdubcd.img.gz floppy raw c=7 h=255 s=63 ubcdcmd=wdidle3
MENU END
The directory diskutil/ looks like
Code:
diskutil:
-r--r--r-- 1 root wheel 16318688 Jun 4 2015 dban.bzi
diskutil/clonezilla:
total 227432
drwxr-xr-x 2 root wheel 512 Nov 7 2018 .
drwxr-xr-x 5 root wheel 512 Nov 7 2018 ..
-r--r--r-- 1 root wheel 207446016 Aug 16 2018 filesystem.squashfs
-r--r--r-- 1 root wheel 21208264 Aug 16 2018 initrd.img
-r--r--r-- 1 root wheel 4016352 Aug 16 2018 vmlinuz
diskutil/fdubcd:
total 18216
drwxr-xr-x 2 root wheel 512 Nov 7 2018 .
drwxr-xr-x 5 root wheel 512 Nov 7 2018 ..
-r--r--r-- 1 root wheel 18589633 Nov 3 2018 fdubcd.img.gz
diskutil/hdclone:
total 27048
drwxr-xr-x 2 root wheel 512 Nov 7 2018 .
drwxr-xr-x 5 root wheel 512 Nov 7 2018 ..
-r--r--r-- 1 root wheel 27656192 Mar 18 2018 hdclone.iso
So you can see a variety of examples of how arguments can be passed into things like DBAN, or how I am exceedingly lazy and borrowed someone else's prepackaged tools (FBUBCD) to handle ATA Password and WDIDLE3.