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.