Benutzer-Werkzeuge

Webseiten-Werkzeuge


archiv:ubuntu_diskless_clients_mit_einem_freebsd_server

Ubuntu Diskless Clients mit einem FreeBSD Server

Vorbereitung

Server

Um eine entsprechende Basis zu schaffen, hab ich am FreeBSD Server erstmal eine 2 GB Partition fuer den Ubuntu Server angelegt. Dafuer habe ich unter /etc/gvinum eine Konfiguration 'debian_root' angelegt, mit folgendem Inhalt:

drive a device /dev/da1
volume debian_root
 plex org concat
  sd length 2g drive a

wobei /dev/da1 die zweite Raid 5 Partition am Server ist. Anschliessend habe ich mit folgendem Befehl aus der gvinum Partition eine gconcat Partition erstellt, um spaeter bei bedarf die Partition vergroessern zu koennen:

# gconcat label -v debian_share /dev/gvinum/debian_root

Anschliessend habe ich ein neues Dateisystem auf der gconcat Partition erstellt:

# newfs /dev/concat/debian_share

Diese Partition wird dann unter /home/data/diskless/debian gemounted.

Damit dann der Ubuntu Server auf diese Partition zugreifen kann, habe ich folgenden Eintrag in /etc/exports eingefuegt:

/home/data/diskless/debian -maproot=0 10.2.2.100

Wobei 10.2.2.100 die IP des Ubuntu Servers ist, welcher auf einem FSC Scenic C installiert wird.

Client

Um spaeter auf dem FreeBSD NFS Share das Ubuntu Root kopieren zu koennen, muss erstmal eine Ubuntu Installation vorhanden sein. Um dies zu bewerkstelligen habe ich erstmal ein Ubuntu Server iso Image heruntergeladen. Anschliessend hab ich das Image auf CD gebrannt (was auch sonst ;) ).

Am Client hab ich darauf geachtet, dass die Onboard NIC auch aktiviert ist, und die HDD (Groesse 40 GB) vom System erkannt wird.

Installation des Ubuntu Servers

Nachdem ich das iso Image auf eine CD gebannt habe, hab ich den FSC Scenic C mit dieser gebootet, um die Installation zu starten. Ich habe eine einfache Standard Installation durchgefuehrt.

Nachdem diese abgeschlossen war, hab ich das Root-FS auf den NFS Share gemounted:

# mount -t nfs -o nolock 10.2.2.10:/home/data/diskless/debian /mnt
# cp -ax /. /mnt/.
# cp -ax /dev/. /mnt/dev/.

Nach dem kopieren hab ich die /etc/fstab angepasst:

/etc/fstab
proc            /proc           proc    defaults        0       0
/dev/nfs        /               nfs     defaults        1       1
none            /tmp            tmpfs   defaults        0       0
none            /var/run        tmpfs   defaults        0       0
none            /var/lock       tmpfs   defaults        0       0
none            /var/tmp        tmpfs   defaults        0       0

Ausserdem habe ich den Eintrag fuer eth0 aus der /etc/network/interfaces entfernt, da dies sonst beim Booten zu einem Error fuehrt.

Anschliessend habe ich mit chroot nach /mnt gewechselt, um dort die initrd neu zu erstellen. Dazu habe ich in der /etc/initramfs-tools/initramfs.conf den Wert fuer BOOT auf nfs geaendert und anschliessend neu gebaut:

# mkinitramfs -o /boot/initrd.img-2.6.17-10-server-nfs `uname -r`

Konfiguration des Servers

Als erstes hab ich die initrd.img-2.6.17-10-server-nfs und die vmlinuz-2.6.17-10-server nach /home/data/diskless/tftpboot kopiert, damit diese spaeter ueber tftp geladen werden koennen.

Nachdem der Server soweit fertig aufgesetzt ist, habe ich folgendes Packet installiert, um die PXE Bootfaehigkeit zu haben:

# aptitude install syslinux

DHCP

Damit der Client die entsprechenden Informationen bekommt, hab ich in der DHCP Konfiguration folgende Zeilen eingefuegt:

host diskless-tmp {
 hardware ethernet xx:xx:xx:xx:xx:xx;
 fixed-address diskless-tmp.blue-network.local;
 next-server 10.2.2.10;
 filename "pxelinux.0"
}

TFTP Server

Wie im Diskless Ubuntu Howto beschrieben, hab ich unter /home/data/diskless/tftpboot (ja, ich hab ein anderes Rootdir fuer den tftpd Server) ein Verzeichnis namens pxelinux.cfg erstellt. Innerhalb diese Verzeichnisses hab ich dann eine Konfigurationsdatei mit Namen default angelegt. Diese Datei hat folgenden Inhalt:

LABEL linux 
KERNEL vmlinuz-2.6.17-10-server
APPEND root=/dev/nfs initrd=initrd.img-2.6.17-10-server-nfs nfsroot=10.2.2.10:/home/data/diskless/debian ip=dhcp rw

Danach hab ich die Datei /usr/lib/syslinux/pxelinux.0 nach /home/data/diskless/tftpboot kopiert.

Fazit

  • Und der Sinn des Projekt wares, einen Ubuntu Diskless Client nicht nur von einem Ubuntu Server booten zu lassen, sondern dies auch von einem FreeBSD System zu ermoeglichen. Dieses Verfahren eroeffnet ganz neue Moeglichkeiten … ich weis noch nicht welche, aber wird sich zeigen ;)
archiv/ubuntu_diskless_clients_mit_einem_freebsd_server.txt · Zuletzt geändert: von markus

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki