{{{#!vorlage Hinweis Diese Howto-Anleitung wurde zuletzt von [user:Frieder108:] am 31. März 2018 unter '''Ubuntu 16.04''' (mit den Derivaten "Kubuntu 18.04", "Ubuntu 18.04" und "KDE-Neon") erfolgreich getestet. }}} [[Inhaltsverzeichnis]] = Problembeschreibung = Das '''Grub-Auswahlmenü '''zeigt bei '''Multiboot''' (mit mehreren Ubuntu-Derivaten wie Xubuntu, Lubuntu, Kubuntu, Gnome, Mate etc.) jeweils '''nicht die Namen der Derivate''' an, sondern stattdessen immer „Ubuntu“. Das kann für manche Benutzer irritierend sein. Es gibt einige Methoden, um im '''Grub-Menü''' die '''Namen der Derivate richtig anzuzeigen'''. Die '''hier gezeigte Variante''' wurde auf '''einem BIOS (bzw. Legacy-)-System ''' getestet - sie basiert auf entsprechenden Forenbeiträgen, deren Ergebnisse hier zusammengefasst wurden. = Anleitung = == Vorbemerkung == Sofern hier von '''Terminaleingaben''' die Rede ist, sind damit gemeint * der Aufruf eines Terminals mit der Tastenkombination [[Vorlage(Tasten, strg+alt+T)]] * die `Kommando-Eingabe` selbst mit dem Abschluss per Eingabetaste [[Vorlage(Tasten, enter)]] Mit "copy+paste" gemeint ist das '''Markieren eines Textes bzw. Kommandos mit der Maus''', anschliessendes Kopieren und Einfügen an eine andere Stelle. Diese Methode ist oft einfacher zu handhaben als Kommandos neu einzutippen. == Ausgangslage == Es wird davon ausgegangen, dass '''Ubuntu und einige Derivate bereits installiert''' und bootfähig sind (einschl. etwa nachinstallierter Treiber). Auch dass die jeweiligen Versionen bereits (z.B. mit GParted) mit '''Labels''' (Bezeichnungen) versehen worden sind. Das hier gezeigte '''Installationsbeispiel''' wird sich von der aktuellen '''Multiboot-Installation anderer User''' unterscheiden. Daraus ergeben sich erforderliche '''Anpassungen''' der beschriebenen Vorgehensweise an die jeweilige Situation - insbesondere wenn ''Devices'', ''Label-Bezeichnungen'' und ''UUIDs'' angesprochen sind! In '''diesem Beispiel''' sind '''Ubuntu''' und '''drei Derivate''' auf Device '''/sda''' installiert. Die '''Labels''' (Bezeichnungen) der jeweiligen Installation sind im Vorfeld mit '''GParted''' bereits erstellt worden. Dabei wurde eine '''SSD (mit 111,24 Gib = 122.101 Mib)''' wie folgt eingerichtet: * Ubuntu 14.04. LTS (als Basissystem) mit Label "Ubu" als ext4-Primär-Partition auf Device /sda/sda1 (22 GiB = 22.528 MiB) * Xubuntu 14.04. LTS mit Label "Xubu" als ext4-Primär-Partition auf Device /sda/sda2 (20 Gib = 20.480 MiB) * Lubuntu 14.04. LTS mit Label "Lubu" als ext4-Primär-Partition auf Device /sda/sda3 (20 Gib = 20.480 MiB) * eine erweiterte Partition als Device /sda/sda4 (57 GiB = 58.368 MiB) * darin: Kubuntu 14.04. LTS mit Label "Kubu" als logische ext4-Partition auf Device /sda/sda5 (20 Gib = 20.480 MiB) * sowie: eine ''swap Partition'' als Device /sda/sda6 (10 Gib = 10.240 MiB) * sowie: eine logische ''ntfs-Partition'' für gemeinsamen Zugriff Ubuntu und Windows als Device /sda/sda7 (27 Gib = 27.648 Mib) * Windows befindet sich auf einer anderen internen SSD als /dev/sdd Für die Ubuntu-Versionen/Derivate wurden in diesem Beispiel '''keine separaten Home-Partitions angelegt!''' Sollten diese gewünscht sein, ist zu berücksichtigen, dass auf Bios-Systemen '''maximal 4 Primär-Partitions''' vorhanden sein dürfen. Die über 3 primäre Partitions hinausgehenden „überzähligen Partitions“ müssen dann in einer 4ten sogenannten „erweiterten“ (extended) Partition als „logische Partitions“ eingebracht werden. Ubuntu bzw. die einzelnen Derivate wurden von einem '''Live-Medium''' (USB-Stick) auf das Ziel-Laufwerk installiert, in diesem Falle auf die eingangs erwähnte ca. 112 GiB SSD mit o. e. Aufteilung. Dabei wurde der '''Boot-Loader GRUB2 nur EINMAL installiert''' und zwar auf '''Device /sda''' (während der Installation das Basis-Systemes Ubuntu 14.04). Alle weiteren Systeme wurden im Modus „Ausprobieren“ vom Desktop des jeweiligen Live-Sticks aus mit der folgenden '''Terminaleingabe''' installiert (was die mehrmalige Installation von GRUB verhindert): {{{#!vorlage Befehl ubiquity -b}}} === Anzeige im Grub-Menü === Das aufgrund der vorgenannten Installationen erzeugte '''Grub-Menü ''' zeigt beim Startvorgang die '''bootbaren Systeme''' wie folgt an (hier mit "schwarzem", im Original mit "blauem" Hintergrund): {{{#!vorlage Befehl *UBUNTU Erweiterte Optionen für Ubuntu Memory test (memtest86+) Memory test (memtest86+, serial console 115200) Ubuntu 14.04.3 LTS (14.04) (auf /dev/sda2) Erweiterte Optionen für Ubuntu 14.04.3 LTS (14.04) (auf /dev/sda2) Ubuntu 14.04.3 LTS (14.04) (auf /dev/sda3) Erweiterte Optionen für Ubuntu 14.04.3 LTS (14.04) (auf /dev/sda3) Ubuntu 14.04.3 LTS (14.04) (auf /dev/sda5) Erweiterte Optionen für Ubuntu 14.04.3 LTS (14.04) (auf /dev/sda5) Windows 8 (loader) (auf /dev(sdd1) }}} Die Derivate '''Xubuntu, Lubuntu und Kubuntu''' werden darin, wie ersichtlich, nicht mit ihrer '''eigenen Bezeichnung''', sondern alle als „Ubuntu“ angezeigt. Das Ziel dieser Vorgehensweise ist es, im Grub-Menü neben dem Basis-Ubuntu auch die "tatsächlichen" Bezeichnungen der Derivate anzuzeigen. === wichtige Dateien === Das Ziel, die '''Derivate mit ihrem eigenen Namen '''im Grub-Menü anzuzeigen, erreicht man durch die Ermittlung und Zuordnung von * '''Geräte-UUIDs''' (Universal Unique Identifyer = universelle eindeutige Kennzeichnungen) * im Vorfeld erstellten '''Labels''' (Bezeichnungen) für die jeweiligen Derivate * '''Devices''' (Laufwerke) Dazu folgender Hinweis zu zwei davon betroffenen Dateien: * In der Datei '''__40_Custom__''' werden u. a. die o. e. UUIDs und Labels (Bezeichnungen) den jeweiligen Laufwerken zugeordnet. Editiert wird die Datei mit der Terminaleingabe {{{#!vorlage Befehl gksudo gedit /etc/grub.d/40_custom}}} * Die Datei '''__grub__''' verwaltet u. a. den '''Eintrag OS_PROBER''' , der zwecks Ausblendung von Basis-Anzeigen des Grub-Menüs abgeschaltet werden kann. Editiert wird die Datei mit der Terminaleingabe {{{#!vorlage Befehl gksudo gedit /etc/default/grub}}} Vor Änderung der o. e. Dateien empfiehlt es sich, davon Backup-Kopien anzulegen (um ggf. den Urzustand wiederherzustellen). == Vorgehensweise == Alle nachfolgend beschriebenen '''Eingaben erfolgen im Terminal''' (Aufruf mit [[Vorlage(Tasten, strg+alt+T)]]) bzw. in Dateien, die sich im Anschluss an die Terminaleingaben öffnen. Vorab wird die Zuordnung der Devices bzw. gefundenen Operating-Systeme mit folgendem Terminal-Kommando angezeigt: {{{#!vorlage Befehl sudo update-grub}}} Die Basis-Ausgabe in diesem Beispiel war zunächst: {{{ Grub-Konfigurationsdatei wird generiert … Linux-Abbild gefunden: /boot/vmlinuz-3.19.0-30-generic initrd-Abbild gefunden: /boot/initrd.img-3.19.0-30-generic Linux-Abbild gefunden: /boot/vmlinuz-3.19.0-25-generic initrd-Abbild gefunden: /boot/initrd.img-3.19.0-25-generic Found memtest86+ image: /boot/memtest86+.elf Found memtest86+ image: /boot/memtest86+.bin Ubuntu 14.04.3 LTS (14.04) auf /dev/sda2 gefunden Ubuntu 14.04.3 LTS (14.04) auf /dev/sda3 gefunden Ubuntu 14.04.3 LTS (14.04) auf /dev/sda5 gefunden Windows 8 (loader) auf /dev/sdd1 gefunden erledigt :~$ }}} Die '''Ubuntu-Derivate''' sind dabei (noch) alle mit der Bezeichnung „Ubuntu“ statt mit ihrem „eigenen“ Namen angezeigt. Zwecks Anzeige der Position der einzelnen '''Devices''', ihrer '''Label''' (Bezeichnungen) und '''UUIDs''' (Universal Unique Identifyer = universelle eindeutige Kennzeichnung) erfolgt folgende Terminaleingabe: {{{#!vorlage Befehl sudo blkid}}} Daraus wird '''folgende Ausgabe''' erzeugt, wobei die angezeigten '''Devices''', '''Label-Bezeichnungen''' und '''UUIDs''' die Grundlage für die gewünschte Anzeige von Derivat-Namen im Grub-Menü bilden - in diesem Beispiel wie folgt: {{{ /dev/sda1: LABEL="Ubu" UUID="7f5581d0-d5a7-458e-8792-db4e4984e839" TYPE="ext4" /dev/sda2: LABEL="Xubu" UUID="3efebb35-14f7-425c-9178-0b924345def5" TYPE="ext4" /dev/sda3: LABEL="Lubu" UUID="0684ce4a-a419-4bd2-9b5e-ec1bf2c09a4c" TYPE="ext4" /dev/sda5: LABEL="Kubu" UUID="8a8a9aea-72b4-4a07-b5a4-37f9dfcdc6bd" TYPE="ext4" /dev/sda6: LABEL="swap" UUID="8b984120-5ef6-4a23-ba1a-02c799b9bf38" TYPE="swap" /dev/sda7: LABEL="ntfs" UUID="42F304F037E7B22E" TYPE="ntfs" /dev/sdb1: LABEL="Daten SSD" UUID="741C68E81C68A6B8" TYPE="ntfs" /dev/sdc1: LABEL="Backup Disk" UUID="1C86CB451F8A84D4" TYPE="ntfs" /dev/sdd1: LABEL="System-reserviert" UUID="AAF0C74AF0C71C07" TYPE="ntfs" /dev/sdd2: LABEL="Win SYSTEM (SSD)" UUID="B616C92E16C8F103" TYPE="ntfs" :~$ }}} (Die dabei neben den '''Devices ''' ausgelesenen '''Labels=Bezeichnungen''' und '''UUIDs''' der Derivate sind - nachfolgend beschrieben - via "copy+paste" in das Schema der Datei '''__40_custom__''' einzutragen - die in diesem Beispiel angezeigten Bezeichnungen sind dabei durch die entsprechenden der jeweiligen Installation zu ersetzen). === Datei 40_custom === Die Datei '''40_custom''' wird mit einem Editor durch folgende Terminaleingabe geöffnet: {{{#!vorlage Befehl gksudo gedit /etc/grub.d/40_custom}}} Danach erscheint (ggf. nach Eingabe eines System-Passwortes) die geöffnete Datei mit folgendem standardmäßigen '''Basis-Eintrag''': {{{ #!/bin/sh exec tail -n +3 $0 # This file provides an easy way to add custom menu entries. Simply type the # menu entries you want to add after this comment. Be careful not to change # the 'exec tail' line above. }}} An diesen vorhandenen Eintrag „anzuhängen“ sind folgende Eintragungen (per "copy+paste"): * je Installation bzw. Derivat '''eine Gruppe''' gemäß der nachstehenden „Syntax“ , beginnend mit menuentry und endend mit } * (in diesem Beispiel je eine Gruppe für Ubuntu, Xubuntu, Lubuntu und Kubuntu) Gruppenbeispiel: {{{[mark] menuentry "Ubu auf /dev/sda1" { insmod ext2 search --no-floppy --fs-uuid --set=root 7f5581d0-d5a7-458e-8792-db4e4984e839 configfile /boot/grub/grub.cfg }[/mark] }}} * in jede Gruppe hinein die Bezeichnungen (Labels) der vorstehend ausgegebenen Derivate sowie die Device/Partition-Position (z.B. menuentry "Ubu auf /dev/sda1") * und die je Label erzeugten, vorstehend angezeigten UUIDs (im Anschluss an set=root. z.B. set=root 7f5581d0-d5a7-458e-8792-db4e4984e839) * dabei sind die jeweiligen Device-Angaben, Labels und UUIDs der '''betreffenden Installation''' zu verwenden (nicht die aus diesem Beispiel)!. Hier die Gesamtheit der einzutragenden Ergänzungen des Beispieles (4 Gruppen), dabei ist auf stellengenaues Eingeben bzw. copy+paste (kopieren und einfügen) zu achten: {{{[mark] menuentry "Ubu auf /dev/sda1" { insmod ext2 search --no-floppy --fs-uuid --set=root 7f5581d0-d5a7-458e-8792-db4e4984e839 configfile /boot/grub/grub.cfg } menuentry "Xubu auf /dev/sda2" { insmod ext2 search --no-floppy --fs-uuid --set=root 3efebb35-14f7-425c-9178-0b924345def5 configfile /boot/grub/grub.cfg } menuentry "Lubu auf /dev/sda3" { insmod ext2 search --no-floppy --fs-uuid --set=root 0684ce4a-a419-4bd2-9b5e-ec1bf2c09a4c configfile /boot/grub/grub.cfg } menuentry "Kubu auf /dev/sda5" { insmod ext2 search --no-floppy --fs-uuid --set=root 8a8a9aea-72b4-4a07-b5a4-37f9dfcdc6bd configfile /boot/grub/grub.cfg }[/mark] }}} Nachdem die Eintragungen erfolgt sind, die Datei '''40_custom''' SPEICHERN und schließen. ABSCHLIESSEND im Terminal eingeben (zwecks Grub-Update): {{{#!vorlage Befehl sudo update-grub}}} === Neustart === JETZT DAS SYSTEM NEU STARTEN (um feszustellen ob die Derivate im Grub-Menü gezeigt werden)! Beim Neustart erscheint ein „verändertes bzw. verlängertes“ Grub-Menü, in dem unterhalb der „ursprünglichen Basiseintragungen“ (ohne Derivat-Namen) jetzt auch die Namen der '''Derivate XUBUNTU, LUBUNTU, KUBUNTU ''' (bzw. deren Kürzel/Label ) erscheinen – wie folgt: {{{#!vorlage Befehl *UBUNTU Erweiterte Optionen für Ubuntu Memory test (memtest86+) Memory test (memtest86+, serial console 115200) Ubuntu 14.04.3 LTS (14.04) (auf /dev/sda2) Erweiterte Optionen für Ubuntu 14.04.3 LTS (14.04) (auf /dev/sda2) Ubuntu 14.04.3 LTS (14.04) (auf /dev/sda3) Erweiterte Optionen für Ubuntu 14.04.3 LTS (14.04) (auf /dev/sda3) Ubuntu 14.04.3 LTS (14.04) (auf /dev/sda5) Erweiterte Optionen für Ubuntu 14.04.3 LTS (14.04) (auf /dev/sda5) Windows 8 (loader) (auf /dev(sdd1) Ubu auf /dev/sda1 Xubu auf /dev/sda2 Lubu auf /dev/sda3 Kubu auf /dev/sda5 }}} Entweder startet man jetzt durch „optischen Vergleich“ das gewünschte Derivat – oder man wählt aus dem unteren Teil des Grub-Menüs eines der DERIVATE aus. Es erscheint sodann ein '''Zusatz-Menü'''. In diesem wählt man die oberste Anzeige {{{#!vorlage Befehl *UBUNTU}}} aus, diese startet dann das vorher ausgewählte Derivat. === Basiseinträge im Grub-Menü „unterdrücken“ === Will man die Anzeige der „ursprünglichen Eintragungen im Basismenü“ unterdrücken und nur noch die „tatsächlichen Namen“ der Derivate im Grub-Menü anzeigen, muss man in der Datei '''grub''' eine Änderung vornehmen. Dies geschieht wie folgt. Im Terminal aufrufen : {{{#!vorlage Befehl gksudo gedit /etc/default/grub}}} (ggf. mit Password wird dann die angezeigte Datei geöffnet) In diese geöffnete Datei grub '''als Anhang''' an die „letzte“ GRUB-Zeile im zweiten Block folgende Zeile einfügen (um OS PROBER abzuschalten): {{{[mark]GRUB_DISABLE_OS_PROBER="true"[/mark]}}} Das erzeugt in diesem Beispiel folgenden Gesamt-Inhalt der Datei: {{{ # If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg. # For full documentation of the options in this file, see: # info -f grub -n 'Simple configuration' GRUB_DEFAULT=0 #GRUB_HIDDEN_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT_QUIET=true GRUB_TIMEOUT=10 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX="" [mark]GRUB_DISABLE_OS_PROBER="true"[/mark] # Uncomment to enable BadRAM filtering, modify to suit your needs # This works with Linux (no patch required) and with any kernel that obtains # the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...) #GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef" # Uncomment to disable graphical terminal (grub-pc only) #GRUB_TERMINAL=console # The resolution used on graphical terminal # note that you can use only modes which your graphic card supports via VBE # you can see them in real GRUB with the command `vbeinfo' #GRUB_GFXMODE=640x480 # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux #GRUB_DISABLE_LINUX_UUID=true # Uncomment to disable generation of recovery mode menu entries #GRUB_DISABLE_RECOVERY="true" # Uncomment to get a beep at grub start #GRUB_INIT_TUNE="480 440 1" }}} Anschließend SPEICHERN und Schliessen. Danach NOCHMALS ein '''Grub-Update''': {{{#!vorlage Befehl sudo update-grub}}} Jetzt erfolgt eine etwas '''abgewandelte Ausgabe '''wie folgt: {{{ Grub-Konfigurationsdatei wird generiert … Linux-Abbild gefunden: /boot/vmlinuz-3.19.0-30-generic initrd-Abbild gefunden: /boot/initrd.img-3.19.0-30-generic Linux-Abbild gefunden: /boot/vmlinuz-3.19.0-25-generic initrd-Abbild gefunden: /boot/initrd.img-3.19.0-25-generic Found memtest86+ image: /boot/memtest86+.elf Found memtest86+ image: /boot/memtest86+.bin erledigt :~$ }}} === Abschluss === Nach dem abschliessenden NEUSTART erfolgt die Anzeige eines „reduzierten“ Grub-Menüs mit ausschließlicher '''Anzeige von UBUNTU und der DERIVATE''' - ohne bisherige Basiseintragungen – wie folgt (hier mit "schwarzem", im Original mit "blauem" Hintergrund): {{{#!vorlage Befehl *UBUNTU Erweiterte Optionen für Ubuntu Memory test (memtest86+) Memory test (memtest86+, serial console 115200) Ubu auf /dev/sda1 Xubu auf /dev/sda2 Lubu auf /dev/sda3 Kubu auf /dev/sda5 }}} Zum '''Booten''' der gewünschten Version, wählt man aus dem „reduzierten“ Grub-Menü jetzt *UBUNTU oder eines der DERIVATE aus. Es erscheint sodann ein '''Zusatz-Menü'''. In diesem wählt man die oberste Anzeige {{{#!vorlage Befehl *UBUNTU}}} aus, '''diese startet dann das zuvor ausgewählte Derivat. ''' = Anmerkung = Ob es sinnvoll ist, Ubuntu und davon abgeleitete Derivate geimeinsam auf einem System zu installieren – oder ob man nur Ubuntu installiert und dazu unterschiedliche Desktop-Oberflächen, sei dahingestellt. Die vorstehende Vorgehensweise wurde mit Ubuntu 14.04 LTS sowie den angezeigten Derivaten auf einem BIOS/Legacy-System getestet. Im Prinzip dürfte dieselbe Vorgehensweise auch bei anderen Ubuntu-Derivaten wie Ubuntu Gnome, Ubuntu Mate oder Ubuntu Studio funktionieren, ggf. auch bei nicht-offiziellen Ubuntu-Derivaten wie Linux-Mint (Cinnamon und Mate). Ausser der vorgenannten Vorgehensweise gibt es weitere Methoden zur Anzeige von Ubuntu-Derivaten im Grub-Menü. Eine davon wird im wiki behandelt, allerdings nicht als "Howto" - siehe hier: [:GRUB_2/Skripte#Anzeige-in-der-Menuezeile:Derivate im Grubmenü - alternative Methode] == Links == * [:GRUB_2/Skripte#Anzeige-in-der-Menuezeile:Derivate im Grubmenü - mit UEFI getestet] * [:Howto:] {Übersicht} - Übersicht aller Howto-Artikel #tag: Howto