Debian-Eintrag in Grub(2) dauerhaft ändern

Du kommst mit der Installation nicht voran oder willst noch was nachfragen? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
HerrMumba
Beiträge: 3
Registriert: 09.09.2013 19:18:55

Debian-Eintrag in Grub(2) dauerhaft ändern

Beitrag von HerrMumba » 09.09.2013 19:36:00

Heyho an alle,

ich hoffe ich bin hier richtig.
Ich habe auf meinem Notebook Debian/GNU Linux mit verschlüsselten /home- und swap-Partitionen installiert, hab aber noch Platz ein weiteres System zu installieren, das nicht auf die verschlüsselte /home-Partition zugreift. Genau das will ich noch machen, um meinem Mitbewohner Zugriff auf das Notebook zu ermöglichen, ohne dass ich ihm meinen Schlüssel geben muss. Wie kann ich Die Einträge in Grub(2) so ändern, dass man das eine von dem anderen System unterscheiden kann und ohne dass das beim nächsten grub-update wieder rückgängig gemacht wird?

Danke schonmal
Mumba

Benutzeravatar
smutbert
Beiträge: 8350
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Debian-Eintrag in Grub(2) dauerhaft ändern

Beitrag von smutbert » 09.09.2013 20:14:35

Damit ich nicht dasselbe noch einmal schreiben muss, zitiere ich mich aus http://debianforum.de/forum/viewtopic.php?f=28&t=143531 , wenn es erlaubt ist:

smutbert hat geschrieben:[…]
Wenn du den Titel im GRUB Menü anpassen willst, gibt es auch mehrere Möglichkeiten: Die Variante /boot/grub/grub.cfg zu editieren hat NAB ja schon erwähnt, genauso wie die Tatsache, dass diese Änderung beim Ausführen von update-grub, wie es zB bei der Installation oder Aktualisierung von einem Kernel passiert, verloren geht.

Dauerhaft ändern läßt sich das in /etc/grub.d/10_linux — das ist ein Shellskript, das für die Erzeugung der Menüeinträge zuständig ist. Im speziellen müsstest du der Variablen title den gewünschten Wert zuweisen. Ich würde zB. einmal versuchen den Abschnitt

Code: Alles auswählen

…
  if ${recovery} ; then
    title="$(gettext_quoted "%s, with Linux %s (recovery mode)")"
  else
    title="$(gettext_quoted "%s, with Linux %s")"
  fi
  printf "menuentry '${title}' ${CLASS} {\n" "${os}" "${version}"
…
in

Code: Alles auswählen

…
  if ${recovery} ; then
    title="Debian GNU/Linux Desktop, with Linux %s (recovery mode)"
  else
    title="Debian GNU/Linux Desktop, with Linux %s"
  fi
  printf "menuentry '${title}' ${CLASS} {\n" "${version}"
…
zu ändern (die Änderung in der printf… Zeile nicht übersehen!). Wirksam wird das erst nachdem du update-grub ausgeführt hast. Allerdings ist das eine ziemlich häßliche Anpassung ohne jegliche Garantie, ohne Internationalisierung, aber immerhin habe ich es kurz getestet.

HerrMumba
Beiträge: 3
Registriert: 09.09.2013 19:18:55

Re: Debian-Eintrag in Grub(2) dauerhaft ändern

Beitrag von HerrMumba » 09.09.2013 20:28:57

Super... genau das hab ich gesucht. Vielen Dank für die schnelle Antwort. Dann leg ich mal los...

maledora4

Re: Debian-Eintrag in Grub(2) dauerhaft ändern

Beitrag von maledora4 » 09.09.2013 20:31:28

Du mußt bei der Installation des OS für Deinen Mitbewohner darauf achten, daß dessen Bootloader in den PBR der Partition
installiert wird und nicht in den MBR der HDD.

Beispiel:
sda1 ist jetzt Dein System und der Grub2 dazu sitzt im MBR von sda

der Mitbewohner bekommt sda6 und der Bootloader kommt auch in sda6

Nachdem Du die Installation Deines Mitbweohner abgeschlossen hast, startest Du Dein System und machst dort als root in der Konsole ein

Code: Alles auswählen

update-grub
.
Damit wird sein System dauerhaft in das Bootmenü Deines Grub2 eingetragen.
Voraussetzung ist bei Dir das Paket Debianos-prober. Kontrolliere, ob es an Bord ist.

Erfolgt beim Mitbewohner irgendwann ein Kernelupdate, dann mußt Du bei Dir wieder das update-grub machen, damit
Dein Grub2 auch dessen neuen Kernel startet (ansonsten startet immer der alte Kernel).

HerrMumba
Beiträge: 3
Registriert: 09.09.2013 19:18:55

