Debian-Eintrag in Grub(2) dauerhaft ändern
Debian-Eintrag in Grub(2) dauerhaft ändern
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
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
Re: Debian-Eintrag in Grub(2) dauerhaft ändern
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 AbschnittinCode: 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}" …
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.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}" …
Re: Debian-Eintrag in Grub(2) dauerhaft ändern
Super... genau das hab ich gesucht. Vielen Dank für die schnelle Antwort. Dann leg ich mal los...
Re: Debian-Eintrag in Grub(2) dauerhaft ändern
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.
Damit wird sein System dauerhaft in das Bootmenü Deines Grub2 eingetragen.
Voraussetzung ist bei Dir das Paket os-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).
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 os-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).
Re: Debian-Eintrag in Grub(2) dauerhaft ändern
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.
Re: Debian-Eintrag in Grub(2) dauerhaft ändern
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
oder mit der Angabe der UUID statt des Dateisystemlabels
??? 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:
Darüber hinaus musst du in dem Fall natürlich noch die Pfade anpassen und Label bzw. UUID des /boot Dateisystems verwenden.
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
}
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
}
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
Zuletzt geändert von smutbert am 09.09.2013 21:36:35, insgesamt 1-mal geändert.
Re: Debian-Eintrag in Grub(2) dauerhaft ändern
Die einfachere Variante
Gerade ist mir eine weitere Variante eingefallen, bei der du nicht auf die Symlinks angewiesen bist 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
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.
Gerade ist mir eine weitere Variante eingefallen, bei der du nicht auf die Symlinks angewiesen bist 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
}
___
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.