Zwar sollte sich das Powermanagement des Mainboards darum kümmern, dass der Rechner in den stromsparenden Suspend-Modus schaltet, in der Praxis funktioniert das aber leider nicht immer. Abhilfe schafft Linux per Software.
Die Theorie von Software Suspend leuchtet ein: Linux schreibt den Inhalt des Arbeitsspeichers und sonstiger Zwischenspeicher, wie dem der Grafikkarte, auf die Swap-Partition und schaltet dann den Computer aus. Beim anschliessenden Start erkennt Linux am Zustand der Auslagerungspartition, dass das Betriebssystem den Computer nicht normal heruntergefahren, sondern stattdessen mit Software Suspend gestoppt hat und stellt daraufhin den Arbeitsspeicher aus den vorliegenden Daten wieder her. Das BIOS und sein Powermanagement-System übergeht es dabei weitgehend; so haben dort eventuell vorhandene Fehler keine Auswirkungen. Dadurch haben Sie Erfolgsaussichten auch mit Geräten, bei denen die eingebauten Suspend-Funktionen per APM oder ACPI nicht funktionieren (S. 63).
Die Wirklichkeit sieht leider oft nicht ganz so rosig aus: Auf die größte Hürde stößt das laufende Betriebssystem beim Auslesen der Daten aus dem Arbeitsspeicher. Denn dazu startet es neue Prozesse, die den Speicherinhalt wiederum verändern. Das System muss also in einem möglichst stabilen Zustand einfrieren. Einige Treiber spielen dabei jedoch nicht immer mit, Sorgenkinder sind beispielsweise die Grafikkartentreiber von NVidia und ATI.
Drei verschiedene Systeme
Derzeit gibt es nicht nur eine Suspend-Software-Lösung sondern drei. Sie alle stammen ursprünglich aus demselbem Projekt und basieren auf dem gleichen Konzept.
Software Suspend (swsusp), das Original, ist im Kernel 2.6 enthalten und deshalb ohne aufwändige Nachinstallation benutzbar. Es benötigt allerdings ein ACPI-fähiges BIOS.
Das Projekt PMDisk hat sich von Swsusp abgespalten, um einige Verbesserungen einzubauen. Kernel 2.6 enthält auch dieses System. Der Vorteil daran ist, dass es auch ohne ACPI funktioniert. Ziel des Kernel-Teams ist es, die Fortschritte beider Projekte möglichst bald wieder unter dem Namen swsusp zu vereinen [1].
Software Suspend 2 (swsusp2) [2] ist ebenfalls eine Weiterentwicklung von Swsusp. Es funktioniert wie PMDisk unabhängig vom Powermanagement-System des BIOS und enthält zusätzliche Features. So spart es Platz, indem es die abzuspeichernden Daten komprimiert. Optional verwendet es statt einer Auslagerungsdatei eine Auslagerungsdatei auf einer Datenpartition. Zudem kommt es auch mit Systemen mit mehreren Prozessoren zurecht. Allerdings ist es noch kein Bestandteil des Standard-Kernels und erfordert deshalb manuelles Patchen und Neukompilieren des Kernels [3].
Es stellt sich nun also die Frage, welches der drei Software-Suspend-Systeme Sie benutzen sollten. Am einfachsten ist es natürlich, eines der beiden bereits im Kernel integrierten Verfahren zu benutzen, um sich das Patchen und Kernel-Bauen zu ersparen. Da allerdings alle drei Systeme noch nicht ausgereift sind, funktionieren nicht alle mit jeder Hardware, so dass sich ein Durchprobieren häufig nicht umgehen lässt.
Alle Software-Suspend-Systeme setzen eine ausreichend große Swap-Partition voraus: Die doppelte Größe des Arbeitsspeichers sorgt üblicherweise für Sicherheit. Platzmangel mündet dabei glücklicherweise nicht in einem Absturz, sondern bricht lediglich den Suspend-Vorgang ab.
Software Suspend, das Original
Der Kernel 2.6 enthält swsusp zwar in der Standardausführung, leider schalten aber nicht alle Distributoren diese Option in ihren ausgelieferten Kerneln ein. Bei Suse und Mandrake ist sie aktiv, Debian- und Fedora-Nutzer müssen für diese Funktion zum Compiler greifen. Aktivieren Sie die Option CONFIG_SOFTWARE_SUSPEND unter Power management options (ACPI, APM) und kompilieren Sie einen neuen Kernel. Beachten Sie hierbei außerdem, dass swsusp ACPI benötigt.
Weiterhin statten Sie Ihren Bootloader zunächst mit entsprechenden Parametern aus. Wenn Sie, wie bei Suse und den meisten anderen Distributionen inzwischen üblich, Grub [4] benutzen, passen Sie dazu die Datei /boot/grub/menu.lst mit einem Texteditor an: An die kernel-Zeile Ihres üblicherweise verwendeten Kernels hängen Sie den Parameter resume=/dev/hdaX an, wobei Sie /dev/hdaX durch Ihre Swap-Partition ersetzen, beispielsweise /dev/hda6. Mit dem Befehl fdisk -l /dev/hda | grep swap erfahren Sie, welcher Wert auf Ihrem System zutrifft.
Zur Sicherheit kopieren Sie den kompletten Eintrag und erstellen daraus einen neuen Menüeintrag im Boot-Menü. Diesem geben Sie einen anderen Namen, beispielsweise durch das Anhängsel noresume in der title-Zeile. In der kernel-Zeile des neuen Eintrags löschen Sie den resume-Parameter wieder und fügen stattdessen pmdisk=off noresume noresume2 hinzu. Mit diesem Eintrag booten Sie Ihr System neu, falls es aus dem Suspend-Zustand nicht erfolgreich wieder startet. Die Datei /boot/grub/menu.lst sieht auf unserem Beispielsystem anschließend so aus:
title SuSE Linux kernel (hd0,1)/boot/vmlinuz root=/dev/hda2 vga=791 resume=/dev/hda6 initrd (hd0,1)/boot/initrd title SuSE Linux noresume kernel (hd0,1)/boot/vmlinuz root=/dev/hda2 vga=791 pmdisk=off noresume noresume2 initrd (hd0,1)/boot/initrd
Beim nächsten Neustart dient nun der erste Eintrag, im Beispiel SuSE Linux zum normalen Starten und zum Wiederherstellen nach einem erfolgten Software Suspend. Der zweite Eintrag, hier SuSE Linux noresume dient als Rettungsanker für den Fall, dass das Wiederherstellen nicht funktioniert. Die Parameter pmdisk=off und noresume2 sind für swsusp eigentlich nicht nötig, sie erledigen das Gleiche wie noresume für die beiden anderen Software-Suspend-Systeme.
Unter Suse kümmert sich das Programm powersave um die Energiesparfunktionen, in der Voreinstellung jedoch nicht um swsusp. Um das zu ändern, ändern Sie in der Datei /etc/powersave.conf den Eintrag POWERSAVED_DISABLE_USER_SUSPEND von yes auf no.
Dann beginnt der erste Test. Für den Fall des Nichtgelingens empfiehlt sich zunächst der Single-User-Modus, den Sie über den Befehl init 1 erreichen. Nach Eingabe des root-Passworts versetzen Sie den Rechner in den Suspend-Zustand: Unter Suse starten Sie dazu den Powersave-Daemon mit /etc/init.d/powersaved start und geben anschließend powersave --suspend ein. Bei anderen Distributionen genügt die Befehlszeile sync && echo 4 > /proc/acpi/sleep.
Hat dieser Test funktioniert, tasten Sie sich weiter vor über den Multi-User-Modus zunächst ohne grafische Oberfläche, den Sie mit init 3 erreichen. Unter Debian verwenden Sie stattdessen init 2 und beenden den grafischen Login-Manager manuell mit /etc/init.d/kdm stop im Falle von KDM.
War auch dieser Versuch erfolgreich, probieren Sie es mit grafischer Oberfläche mit dem Befehl init 5, unter Debian starten Sie den Login-Manager wieder mit /etc/init.d/kdm start.
Läuft eine grafische Oberfläche ohne speicherintensive Anwendungen dauert der Wechsel in den Suspend-Modus zwischen 10 und 20 Sekunden, das Aufwachen 30 bis 40 Sekunden. Je nach Geschwindigkeit des Rechners und Auslastung des Arbeitsspeicher variieren diese Zeitrahmen.
PMDisk
Wie swsusp gehört auch PMDisk zum Standard-Kernel seit Version 2.6. Das Projekt unterscheidet sich von swsusp vor allem darin, dass es nicht von ACPI abhängt; so bietet es sich für Rechner an, die APM verwenden. Aber auch auf ACPI-Rechnern, die mit swsusp nicht in den Suspend-Modus wechseln, funktioniert dies oft mit PMDisk.
Auf Grund der engen Verwandtschaft mit swsusp unterscheidet sich die Verwendung von PMDisk kaum. Bei den meisten Distributionen enthält der mitgelieferte Kernel die nötigen Funktionen bereits. Unter Debian dagegen aktivieren Sie die Option CONFIG_PM_DISK nachträglich und kompilieren damit einen neuen Kernel.
Den Boot-Manager passen Sie in der Datei /boot/grub/menu.lst analog zu swsusp an, aber statt des Parameter resume verwenden Sie pmdisk=/dev/hdaX:
title SuSE Linux kernel (hd0,1)/boot/vmlinuz root=/dev/hda2 vga=791 pmdisk=/dev/hda6 initrd (hd0,1)/boot/initrd
Den Rettungseintrag belassen Sie wie im swsusp-Abschnitt beschrieben, da Sie dort bereits den Parameter pmdisk=off eingetragen haben.
Aktivieren Sie nun PMDisk mit dem Befehl sync && echo -n "disk" > /sys/power/state. Der Befehl sync dient auch hier als Vorsichtsmaßnahme, für den Fall eines Absturzes schreibt er die Daten vor dem Aktivieren von PMDisk aus den Zwischenspeichern auf die Festplatte.
Software Suspend 2
Auch Software Suspend 2 [2] ist eine Weiterentwicklung des originalen Software Suspend. Es verfügt über eine Reihe neuer Features: Statt auf die Swap-Partition schreibt es auf Wunsch in eine Datei auf dem Dateisystem, es komprimiert die Daten vor dem Speichern und unterstützt Systeme mit mehreren Prozessoren und mit mehr als einem Gigabyte Arbeitsspeicher. Auch mit verschlüsselten Swap-Partitionen kommt swsusp2 zurecht.
Weitere Verbesserungen bleiben für den Benutzer unsichtbar. So verwendet swsusp2 so genannte Freezer, die auch unter hoher Last ein zuverlässigeres Einleiten des Hibernate-Vorgangs ermöglichen. Zudem sortiert es überflüssige Daten aus dem Zwischenspeicher aus, so dass es weniger Platz auf der Swap-Partition benötigt.
Der offizielle Kernel 2.6 enthält Software Suspend 2 jedoch noch nicht. Deshalb müssen Sie den Kernel-Quellcode mit einem Patch versehen und anschließend neu kompilieren. Probleme ergeben sich bei Distributionen, die den Kernel selbst um eigene Patches ergänzt haben, da sie oft in Konflikt mit dem swsusp2-Patch geraten. Verwenden Sie deshalb den unmodifizierten Kernel.

