Da mein neuer Tablet PC, ein Lenovo X61 Tablet , ohne optisches Laufwerk ausgeliefert wird, stellt es eine kleine Herausforderung dar Linux oder überhaupt ein Betriebssystem zu installieren, da diese ja doch meist auf einer CD oder DVD ausgeliefert werden. Alternativ gibt es natürlich den Weg über eine bootbare USB-Festplatte oder einen USB-Stick. Da mein Stick allerdings nur 128 MB fasst habe ich hier Platzprobleme. Einen neuen Stick kaufen wollte ich auch grade nicht. Aber es gibt ja noch den Weg über das Netzwerk zu booten und das Installationsmedium über das Netzwerk freizugeben.

Dazu benötigt man einen Rechner der als Server für PXE (Preboot Execution Environment) und NFS (Network File System) dienen kann. Hierzu diente mir mein Laptop auf dem bereits Debian installiert ist als Ausgangsbasis.

Die benötigten Pakete erhält man über den Paketmanager seiner Wahl, diese sind:

1
2
3
4
dhcp3-server
unfs3
tftpd-hpa
xinetd

Danach benötigt man noch sinnvollerweise das PXELINUX, welches man über SYSLINUX beziehen kann. Direkter Link zum Download. Aus der recht umfangreichen gepackten Datei benötigt man nur die Datei:

1
pxelinux.0

Diese befindet sich normalerweise im Core-Verzeichnis. Ebenfalls sollte man sich das aktuelle DVD Abbild von Fedora besorgen (zu finden hier).

Damit hat man alle benötigten Dateien und auch das entsprechende Zubehör.

Die Einrichtung ist im Prinzip recht einfach, es gab nur ein paar Dinge die ich zu beachten herausgefunden habe. Als liebstes Arbeitswerkzeug für die folgenden Schritte nehme man eine Root-Konsole, alternativ eine normale Konsole, welchen Schritten jeweils ein sudo voranzustellen ist, weiß ich nicht.

Der erste Schritt, ist die Konfiguration des DHCP Servers. Ich empfehle hier die Netzwerkinstallation fernab von Routern und anderen Netzen durchzuführen, da es eventuell zu Komplikationen zwischen den einzelnen Einrichtungen kommen kann.
Zuerst sollte man sich überlegen welche Netzwerkschnittstelle man nutzen möchte, in meinem Fall war das die einzige Kabelschnittstelle die mein Laptop zur Verfügung hatte unter Linux als eth0 bezeichnet.
Um zu verhindern, dass es lustige Überschneidungen mit meinem WLAN gibt habe ich ein anderes Subnet gewählt (192.168.3.x statt 192.168.1.x).
Zuerst empfiehlt es sich dann die MAC-Adresse der Schnittstelle über ifconfig herauszufinden. Ifconfig gibt einem in etwa so eine Antwort:

1
2
3
4
5
6
7
eth0      Link encap:Ethernet  Hardware Adresse <strong>XX:XX:XX:XX:XX:XX</strong>  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Speicher:f8200000-f8220000

Wobei statt den XXen natürlich die richtige MAC-Adresse steht. Diese schreibt man sich auf oder kopiert sie in die Zwischenablage (markieren mit der Maus, Strg-Shift-C).
Dann editiert man die DHPC Konfiguration, ich verwende gerne Nano, man kann aber einen anderen Texteditor nach Wahl verwenden:

1
nano /etc/dhcp3/dhcpd.conf

Diese ändert man ab bis nur noch folgende Einträge vorhanden sind:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
# Eigene Konfiguration ab hier -------
next-server  192.168.3.10;  # Server für Bootvorgang festlegen
allow bootp;  # BootP erlauben
allow booting; # booten erlauben
# Subnetzmaske definieren
option subnet-mask  255.255.255.0;
# ping erlauben
ping-check = 1;
# Wichtig - Dateiangabe für PXE
filename="pxelinux.0";
# Subnetz-IP-Adresse
subnet 192.168.3.0;
# zugelassene IP-Adressen einstellen
netmask 255.255.255.0 {
range 192.168.3.11  192.168.3.254
}
# Dem eigenen Server eine feste IP zuweisen
host pxeserv{
   hardware ethernet  <strong>XX:XX:XX:XX:XX:XX</strong>
   fixed-address 192.168.3.10
}

