Both sides previous revisionPrevious revision | Next revisionBoth sides next revision |
laggdiskless [2011/09/11 21:30] – Some diskless stuff - still WIP peterjeremy | laggdiskless [2011/09/12 00:37] – Finish article peterjeremy |
---|
If you have multiple boxes available, supporting diskless booting provides a convenient way to install, upgrade or recover systems. It can also provide a convenient way to test a planned upgrade without installing the upgrade onto the target host. One downside of diskless booting is that the root filesystem is NFS mounted via the boot interface and it's not possible to PXE boot from a WiFi or lagg interface. Whilst you would typically want the performance of a wired interface for installing/upgrading/recovering, lagg support is important for regression testing and can make installing/upgrading/recovering more convenient. Following some experimentation, I came up with the following configuration: | If you have multiple boxes available, supporting diskless booting provides a convenient way to install, upgrade or recover systems. It can also provide a convenient way to test a planned upgrade without installing the upgrade onto the target host. One downside of diskless booting is that the root filesystem is NFS mounted via the boot interface and it's not possible to PXE boot from a WiFi or lagg interface. Whilst you would typically want the performance of a wired interface for installing/upgrading/recovering, lagg support is important for regression testing and can make installing/upgrading/recovering more convenient. Following some experimentation, I came up with the following configuration: |
| |
| Host configuration for ISC dhcpd 3.1: |
host client_host { # Client name | host client_host { # Client name |
hardware ethernet 00:1e:68:aa:bb:cc; # Wired NIC MAC address | hardware ethernet 00:1e:68:aa:bb:cc; # Wired NIC MAC address |
fixed-address client.f.q.d.n; # FQDN of diskless client | fixed-address client.f.q.d.n; # FQDN or IP address of diskless client |
filename "/tftpboot/pxeboot"; | filename "/tftpboot/pxeboot"; |
next-server 10.11.12.13; # Boot/root server IP | next-server 10.11.12.13; # Boot/root server IP |
vendor-option-space FreeBSD; | vendor-option-space FreeBSD |
option root-path "10.11.12.13:/client/root"; # NFS path to client root filesystem | option root-path "10.11.12.13:/client/root"; # NFS path to client root filesystem |
option host-name "client.f.q.d.n"; | option host-name "client.f.q.d.n"; |
} | } |
| |
| Client ''/etc/rc.conf'' (or ''10.11.12.13:/client/root/etc/conf''): |
ifconfig_ath0="ether 00:1e:68:aa:bb:cc" # Set WiFi MAC address to match wired MAC address | ifconfig_ath0="ether 00:1e:68:aa:bb:cc" # Set WiFi MAC address to match wired MAC address |
wlans_ath0="wlan0" | wlans_ath0="wlan0" |
ifconfig_lagg0="laggport wlan0" | ifconfig_lagg0="laggport wlan0" |
| |
| The magic is an additional script {{lagg.txt|''/etc/rc.d/lagg''}} which flips the IP address from the boot interface to a lagg interface comprising the boot interface. As a result, whilst it's necessary to boot with a LAN cable attached, once the system has booted to multi-user (or at least to the point where ''wpa_supplicant'' has started and authenticated), you can disconnect the LAN cable and run wireless. |