chengcui:install_freebsd13_via_uefi_pxe

The FreeBSD handbook (Chapter 34.10. Diskless Operation with PXE) on installing FreeBSD via PXE is a good and efficient resource. For my work on the iwlwifi project, I need to install FreeBSD 13.2 via PXE on some of the Beelink SER5 AMD Mini PCs, which have a Realtek PCIe GB Ethernet port and can do UEFI PXE boot in default. Here are some problems that I encountered during the installation and the solutions that I found.

* tftpd: Got ERROR packet: User aborted the transfer: the default boot/pxeboot file from the base system is used for the legacy PXE, not used for UEFI PXE. So my mini PC can’t be PXE booted by this file. The solution is to replace the boot/pxeboot file with the boot/loader.efi file. Like this:

# chroot ${NFSROOTDIR}
# mv boot/pxeboot boot/pxeboot.orig
# cp boot/loader.efi boot/pxeboot

* tftpd: Got ERROR packet: User provided memory block is too small: the default tftp blocksize 512 is too small, change the tftp setup in /etc/inetd.conf to use a larger block size:

tftp	dgram	udp	wait	root	/usr/libexec/tftpd	tftpd blocksize 1468 -l -s /b/tftpboot

* /etc/rc.initdiskless: /rescue/tar: not found: I didn’t found this file in the base system extracted from the official archives such as FreeBSD-13.2-RELEASE-amd64-bootonly.iso or FreeBSD-13.2-RELEASE-amd64-disc1.iso. Instead, I edited the etc/rc.initdiskless file where the tar is:

        if [ -f $j ]; then
            create_md $subdir
            echo "Loading /$subdir from cpio archive $j"
-           (cd / ; /rescue/tar -xpf $j)
+           (cd / ; /usr/bin/tar -xpf $j)
        fi
  • chengcui/install_freebsd13_via_uefi_pxe.txt
  • Last modified: 2023/11/08 22:28
  • by chengcui