Die XXe wieder mit der bereits gesicherten MAC-Adresse ersetzen.
Damit wäre die Konfiguration des DHCP-Servers bereits abgeschlossen.

Als nächstes legen wir das Verzeichnis /var/lib/tftpboot/ an (bei mir war es bereits vorhanden):

1
mkdir -p /var/lib/tftpboot

Und wenn wir gerade dabei sind können wir auch gleich das Verzeichnis /var/lib/tftpboot/pxelinux.cfg anlegen (ja es ist wirklich ein Verzeichnis und keine Datei):

1
mkdir -p /var/lib/tftpboot/pxelinux.cfg

Dann benötigen wir noch ein weiteres Verzeichnis für das Mounten des Images für das NFS-System:

1
mkdir -p /mnt/fedora

Dann konfigurieren wir tftp, dazu editieren wir die Datei /etc/xinetd.d/tftp:

1
nano /etc/xinetd.d/tftp

Diese Datei sollte dann so aussehen (Copy & Paste ;)):

1
2
3
4
5
6
7
8
9
10
service tftp
{
     disable = no
     socket_type = dgram
     wait = yes
     user = root
     server = /usr/sbin/in.tftpd
     server_args = -v -s /var/lib/tftpboot
     only_from = 192.168.3. 127.0.0.1
}

Das war dann auch schon die Konfiguration von tftp.

NFS ist noch einfacher zu konfigurieren indem man einfach die Datei /etc/exports:

1
nano /etc/exports

Hier muss einfach das Mountverzeichnis und die Leseberechtigungen angegeben werden :

1
/mnt/fedora  192.168.3.0/24 (ro,sync)

So nun müssen wir nur noch ein paar Dateien an ihren vorgesehen Ort bringen und die PXE Konfiguration durchführen.

Dazu mounten wir das Fedora Image:

1
mount -o loop <strong>/home/fedora.iso</strong> /mnt/fedora

Wobei man natürlich den richtigen Pfad zum Image nehmen sollte.

Dann kopieren wir zwei wichtige Dateien (vmlinuz und initrd.img):

1
2
cp /mnt/fedora/images/pxeboot/vmlinuz /var/lib/tftpboot
cp /mnt/fedora/images/pxeboot/initrd.img /var/lib/tftpboot

Jetzt fehlt nur noch die Konfiguration von PXELINUX, dazu legen wir einfach die default Konfiguration fest, theoretisch kann man für jeden PC im Netz eine eigene Konfiguration abspeichern und so für jeden PC ein eigenes System booten lassen.

1
nano /var/lib/tftpboot/pxelinux.cfg/default

Hier sind nur ein paar Zeilen einzufügen:

1
2
3
4
5
default linux
timeout 25
label linux
        kernel vmlinuz
        append initrd=initrd.img

Damit ist eigentlich alles soweit fertig, nun müssen die Dienste nur noch alle gestartet werden:
Falls das Image gemountet ist, muss es jetzt erneut gemountet werden (siehe oben).

1
2
3
4
ifconfig eth0 192.168.3.10
/etc/init.d/dhcp3-server restart
/etc/init.d/xinetd restart
/etc/init.d/unfs3 restart

Jetzt sollte sich der angeschlossene PC über das Netzwerk booten lassen und nach einiger Zeit sollte ein recht hässlicher Miniinstaller von Fedora sichtbar sein, dieser fragt nach Sprache, Tastaturlayout und danach nach der Installationsquelle. Hier könnte man den Rechner wohl auch über Kabel wieder an einen Router anschließen und eine HTTP-Quelle angeben. Da wir uns aber schon für NFS entschieden haben wählen wir NFS aus. Die Netzwerkschnittstelle lassen wir automatisch konfigurieren.
Als NFS-Server nehmen wir 192.168.3.10 und als Verzeichnis /mnt/fedora
Jetzt passiert eine zeitlang scheinbar nichts mehr, allerdings kann man an den Netzwerkschnittstellen kontrollieren ob etwas übertragen wird.

Damit sollte sich dann die grafische Fedorainstallation starten.