FreeBSD 9 via PXE-Boot und bsdinstall installieren
Mit wenigen Schritten lässt sich ein neuer Server via PXE-Boot aufsetzen.
Benötigt wird ein Server, auf dem die Dienste DHCP, TFTP und NFS laufen. Damit kann ein bootfähiges ISO-Image installiert werden. Folgende Schritte wurden unter FreeBSD 9/8 zur Installation eines FreeBSD 9 durchgeführt.
1. FreeBSD bootonly
Zunächst die zu installierende Version auf dem Server bereitstellen, z.B. mit folgenden Schritten:
mkdir /usr/local/iso cd /usr/local/iso/ fetch ftp://ftp2.de.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/9.0/FreeBSD-9.0-RELEASE-amd64-bootonly.iso
Anzupassen wären Ziel- und Quellpfade.
Dann wird das ISO-Image in das Dateisystem eingehängt und benötigte Dateien in ein neues Verzeichnis kopiert:
mdconfig -a -t vnode -f FreeBSD-9.0-RELEASE-amd64-bootonly.iso md0 mount_cd9660 /dev/md0 /mnt mkdir /usr/local/pxeboot cp -Rv /mnt/ /usr/local/pxeboot umount /mnt mdconfig -d -u 0
Anschließend aus der Datei /usr/local/pxeboot/etc/fstab die Zeile
# /dev/iso9660/FREEBSD_INSTALL / cd9660 ro 0 0
auskommentieren, da das Booten sonst mit einem Fehler unterbrochen wird.
2. TFTP-Server
Der TFTP-Server ist schnell via inetd aktiviert. Einfach in der Datei /etc/inetd.conf in der entsprechende Zeile
#tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /tftpboot
das führende # entfernen, den Pfad anpassen:
tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /usr/local/pxeboot/boot
/etc/rc.d/inetd restart
/etc/rc.d/inetd onestart
oder den inted in Zukunft immer automatisch starten:
echo 'inetd_enable="YES"' >> /etc/rc.conf /etc/rc.d/inetd start
3. DHCP
Installation des Ports isc-dhcp42-server (wie auch immer, ich bevorzuge portinstall isc-dhcp42-server
DHCP Konfiguration
Natürlich sollten IPs und andere Netzwerkeinstellungen auf den eigenen Bedarf angepasst werden. Bei mir sieht die minimalistische Datei /usr/local/etc/dhcpd.conf
ddns-update-style none; server-name "dab"; # name of the tftp-server server-identifier 192.168.0.94; # address of the tftp-server next-server 192.168.0.94; # address of the NFS-server subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.137 192.168.0.199; option routers 192.168.0.1; option root-path "/usr/local/pxeboot"; # root-path for NFS filename "pxeboot"; # filename of NBP (network bootstrap program) }
Dann den dhcp-Server neu starten
/usr/local/etc/rc.d/isc-dhcpd restart
oder einmalig starten
/usr/local/etc/rc.d/isc-dhcpd onestart
oder natürlich permanent
echo 'dhcpd_enable="YES"' >> /etc/rc.conf /usr/local/etc/rc.d/isc-dhcpd start
NFS-Server
Nun noch den NFS-Server konfigurieren:
echo '/usr/local/pxeboot -alldirs -maproot=root -ro' >> /etc/exports
und neu starten
kill -HUP `cat/var/run/mountd.pid`
oder einmalig starten
/etc/rc.d/nfsd onestart
oder bei jedem Systemstart automatisch starten lassen:
echo 'nfs_server_enable="YES"' >> /etc/rc.conf /etc/rc.d/nfsd start
Das war es. Nun sollte es jedem Client möglich sein via PXE zu booten. Dabei sollte automatisch bsdinstall starten, bzw. die Frage ob bsdinstall, eine Konsole oder die Live CD gestartet werden soll.
Kommentare
Sebastian Freitag (nicht überprüft)
30. August 2013 - 4:35
Permanenter Link
Super kurze Anleitung. Gut
Super kurze Anleitung. Gut auf den Punkt gebracht. Danke sehr.
amnael (nicht überprüft)
22. März 2014 - 18:52
Permanenter Link
Wenn ich folgende Zeile
Wenn ich folgende Zeile auskommentiere
# /dev/iso9660/FREEBSD_INSTALL / cd9660 ro 0 0
Hängt sich bei mir die Virtuelle Maschine auf.
Ich versuche FreeBSD via PXE Boot zu installieren.
stefan
2. Dezember 2014 - 16:08
Permanenter Link
Da kann ich leider aktuell
Da kann ich leider aktuell nicht zu sagen. Wenn ich mal wieder eine Maschine aufsetze, werde ich diesen Artikel aktualisieren.