Samstag, 14. November 2009

Startmenü individualisieren


In einer Dual- oder Multi-Boot-Umgebung meldet sich das Startmenü von Grub 2 mit einer ganzen Reihe von Einträgen. Diese muten meist recht technisch an und viele der Einträge werden nie benutzt. Wann haben Sie das letzte Mal eine Arbeitsspeicher-Prüfung durchführen oder von einer alternativen Kernel-Version starten müssen?

Es wäre also wünschenswert, das Menü etwas aufräumen und Einträge in Klartext darstellen zu können. Dazu gibt es diverse Möglichkeiten, die alle ein wenig Systemkenntnisse voraussetzen.

In der Konfigurationsdatei /etc/default/grub finden Sie in eine Zeile (8), die mit GRUB_DISTRIBUTOR= beginnt. Sie enthält Platzhalter für den Titel des Eintrags im Grub-Startmenü. Leider findet man im Internet kaum Dokumentationen zu den verwendeten Parametern.

Am Schluss dieser Datei gibt es noch eine Zeile #GRUB_DISABLE_LINUX_RECOVERY="true". Entfernt man das Rautezeichen, dann wird der Eintrag für den Recovery-Modus nicht in das Startmenü eingetragen. Das gilt allerdings nur für das aktuelle System, update-grub sammelt nach wie vor bestehende Recovery-Einträge aus anderen startfähigen Partitionen.

Auch die verschiedenen Dateien im Verzeichnis /etc/grub.d lassen sich so steuern, dass gewisse Einträge unterdrückt oder Ausgabetexte geändert werden können. Falls Sie z.B. keine Speichertest-Einträge möchten, können Sie die Datei 20_memtest86+ auch ganz löschen oder per Rechtemanagement unlesbar machen.

Jedoch können all diese Anpassungen bei der nächsten Systemaktualiserung unter Umständen verloren gehen. Deshalb sollten Sie sich an die für Grub 2 vorgesehenen Konventionen halten und individuelle Einträge im Startmenü mit einer eigenen Konfigurationsdatei steuern.

Nehmen wir an, Sie haben ausser dem aktuellen Ubuntu-System mit mehreren Kernel-Versionen auch noch das auf dem Netbook einstmals vorinstallierte Windows inklusive Recovery-Partition belassen und eine weitere Linux-Distribution zu Testzwecken installiert. Das ergibt ein volles Startmenü, von dem Sie aber nur drei Einträge wirklich nutzen. Am Ende der Operation sollen diese Einträge mit angepassten Titel am Anfang der Liste stehen und optisch vom Rest getrennt werden. Alle automatisch erfassten Einträge sollen aber bestehen bleiben; man weiss ja nie, wann sie einmal gebraucht werden könnten.

Zunächst wechseln Sie in das Verzeichnis /etc/grub.d, öffnen die Datei 40_custom als Root und speichern sie unter dem neuen Namen 90_custom. Damit wird sie zuletzt vom Befehl update-grub abgearbeitet. Erst wenn alle Einstellungen getesten sind, verschieben wir sie über die Nummer im Dateinamen an vorderste Stelle.

Öffnen Sie jetzt die Datei /boot/grub/grub.cfg und kopieren Sie die Einträge, die Ihnen wichtig sind, in die Datei 90_custom und zwar im Anschluss an den Text, der sich bereits darin befindet.

Beginnen Sie mit dem Hauptsystem. Suchen Sie die Zeile ### BEGIN /etc/grub.d/10_linux ### und kopieren Sie den Textblock vom Beginn der nächsten Zeile (menuentry) bis einschliesslich zur geschweiften, schliessenden Klammer }.



Nach dem Einfügen in die Datei 90_custom können Sie am Text die gewünschten Änderungen vornehmen. Alles, was in der Zeile menuentry zwischen den beiden Anführungszeichen steht, ist der Text, der als Menüzeile im Startmenü erscheint und kann geändert werden. In der Zeile linux wird eine bestimmte Kernelversion angegeben. Die meisten Linux-Systeme platzieren aber auf der Hauptebene des Dateisystems eine Verknüpfung zum jeweils aktuellen Kernel, in deren Dateiname keine Versionsangabe enthalten ist. Ändern Sie also die Passage /boot/vmlinuz-2.6.31-14-generic in /vmlinuz - den Rest der Zeile belassen Sie. Verfahren Sie genau so in der nächsten Zeile mit dem Eintrag für das temporäre Dateisystem, das für den Startvorgang benutzt wird.



Nun suchen Sie in der Datei grub.cfg nach der Zeile ### BEGIN /etc/grub.d/30_os-prober ### und kopieren die gewünschten Blöcke, also z.B. den für das weitere Linux-System und den für Windows, ohne die Recovery-, Loader- und Memtest-Einträge. Die Reihenfolge können Sie selbst bestimmen. Bei der Linux-Distribution können Sie die Angaben für linux und initrd wie oben beschrieben auf die allgemeinen Namen kürzen. Prüfen Sie aber zuvor, ob sich diese Verknüpfungen tatsächlich auf der obersten Ebene der jeweiligen Partition befinden.

Zum Schluss können Sie noch eine oder mehrere Leerblöcke zur optischen Trennung einfügen. Hier können Sie als Trennzeichen eingeben, was Sie möchten - ausser dem Minuszeichen, das Grub 2 ignoriert. Eine Leerstelle erzeugt eine leere Zeile.



Sichern Sie die Datei und führen Sie im Terminal eine Aktualisierung der Grub-Konfigurationsdatei mit dem Befehl sudo update-grub durch. Prüfen Sie jeden einzelnen Eintrag im Startmenü. Wenn alles wie gewünscht funktioniert, können Sie die Datei in 09_custom umbenennen und eine weitere Aktualisierung der Grub-Konfigurationsdatei durchführen. Das bewirkt, dass die individuellen Einträge zuerst in der Liste angezeigt werden.

Kommentare:

  1. Vielen Dank!

    Die Anleitung hat mich sehr viel weitergebracht!

    AntwortenLöschen
  2. Wirklich sehr gut erklärt - Danke und großes Lob

    AntwortenLöschen

Kommentare werden erst nach einer inhaltlichen Unbedenklichkeitsprüfung zur Veröffentlichung freigegeben.