Obwohl Linux als freie Software kostenlos verfügbar ist, setzen viele beim Unternehmenseinsatz auf Enterprise-Distributionen mit Support. Wo die Stärken der ... (mehr)

Gut angepasst

Regulär legt man einen neuen Distributionsdatenträger über die Quellen an. Bei FreeBSD 8 und 9 ist das nicht nötig. Man kann auch aus der originalen CD oder DVD eine angepasste anlegen, was sehr viel schneller geht. Dazu muss zuerst die Original-Installations-CD eingebunden werden. Das geschieht nach dem Einlegen des Datenträgers oder dem Anbinden der CD oder des ISO-Images in einer Virtualisierungslösung mit dem Aufruf

mkdir /cdrom
mount -t cd9660 /dev/cd0 /cdrom

Das Schreiben eines neuen ISO-Images erfordert ein Mastering-Verzeichnis, das nach dem Abschluss der Arbeiten wieder komplett entfernt werden kann. Weiterhin bietet es sich an, die Dateien aus Gründen der Bequemlichkeit mit dem Midnight Commander (»mc« ) anstatt mit »cp« zu kopieren. Für das Schreiben des ISO-Images ist weiterhin »mkisofs« aus den CDR-Tools nötig; um Platz im ISO-Image zu sparen, das Programm »dupmerge« [6], das sich ebenfalls in den Ports befindet. Es lohnt sich nicht, diese Programme aus den Quelltexten zu installieren, das Einspielen aller benötigten Daten direkt vom FreeBSD-FTP-Server übernimmt:

pkg_add -r mc dupmerge cdrtools virtio-kmod

Ist das eine oder andere Programm bereits installiert, stört das nicht weiter, seine Installation wird dann einfach übergangen. Können die Treiber nicht auf dem Server gefunden werden, muss man sie selbst kompilieren. Danach kann mit dem Mastern der neuen Installations-CD oder -DVD begonnen werden.

Der Parameter »-p« von »mkdir« legt den gesamten Pfad in einem Rutsch an, das »-Rvp« von »cp« bedeutet, dass alle Daten rekursiv kopiert werden, dabei das Programm gesprächig ist und alle aktuellen Rechte beibehält. Wer es bequemer will, kopiert die Daten mit dem Midnight Commander, übergeht dabei aber das Verzeichnis ».rr_moved« .

Treiber kopieren

Im nächsten Schritt müssen die zuvor installierten VirtIO-Treiber ebenfalls in das Mastering-Verzeichnis übertragen werden. Sie befinden sich in »/boot/modules« :

cp /boot/modules/virt*ko     /usr/tree/boot/modules
cp /boot/modules/if_vtnet*ko     /usr/tree/boot/modules
cd /usr/tree/boot/modules
kldxref

Nun muss die Datei »/usr/tree/boot/loader.conf« angepasst werden. Sie legt fest, welche externen Gerätetreiber der Kernel zusätzlich lädt. In der FreeBSD-Version 9 gibt es diese Datei noch nicht. Sie muss nach dem Editieren, zum Beispiel mit dem Befehl »ee /usr/tree/boot/loader.conf« , die folgenden Konfigurationszeilen enthalten:

virtio_load="YES"
virtio_pci_load="YES"
virtio_blk_load="YES"
if_vtnet_load="YES"
virtio_balloon_load="YES"

Ohne diese Daten ist die Installation zwar auch möglich, aber extrem umständlich. Der Installationsdatenträger von FreeBSD 8 und 9 unterscheidet sich an dieser Stelle übrigens drastisch. Bis inklusive FreeBSD 8 wird nämlich in eine RAM-Disk gebootet, die von einer Zeile in »loader.conf« eingeschaltet wird, sodass die Datei am Schluss so aussehen sollte:

mfsroot_load="YES"
mfsroot_type="mfs_root"
mfsroot_name="/boot/mfsroot"
virtio_load="YES"
virtio_pci_load="YES"
virtio_balloon_load="YES"
virtio_blk_load="YES"
if_vtnet_load="YES"

Von dem so vorbereiteten Datenträger kann das FreeBSD-System bereits erfolgreich installiert werden. Besser ist es, außerdem den Virtio-Port auf dem Datenträger abzulegen. Falls man ihn kompiliert hat, ist das kein Problem, er befindet sich entweder in »/usr/ports/packages/All« oder, falls »/usr/ports/packages« nicht vorhanden ist, im Verzeichnis »/usr/ports/emulators/virtio-kmod« als Archiv mit der Endung ».tbz« . Diese Datei sollte man in ein Verzeichnis »packages/All« auf den Master kopieren.

Im vorletzten Arbeitsschritt muss jetzt der Master von Dateiduplikaten befreit werden. Der Grund ist, dass beim ursprünglichen Kopieren der ISO-Datei Links aufgelöst und durch Einzeldateien im Verzeichnis »tree« ersetzt wurden. Brennt man einen neuen Master ohne dies zu berücksichtigen, wird er erheblich größer als sein Original. Wieder zu Links werden die jetzigen Dateien durch einen Aufruf von des Filters »dupmerge« . Die Syntax des Aufrufs erfährt man mit »dupmerge -h« . Sie lautet hier

cd /usr/cd/tree
find ./ -type f -print0 | dupmerge

Dies spart etwa 200 000 Blöcke zu je 512 Byte auf dem Datenträger und damit nicht ganz 100 MByte. Im letzten Arbeitsschritt wird das ISO-Image gebrannt:

cd /usr/cd
mkisofs -R -J -no-emul-boot -c boot/.catalog -hide-rr-moved -b boot/cdboot -V "FREEBSD_INSTALL" -o fbsd91-foss.iso tree/
chmod 666 fbsd91-foss.iso

Die Angaben »-R« und »-J« legen lange Dateinamen nach der Unix- (Rockridge) und Windows-Konvention (Joliet) fest, die weiteren Parameter werden für das Bootsystem gebraucht. Sehr wichtig ist ab FreeBSD 9.0 die Bezeichnung »-V "FREEBSD_INSTALL"« , über die das Installationssystem den Datenträger identifiziert.

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Google+

Ausgabe /2020