SuSE Linux: Versionen ab 8.1
Als Anwendungsbeispiel wird das Laden der Linuxinstallation bzw. des Rettungssystems über das Netz genommen. Hierbei wird ein Client-Rechner mit Hilfe einer GRUB-Bootdiskette gestartet. Die zum Booten von Linux benötigten Dateien (kernel, initrd) werden von GRUB mit dem tftp-Protokoll, alle weiteren Dateien per ftp oder nfs von einem Server-Rechner übertragen.
Ebenso wäre natürlich möglich, ein Linux-Betriebssystem zu laden und den Client Rechner als Diskless Client zu betreiben. Letztere Konfiguration würde allerdings den Rahmen dieses Artikels sprengen.
rpm -Uhv /media/cdrom/suse/src/grub-0.92-69.src.rpmIm Verzeichnis /usr/src/packages/SOURCES/ finden Sie dann ein tar-ball, in dessen Datei netboot/README.netboot die Parameter zum Kompilieren der Unterstützung für die einzelnen Netzwerkkarten zu finden ist. Um diese Datei in das Verzeichnis /tmp zu extrahieren, können Sie sich an folgendem Beispiel orientieren (bitte die Versionsnummer des GRUB-Pakets anpassen):
tar -xOjf /usr/src/packages/SOURCES/grub-0.92.tar.bz2 grub-*/netboot/README.netboot >/tmp/README.netbootFür eine Intel Ethernet Pro 100 z. B. wird der Parameter "--enable-eepro100" gebraucht. Es empfiehlt sich, nur die Treiber zu aktivieren, die wirklich gebraucht werden, da zu viele einkompilierte Netzwerkkartentreiber GRUB zum Abstürzen bringen können.
Editieren Sie das spec-File, welches Sie unter /usr/src/packages/SPECS/grub.spec finden, mit einem Ascii-Editor Ihrer Wahl. Fügen den Parameter für die Unterstützung Ihrer Netzwerkkarte hinzu. Dies kann dann folgendermassen aussehen:
%build %ifarch x86_64 export CC='cc -m32' CFLAGS="$CFLAGS $RPM_OPT_FLAGS -DNDEBUG -W -Wall -Wpointer-arith -fno-asynchronous-unwind-tables" ./configure \ --prefix=/usr --infodir=%{_infodir} --mandir=%{_mandir} --datadir=/usr/lib/grub \ --disable-auto-linux-mem-opt --enable-diskless --enable-eepro100 %else CFLAGS="$CFLAGS $RPM_OPT_FLAGS -DNDEBUG -W -Wall -Wpointer-arith" ./configure \ --prefix=/usr --infodir=%{_infodir} --mandir=%{_mandir} --datadir=/usr/lib/grub \ --disable-auto-linux-mem-opt --enable-diskless --enable-eepro100 %endif makeOben in diesem Spec File erhöhen Sie noch die Release-Nummer, z. B.:
Release: 70Dann das Spec File speichern und das Paket neu kompilieren:
rpm -bb /usr/src/packages/SPECS/grub.specund installieren:
rpm -Uhv /usr/src/packages/RPMS/i386/grub-0.92-70.i386.rpmErstellen Sie sich auf folgende einfache Art und Weise eine GRUB-Bootdiskette:
cd /usr/lib/grub/ dd if=stage1 of=/dev/fd0 dd if=stage2 of=/dev/fd0 seek=1Durch diese Befehle werden die erste sowie die zweite Stufe des GRUB blockweise direkt auf eine Diskette geschrieben.
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/atftpd /tftpbootDie Installation bzw. das Laden des Rescue-Systems kann per ftp oder per nfs erfolgen. Im Folgenden sei die Konfiguration eines ftp-Servers beschrieben. Installieren Sie die Pakete vsftpd und ftpdir. Zum Aktivieren des ftp-Servers editieren Sie die Datei /etc/inetd.conf: Entkommentieren Sie den Eintrag
ftp stream tcp nowait root /usr/sbin/tcpd vsftpdAktivieren Sie den inted mit dem Aufruf
rcinetd startFalls der inetd beim Booten automatisch starten soll, so können Sie dies mit dem Befehl insserv inetd oder mit Hilfe des Runleveleditors erreichen. Weitere Hinweise zur Konfiguration von Serverdiensten finden Sie im Administrationshandbuch.
Um die SuSE Installations-Dateien freizugeben, kopiert man den Inhalt der CDs bzw. der DVD in das Verzeichnis /srv/ftp/pub oder in ein Unterverzeichnis. Alternativ kann auch einfach die DVD oder die erste CD unter den Mountpoint /srv/ftp/pub eingehangen werden:
mount -t iso9660 -o ro /dev/cdrom /srv/ftp/pub/
grub >Teilen Sie GRUB die IP-Adresse des Client-Rechners, die Netmask sowie die Adresse des Servers mit:
grub > ifconfig --address=192.168.0.2 --mask=255.255.255.0 --server=192.168.0.1Achten Sie auf die Schreibweise (adress ist nicht address)!
grub > dhcpTeilen Sie im nächsten Schritt GRUB mit, dass die Bootdateien über das Netz geladen werden sollen (nd bedeutet "network drive"):
grub > root (nd)Als nächstes wird der Kernel geladen. Dem linuxrc wird mit Hilfe eines weitereren Parameters die Installationsquelle mitgeteilt:
grub > kernel /linux install=ftp://192.168.0.1/pub/Der Kernel linux wird aus dem Hauptverzeichnis des tftp-Servers geladen, die Installationsdateien per ftp, in diesem Fall aus dem Verzeichnis /pub vom Server mit der IP 192.168.0.1.
Falls anstelle der Installation das SuSE Rescue System geladen werden sollen, so hängen Sie an die Zeile den Parameter rescue=1 an. Falls die Dateien per nfs geladen werden sollen, wäre die Syntax install=nfs://server/verzeichnis/. Tipp zum Starten der Installation: Bei manchen Netzwerkkarten mag zum Starten des linuxrc das explizite Laden des Netzwerkkartenmoduls notwendig sein. Fügen Sie in diesem Fall den Parameter insmod=Modulname hinzu, wobei für Modulname das entsprechende Kernelmodul einzusetzten ist. Beispiel für eine Intel EtherExpress PRO/100:
grub > kernel /linux insmod=e100 install=ftp://192.168.0.1/pub/Weitere Parameter zur Installation finden Sie, wenn das Paket linuxrc installiert ist, in der Datei usr/share/doc/packages/linuxrc/linuxrc.html.
Nach dem Kernel wird die Initrd geladen:
grub > initrd /initrdDas System wird schließlich gebootet mit dem Aufruf
grub > bootWenn alles richtig konfiguriert ist, sollte nun die Installation bzw. das Rescue-System starten!
gfxmenu (nd)/message color white/blue black/light-gray default 1 timeout 8 title SuSE Linux Installation kernel (nd)/linux insmod=e100 install=ftp://192.168.0.1/pub/ initrd (nd)/initrd title SuSE Linux Rescue System kernel (nd)/linux insmod=e100 install=ftp://192.168.0.1/pub/ rescue=1 initrd (nd)/initrd title Booting from local hard disk root (hd0) chainloader +1Booten Sie den Client mit der GRUB Bootdiskette und konfigurieren Sie das Netzwerk durch Eingabe des gewohnten ifconfig-Befehls:
grub > ifconfig --address=192.168.0.2 --mask=255.255.255.0 --server=192.168.0.1oder durch:
grub > dhcpDas Menü wird geladen durch die Eingabe von
grub > configfile (nd)/menu.lstNun haben Sie das gewohnte SuSE Bootmenü vor sich, mit dessen Hilfe Sie bequem Ihre Auswahl treffen können.
erde:~ # mke2fs -m 0 /dev/fd0Die Diskette wird nun gemountet, so dass die erforderlichen Bootdateien kopiert werden können:
erde:~ # mount /media/floppy/ erde:~ # cp /usr/lib/grub/stage1 /usr/lib/grub/stage2 /media/floppy/Kopieren Sie auch die im vorherigen Schritt erstellte Datei /tftboot/menu.lst auf die Diskette. Passen Sie die neu erstellte Datei /media/floppy/menu.lst an, indem Sie die Netzwerkkonfiguration an den Beginn der Datei hinzufügen (den bekannten dhcp- bzw. den ifconfig-Befehl):
dhcp gfxmenu (nd)/message color white/blue black/light-gray default 1 timeout 8 title SuSE Linux Installation kernel (nd)/linux insmod=e100 install=ftp://192.168.0.1/pub/ initrd (nd)/initrd title SuSE Linux Rescue System kernel (nd)/linux insmod=e100 install=ftp://192.168.0.1/pub/ rescue=1 initrd (nd)/initrd title Booting from local hard disk root (hd0) chainloader +1Um die Bootdiskette bootfähig zu machen, rufen Sie in der Shell den Befehl grub auf:
erde:~ # grubSie befinden sich nun in der sogenannten Grub-Shell. Durch den folgenden Aufruf wird die sich auf der Diskette befindende Datei stage1 in den Bootsektor der Diskette geschrieben. Weiterhin wird als Parameter übergeben, dass sich stage2 und die Konfigurationsdatei menu.lst ebenso auf der Diskette befinden.
grub > install (fd0)/stage1 (fd0) (fd0)/stage2 p (fd0)/menu.lstDie Grub-Shell verlassen Sie mit:
grub > quitNun wird noch die Diskette ausgehangen:
erde:~ # umount /media/floppyFalls alles geklappt hat, wird beim Booten die Konfiguration nun komplett von der Diskette geladen.
Weitere Hinweise zu GRUB finden Sie unter http://www.gnu.org/manual/grub/html_mono/grub.html. Dieselbe Information können Sie im installierten System mit info grub in einer Shell aufrufen. Weitere Hinweise zum Starten von Linux als diskless client (Kernelparameter zum Booten per nfs) finden Sie in Ihrem Linux-System in der Datei /usr/src/linux/Documentation/nfsroot.txt, sofern die Kernel-Quellen installiert sind (Paket kernel-source).
Abschließender Hinweis: Bitte beachten Sie, dass der kostenlose Installationssupport Ihnen bei dieser Thematik keine Hilfestellung geben kann.
SDB-fhassel_grub_net
)