Fedora Core remote über VNC installieren

Fedora Core und CentOS sind ganz nette Distributionen. Wenn man allerdings Fedora oder CentOS auf einem Rechner installieren will, zu dem man keinen physischen Zugriff hat (z.B. Server in einem Rechenzentrum), ist es ganz nett, das ganze per VNC über das Netzwerk zu installieren.

Hinweis

Auch wenn ich im späteren Text vornehmlich von Fedora spreche, ist der Ablauf für CentOS absolut identisch, da die VNC-Installation ein Merkmal des Anaconda-Installers ist, der von beiden Distributionen verwendet wird. Ich habe diese Methode halt zuerst mit Fedora ausprobiert.

Überblick

Die Grundidee der hier vorgestellten Vorgehensweise ist, dass man den speziellen Installer-Kernel und die initrd für Fedora auf das System lädt und im Bootmanager (grub, lilo) diesen Kernel als Standard-Eintrag festlegt und dem Kernel gleichzeitig noch ein paar Parameter übergibt. Dadurch startet nach dem nächsten Neustart automatisch der Anaconda-Installer, der anhand der übergebenen Parameter das Netzwerk automatisch konfiguriert und einen VNC-Server startet. Nun kann die Installation über ein VNC-Programm durchgeführt werden als ob es eine lokale Installation wäre.

Sicherheit

Achtung: VNC-Verbindungen erfolgen unverschlüsselt. Folglich wird das im Installationsverlauf eingegebene root-Passwort im Klartext durch das Internet geschickt. Daher sollte im Installationsprogramm nur ein temporäres root-Passwort gesetzt werden, dass sofort anschließend nach dem Einloggen über SSH geändert wird!

1. Installer-Kernel herunterladen

Die benötigten Dateien (vmlinuz und initrd.img) liegen in den "isolinux"-Verzeichnissen (z.B. wftp.tu-chemnitz.de). Dabei muss natürlich die genaue URL angepasst werden, hier würde CentOS 5 in der 32-Bit-Version installiert.

Diese Dateien müssen unterhalb von /boot kopiert werden. Hintergedanke hierbei ist, dass /boot beim Starten immer verfügbar sein muss. Dadurch sollte der Installer-Kernel eigentlich immer geladen werden können. Das Wurzelverzeichnis '/' könnte hingegen schon wieder Probleme bereiten, wenn es auf einem LVM-Volume liegt, da grub zumindest derzeit (August 2007) nicht von LVM-Volumes booten kann. Prinzipiell ist aber jedes Verzeichnis in Ordnung, auf das grub zugreifen kann.

2. Bootmanager konfigurieren

Nun muss der neue Kernel auch in den Bootmanager eingetragen werden. Das genaue Vorgehen unterscheidet sich natürlich je nach verwendeter Software. Ich stelle hier nur Beispiele für grub und lilo vor.

grub

title f7install
    root (hd0,1)
    kernel /boot/isolinux/vmlinuz [parameter]
    initrd /boot/isolinux/initrd.img

lilo

image=/boot/vmlinuz
    label=f7install
    read-only
    initrd=/boot/initrd.img
    append="parameter"

Nicht vergessen: lilo muss nach dieser Änderung in den Bootsektor geschrieben werden, daher nach dem Speichern 'lilo' aufrufen.

Kernel-Parameter

Außerdem müssen noch zusätzliche Parameter übergeben werden, damit auch wirklich eine VNC-Installation gestartet wird. Grob kann man sagen, dass alle Installationsfragen beantwortet werden müssen, die sonst Fedora im Textmodus anzeigen würde bevor der graphische Anaconda-Installer gestartet wird.

Ich verwende meist folgende Parameter:

vnc vncpassword=geheim lang=de_DE keymap=de resolution=800x600 \
ip=<deine_ip> netmask=<deine_netmask> gateway=<dein_gateway> dns=141.1.1.1 \
method=http://wftp.tu-chemnitz.de/pub/linux/fedora/linux/releases/7/Fedora/i386/os/

Natürlich müssen die Netzwerkdaten an das jeweilige System angepasst werden, ebenso wie 'method' und das VNC-Passwort. Außerdem sollten alle Parameter ohne Zeilenumbruch in einer Zeile geschrieben werden. Ich habe sie hier nur der Lesbarkeit wegen umgebrochen.

Prinzipiell kann der Anaconda-Installer auch mit Hilfe von sog. kickstart-Skripten teilweise oder vollständig automatisiert werden. In diesem Fall wird die Konfiguration nicht mehr über Kernel-Parameter sondern eine Datei vorgenommen, in der auch wesentlich mehr Optionen möglich sind (z.B. Festlegung der Partitionierung).

3. Neustart

Nun muss das System eigentlich nur noch neu gestartet werden und die Installation kann beginnen. Dabei kann es eine Weile (5-10 Minuten) dauern, bis der VNC-Server auch wirklich gestartet wurde. Zudem sollte man beachten, dass der VNC-Server auf dem Display mit der Nummer 1 startet. Entsprechend muss der Aufruf also lauten: vncviewer 127.0.0.1:1

Etwas klappt nicht!

Wenn der VNC-Server nicht startet, kann man leider ohne physischen Zugriff wenig machen, weil auch keine logs auf die Festplatte geschrieben werden<ref>Woher sollte der Installer auch wissen, auf welche Partition er schreiben sollte? Fedora ist im allgemeinen sehr vorsichtig, was Schreibzugriffe angeht - immerhin könnte dadurch auch erheblicher Schaden entstehen, wenn z.B. gelöschte, aber noch nicht überschriebene Daten dadurch endgültig verloren gehen.</ref> Hier hilft letztlich nur scharfes Hinsehen und ggf. das Ausprobieren der VNC-Installation auf Rechnern, auf die man physischen Zugriff hat.

Unter Fedora Core 4 gab es einen Bug, so dass keine Passwörter länger als 11 Zeichen möglich sind. Wenn das Passwort länger war, war keine VNC-Verbindung möglich! Der Fehler ist natürlich in neueren Fedora-Versionen längst behoben.

Im Hetzner-Wiki wird berichtet, dass Rechner mit zwei Netzwerkkarten problematisch seien. Ich habe dies noch nicht ausprobiert, gegebenenfalls also auch auf solche Probleme achten.

Kein installiertes Linux

Wenn es sich um einen Rechner mit einer völlig blanken Festplatte handelt (z.B. der neu gekaufte und super-schnelle Server, der nur leider so laut ist, dass man keine Minute neben ihm im Rechenzentrum stehen will), muss zunächst ein minimales Linux aufgespielt werden, das einen Bootmanager installiert.