Re: Debian-Eintrag in Grub(2) dauerhaft ändern

Beitrag von HerrMumba » 09.09.2013 21:09:11

Jap... soweit hab ichs im Blick. Ich bin auch schon seit 2 Jahren Linux-Nutzer und hab auch schon so einiges in dessen Umgang erlernt. Mir gings tatsächlich nur um die dauerhafte Änderung der Einträge im Bootmenü. Habs grad ausprobiert, auch mit Zweitsystem und bisher läuft alles zu meiner Zufriedenheit.

Benutzeravatar
smutbert
Beiträge: 8350
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Debian-Eintrag in Grub(2) dauerhaft ändern

Beitrag von smutbert » 09.09.2013 21:12:00

Gegen das Kerneldurcheinander habe ich noch einen alternativen Vorschlag

Du kannst in /etc/grub.d/40_custom am Ende der Datei eigene Menüeinträge für grub hinzufügen. Gesetzt den Fall das zweite System hat keine eigene Bootpartition sondern alles auf dem / Dateisystem. Wenn ich nicht komplett danebenliege werden standardmäßig die Symlinks /vmlinuz und /initrd.img erstellt, die auf den aktuellen Kernel und die Initrd zeigen. Das kann man für einen Menüeintrag nutzen, der sich auch bei einem Kernelupdate nicht verändert werden muss, zB

Code: Alles auswählen

menuentry 'Debian GNU/Linux numero due' {
        search --no-floppy --label --set=root Dateisystemlabel
        linux  /vmlinuz root=LABEL=Dateisystemlabel ro quiet ???
        initrd  /initrd.img
}
oder mit der Angabe der UUID statt des Dateisystemlabels

Code: Alles auswählen

menuentry 'Debian GNU/Linux numero due' {
        search --no-floppy --fs-uuid --set=root DateisystemUUID
        linux  /vmlinuz root=UUID=DateisystemUUID ro quiet ???
        initrd  /initrd.img
}
??? steht für eventuell gewünschte oder notwendige weitere Bootoptionen (vergleiche die einfach mit /proc/cmdline). DateisystemUUID und Dateisystemlabel steht für die UUID bzw. das Dateisystemlabel des / Dateisystems. Beides läßt sich mit blkid herausfinden.

Bei einem eigenen /boot Dateisystem (der Zweitinstallation!) funktioniert es im Prinzip genauso, nur mußt du dafür sorgen, dass die Symlinks auch in /boot landen und nicht in / damit grub ihnen folgen kann. Das funktioniert mit einer /etc/kernel-img.conf mit folgendem Inhalt:

Code: Alles auswählen

do_symlinks = yes
relative_links = yes
link_in_boot = yes
Darüber hinaus musst du in dem Fall natürlich noch die Pfade anpassen und Label bzw. UUID des /boot Dateisystems verwenden.
Zuletzt geändert von smutbert am 09.09.2013 21:36:35, insgesamt 1-mal geändert.

Benutzeravatar
smutbert
Beiträge: 8350
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Debian-Eintrag in Grub(2) dauerhaft ändern

Beitrag von smutbert » 09.09.2013 21:34:52

Die einfachere Variante

Gerade ist mir eine weitere Variante eingefallen, bei der du nicht auf die Symlinks angewiesen bist :mrgreen: Grundsätzlich dasselbe wie vorher, nur dass du nicht direkt Kernel lädst sondern viel mehr quasi einen Menüeintrag erstellst, mit dem du das Grub Menü der Zweitinstallation aufrufen kannst. Einfach

Code: Alles auswählen

menuentry 'GRUB der zweiten Installation' {
        search --no-floppy --label --set=root Dateisystemlabel
        configfile /boot/grub/grub.cfg
}
an /etc/grub.d/40_custom anhängen und update-grub ausführen. Das Dateisystemlabel ist wieder das Label des / Dateisystems der Zweitinstallation. Wenn /boot auf einem eigenen Dateisystem liegt musst natürlich auch dieses Label verwenden und den Pfad nach configfile anpassen (/boot weglassen). Genau wie im vorigen Post könntest du den Eintrag auch leicht für die Verwendung der UUID statt des Labels anpassen.


___

Die Heransgehensweisen meiner letzten beiden Posts haben den Vorteil, dass sie auch ein Update von Grub selbst überleben sollten. Spätestens wenn du /etc/grub.d/40_custom nach beispielsweise /etc/grub.d/40_local kopierst und deine Änderungen dort machst, ist das sichergestellt.
Bei beiden Varianten könntest du auch os-prober deinstallieren, um die automatisch erzeugten Einträge für die jeweils andere Installation loszuwerden.

Antworten