PXE // DragonFlyBSD

See PXE Setup and NFS Install Server for overall PXE and diskless instructions. This is DflyBSD specific.

Introduction

That one was hard. dfly/fbsd don’t provide a modified kernel/ramdisk installer. We had to enable NFSv2 for it to point to a diskless and live system.

Grab the right ISO

It was also hard to find out what we need. We choose ISO as it’s easier to mount.

snapshots/x86_64/images/ -- live system images
snapshots/x86_64/ -- there's a copy of the before-latest image from above

Note the BOOT ISO wasn’t enough for the live system (probably it is for the rescue ramdoisk).

Here we go.

mkdir -p /tftpboot/dfly/
cd /tftpboot/dfly/

# RU
mirror=https://mirror.macomnet.net/pub/DragonFlyBSD
mirror=https://mirror.tochlab.net/pub/DragonFlyBSD

either grab the truly latest

wget $mirror/snapshots/x86_64/images/DragonFly-x86_64-20210427-DEV-v6.1.0.2.g2660f5.iso.bz2

or that copy from the main folder

wget $mirror/snapshots/x86_64/DragonFly-x86_64-LATEST-ISO.iso.bz2

and finally extract it

# tar: Ignoring unknown extended header keyword 'SCHILY.fflags'
apt install libarchive-tools
bsdtar xjf DragonFly-x86_64-20210427-DEV-v6.1.0.2.g2660f5.iso.bz2

PXE setup

TFTP doesn’t work here as the boot-loader tries to reach /boot and it wouldn’t consider the root-path NFS option.

ln -s pxeboot boot/pxeboot.bin
ln -s pxeboot_tftp boot/pxeboot_tftp.bin

vi /tftpboot/pxelinux.cfg/default

label dfly install nfs
    kernel dfly/boot/pxeboot.bin

label dfly install tftp FAILS
    kernel dfly/boot/pxeboot_tftp.bin

vi /etc/dhcp/dhcpd.conf

    option root-path "192.168.1.20:/tftpboot/dfly";

Acceptance

Now everything works.

1 -- live system then login as `root`
1 -- live system then login as `installer`
r -- rescue ramdisk

Resources

The DragonFly Booting Process https://www.dragonflybsd.org/docs/handbook/Booting/

19.7 Diskless Operation https://docs.huihoo.com/dragonflybsd/handbook/network-diskless.html

Daily release snapshots for DragonFly https://mirror.tochlab.net/pub/DragonFlyBSD/snapshots/README.txt

pxeboot - Preboot Execution Environment (PXE) bootloader https://man.dragonflybsd.org/?command=pxeboot&section=8

diskless – booting a system over the network https://man.dragonflybsd.org/?command=diskless&section=8

loader - kernel bootstrapping final stage https://man.dragonflybsd.org/?command=loader&section=8

loader.conf – system bootstrap configuration information https://man.dragonflybsd.org/?command=loader.conf&section=5

boot - system bootstrapping procedures https://man.dragonflybsd.org/?command=boot&section=8

boot0cfg – boot manager installation/configuration utility https://man.dragonflybsd.org/?command=boot0cfg&section=8

discussion

Small install ISO https://users.dragonflybsd.narkive.com/sVkk4DdE/small-install-iso

auto-install

Automating the installation of DragonFly BSD hosts https://web.archive.org/web/20210126183446/https://umbriel.fr/blog/DragonFly_BSD_autoinstall.html

auto-upgrade

dfly-update https://github.com/liweitianux/dfly-update


GUIDES | LECTURES | BENCHMARKS | SMTP HEALTH