Abbildung 1: Das Logo Software Suspend 2 bringt’s auf den Punkt.
Kernel patchen
Auf der Heft-CD finden Sie den Patch der Version 2.0.0.105 für Kernel 2.6.8.1 in der Datei software-suspend-2.0.0.105-for-2.6.8.1.tar.bz2. Auch Version 2.0.0.109 liegt im selben Verzeichnis, aber in unseren Tests erwies sich 2.0.0.105 als weniger problematisch. Auf Grund der hohen Entwicklungsgeschwindigkeit kann sich ein Blick nach neuen Versionen auf die Download-Seite lohnen. Auch ältere Patches sind hier noch zu finden.
Zudem finden Sie dort das Paket Hibernate, das Konfigurationsdateien sowie das Skript hibernate, das den Schlafzustand auslöst, enthält. Installieren Sie es als root mit rpm -Uvh hibernate-0.98-1.i386.rpm, unter Debian verwenden Sie dpkg -i hibernate_0.98-1_all.deb.
Die aktuellen Kernel-Quellen der Version 2.6.8.1 liegen auf der Heft-CD im Pfad LinuxUser/kernel-2.6.8.1. Wechseln Sie als root ins Verzeichnis /usr/src/ und entpacken Sie zunächst den Kernel mit tar xjf linux-2.6.8.1.tar.bz2. Dann folgt der swsusp2-Patch mit tar xjf software-suspend-2.0.0.105.tar.bz2.
Nun erweitern Sie den Original-Kernel um den Patch. Wechseln Sie ins Verzeichnis /usr/src/linux-2.6.8.1/ und geben Sie den Befehl ../software-suspend-2.0.0.105-for-2.6.8.1/apply ein. Das Skript bietet die Möglichkeit, einige Extras zu verwenden. Diese benötigen Sie meist nicht, so dass Sie die verneinende Voreinstellung mit [Enter] beibehalten. Läuft alles nach Plan, erhalten Sie folgende Ausgabe:
/usr/src/linux-2.6.8.1 # ../software-suspend-2.0.0.105-for-2.6.8.1/apply Apply KDB patches (for serious debugging capabilities) [yN]? Apply Bootsplash patches (includes bootsplash.org patch) [yN]? Apply Win4Lin support patches [yN]? Applying 20-software-suspend-linux-2.6.8.1-rev1-whole … Applying 21-software-suspend-linux-2.6.8.1-rev2-incremental … Applying 21-software-suspend-linux-2.6.8.1-rev3-incremental … Applying 30-software-suspend-core-2.0.0.104-whole … Applying 31-software-suspend-core-2.0.0.105-incremental … All happy!
Als nächstes konfigurieren Sie Ihren neuen Kernel. Um von der aktuell verwendeten Einstellungen auszugehen, kopieren Sie die Konfigurationsdatei des aktuell verwendeten Kernels ins neue Kernel-Verzeichnis mit cp /boot/config-X /usr/src/linux-2.6.8.1/.config. Dabei ersetzen Sie das X durch den Namen Ihrer Kernel-Version.
Anschließend passen Sie die Konfiguration Ihren Wünschen an. Haben Sie das Paket ncurses-devel bzw. ncurses-dev installiert, bringt Sie das Kommando make menuconfig in die textmenügeführte Konfigurationsoberfläche. Mit den Pfeiltasten und [Enter] navigieren Sie durch die einzelnen Punkte. Wählen Sie den Menüpunkt Power management options (ACPI, APM) aus und deaktivieren Sie dort die Einträge Software Suspend (EXPERIMENTAL) und Suspend-to-Disk Support mit der Taste [n]; sie stehen für die beiden anderen Software-Suspend-Systeme.
Darunter finden Sie das Menü Software Suspend 2. Mit [y] aktivieren Sie hier die Punkte Software Suspend 2, Swap Writer, LZF image compression, Text mode console support und Compile in debugging output. Die letzte Option ermöglicht ausführlichere Debugging-Ausgaben (Kasten 1), das hilft bei der Fehlersuche. Möchten Sie keine weiteren Änderungen vornehmen, verlassen Sie durch dreimaliges [Alt+e] die Kernelkonfiguration.
Den konfigurierten Kernel kompilieren Sie nun mit dem Aufruf make bzImage && make modules modules_install. Je nach Prozessorgeschwindigkeit und Konfiguration dauert dies bis zu einigen Stunden. Den neuen Kernel kopieren Sie danach ins /boot/-Verzeichnis: cp arch/i386/boot/bzImage /boot/vmlinuz-suspend2.
Mit mkinitrd erstellen Sie eine zum neuen Kernel passende Initial Ramdisk, es sei denn Sie haben alle zum Lesen des Wurzeldateisystems benötigten Treiber fest in den Kernel kompiliert.
Um den neuen Kernel zu starten, fügen Sie dem Boot-Loader einen neuen Eintrag hinzu, im Falle von Grub tragen Sie folgende Zeilen in die Datei /boot/grub/menu.lst ein, dabei passen Sie die Partitionen Ihrem System an:
title SuSE Linux - Software Suspend 2.0.0.105 kernel (hd0,1)/boot/vmlinuz-suspend2 root=/dev/hda2 vga=791 resume2=swap:/dev/hda6 initrd (hd0,1)/boot/initrd-suspend2
Unser Beispiel verwendet die Partition /dev/hda2 als Wurzeldateisystem. In der Grub-Sprache heißt sie hd0,1: hd0 steht für die erste Festplatte, also hda, und die 1 hinter dem Komma für die zweite Partition, also hda2. Als Swap-Partition verwenden wir hier /dev/hda6. Den Namen des Menüeintrags haben wir an die Suse-Konventionen angelehnt, hier steht Ihnen in der title-Zeile die Wahl frei. Damit finden Sie beim nächsten Neustart den Eintrag SuSE Linux – Software Suspend 2.0.0.105 in Ihrem Boot-Menü, mit dem Sie den neuen Kernel booten.
Konfiguration des Hibernate-Scripts
Damit Software Suspend 2 richtig funktioniert, werfen Sie einen Blick in die Konfigurationsdatei des Hibernate-Skripts unter /etc/hibernate/hibernate.conf. Die Voreinstellung stimmt in den meisten Fällen, folgende Zeilen sollten Sie aber hinzufügen:
RestartServices hotplug StopServices alsasound StartServices aumix LeaveXBeforeSuspend yes
Die Zeile RestartServices hotplug bewirkt, dass das Hibernate-Skript vor dem Suspend den Hotplug-Service stoppt und nach dem Resume wieder startet; damit funktionieren auch USB-Maus und -Tastatur anschliessend wieder problemlos. Die beiden folgenden Zeilen stoppen das Sound-System vor dem Suspend und stellen die Lautstärkeeinstellungen nach dem Resume wider her. LeaveXBeforeSuspend schließlich veranlasst das System, vor dem Suspend auf eine Textkonsole und anschließend wieder in den Grafikmodus zu wechseln. Unsere Tests zeigten andernfalls zahlreiche Probleme mit der Fensterdarstellung und der Tastatur.
Nach diesen Vorarbeiten bereiten Sie das System nun auf den ersten Test vor: Wechseln Sie in den Single-User-Modus mit init 1. Zum Einleiten des Suspend-Modus dient der Befehl hibernate. Funktioniert alles wie gewünscht, finden Sie das System nach dem Resume wieder im selben Zustand wieder wie zuvor. Danach starten Sie hibernate wie bei den anderen Suspend-Systemen beschrieben zunächst im Multi-User-Modus ohne grafische Oberfläche und anschließend mit ihr.
Kasten 1: Troubleshooting – wenn Software Suspend nicht funktioniert
Verschiedene Probleme können das Funktionieren von Software Suspend behindern, die meisten hängen nicht vom verwendeten System ab.
Bricht der Suspend-Vorgang ab oder bleibt gar das System stehen, überprüfen Sie, wenn nötig nach einem Neustart, mit Hilfe des Befehls free, ob auf Ihrer Swap-Partition genügend Platz frei ist:
simon@thinkpad:~$ free
total used free shared buffers cached
Mem: 386660 304692 81968 0 4316 171636
-/+ buffers/cache: 128740 257920
Swap: 975200 128 975072
Hier zeigt die letzte Zeile, dass auf der Swap-Partition noch etwa 975 MByte freier Platz zur Verfügung steht. Liegt das Problem nicht im mangelnden Speicherplatz, überprüfen Sie in den Boot-Parametern, ob Sie unter resume die richtige Partition eingetragen haben.
Nach einem fehlgeschlagenen Resume-Versuch, kann das System die Swap-Partition möglicherweise nicht mehr initalisieren; dann taucht sie in der free-Liste nicht auf. Um Ihre Swap-Partition erneut zu formatieren und zu reaktivieren verwenden Sie die Befehle mkswap /dev/hdaX und anschließend swapon /dev/hdaX.
Eine andere Fehlerquelle können Hardware-nahe Kernel-Module darstellen. Um sie ausfindig zu machen, wechseln Sie mit init 1 in den Single-User-Modus. Lassen Sie sich mit lsmod alle geladenen Module anzeigen und entfernen Sie mit modprobe -r möglichst viele davon. Insbesondere die Sound-, USB- und AGP-Module bereiten des Öfteren Probleme.
Hinweise auf die Fehlerquelle erkennen Sie häufig auch an der Ausgabe des Befehls dmesg nach einem erfolglosen Suspend-Versuch.
Bleibt Software Suspend 2 hängen, wenn die Fortschrittsanzeige (Abbildung 3) bereits auf dem Bildschirm zu sehen ist, bricht die [Esc]-Taste den Vorgang oft noch erfolgreich ab und bringt Sie zurück ins laufende System. Lässt sich an der Ausgabe von dmesg kein Fehler erkennen, aktivieren Sie die eingebauten Debugging-Funktionen:
thinkpad:~# cd /proc/software_suspend thinkpad:/proc/software_suspend# echo 3 > default_console_level thinkpad:/proc/software_suspend# echo 1 > log_everything thinkpad:/proc/software_suspend# echo 7 > debug_sections thinkpad:/proc/software_suspend# echo 1 > pause_between_steps
Anschließend starten Sie den Suspend-Vorgang erneut mit
sync && echo 1 > /proc/software_suspend/activate
Nun erhalten Sie eine ausführliche Bildschirmausgabe, jeden Schritt bestätigen Sie mit der Leertaste. Mit der individuellen Fehlermeldung gewappnet, suchen Sie auf der swsusp2-Homepage [2] unter den häufig gestellten Fragen (FAQ), im Wiki, den Archiven der Mailing-Listen und der restlichen Dokumentation nach Lösungswegen.
Funktioniert Software Suspend zwar im Single-User-Modus, aber nicht in dem Runlevel, den Sie gewöhnlich verwenden, verschuldet dies häufig ein bestimmter Dienst. Um den Missetäter zu erkennen, stoppen Sie vor einem Suspend-Versuch zunächst einen verdächtigen Dienst z. B. mit /etc/init.d/alsa stop. Hilft der erste Test nichts, stoppen Sie weitere Dienste einzeln und starten Sie jeweils wieder den Suspend-Modus, bis Sie wissen, wer das Missgelingen zu verantworten hatte.
Lässt sich kein Dienst finden, der das Software Suspend verhindert, liegt es stattdessen möglicherweise an einem Kernel-Modul. Lassen Sie sich mit lsmod alle geladenen Module anzeigen und entfernen Sie als root mit rmmod Modulname eines nach dem anderen.
Wenn eine bestimmte Hardware, beispielsweise Sound-Karte oder USB-Geräte nach dem Aufwachen nicht mehr funktioniert, stoppen Sie es manuell schon vor dem Suspend: Stoppen Sie als root den zuständigen Dienst und entladen Sie das dazugehörige Kernel-Modul. Nach dem Aufwachen starten Sie den gewünschten Dienst oder laden das Modul mit modprobe wieder in den Speicher. Lässt sich ein Modul nach dem Aufwachen nicht mehr laden, führt es in manchen Fällen zum Erfolg, es statt als Modul fest in den Kernel einzukompilieren.
Bei Software Suspend 2 hilft manchmal ein Umstieg auf eine ältere Version, da sich das Projekt noch im Entwicklungsstadium befindet. Insbesondere ab Version 2.0.0.93 hat es größere Änderungen gegenüber den Vorgängern gegeben. Zwar funktionieren seitdem einige Laptops zuverlässiger, aber möglicherweise kommt eine ältere Version mit Ihrer Hardware besser zurecht.
Bleiben Ihre Probleme trotz aller Lösungsversuche bestehen, haben Sie vielleicht mit einer der anderen Software-Suspend-Implementierungen oder mit einer Anfrage an die passende Mailing-Liste mehr Erfolg.
Hibernate für User erlauben
Um den Suspend-Vorgang einzuleiten, benötigen Sie root-Rechte. Im Alltag möchten aber gewöhnlich auch andere Benutzer diese Funktion nutzen. Um ihnen dies zu ermöglichen, installieren Sie wenn nötig das Paket sudo nach, bei den meisten Distributionen gehört es aber bereits zur Standardauswahl. Ergänzen Sie die Konfigurationsdatei /etc/sudoers als root um diese Zeilen:
User_Alias USERS = simon, sonstwer Cmnd_Alias HIBERNATE = /usr/sbin/hibernate USERS ALL=NOPASSWD:HIBERNATE
Dies erlaubt den Benutzern simon und sonstwer das Programm /usr/sbin/hibernate mit dem Aufruf sudo /usr/sbin/hibernate ohne Angabe eines Passworts zu starten.
Der Autor
Simon Rutishauser nutzt Debian GNU/Linux, programmiert in C++, Java und Bash und beginnt bald ein Studium der Mikrotechnik in Lausanne.
Infos
[1] Zukunft von Swsusp und PMDisk: http://kerneltrap.org/node/view/3485
[2] Software Suspend 2: http://softwaresuspend.berlios.de
[3] Kernel übersetzen und installieren: Roman Jordan, “Blick ins Innere”, LinuxUser 07/2004, S. 64 ff
[4] Grub: Martin Loschwitz, “Lilos Erben”, LinuxUser 07/2002, S. 71 ff., http://www.linux-user.de/ausgabe/2002/07/071-grub/grub-1.html







