Wie kann ich Grub (oder einen anderen Bootloader) für die Verwendung von Modifikatortasten konfigurieren?

Wie kann ich Grub (oder einen anderen Bootloader) für die Verwendung von Modifikatortasten konfigurieren?

Zur Klarstellung: Ich möchte einen Dual-Boot von Windows und einer Linux-Distribution durchführen. Ich weiß bereits, wie ich meinen Laptop dafür einrichte. Allerdings möchte ich nicht, dass beim Booten das Grub-Menü angezeigt wird. Ich möchte, dass Windows standardmäßig automatisch gebootet wird, es sei denn, beim Booten wird eine Sondertaste gedrückt (z. B. Strg). Wenn die Sondertaste gedrückt wird, wird die Linux-Distribution gebootet.

Ist das möglich?

Antwort1

Dieser Thread auf AskUbuntubehebt ein fast identisches Problem. Anscheinend können Sie den Grub-Dialog ausblenden und ihn durch Drücken von aufrufen shiftund ansonsten das Standardbetriebssystem nach der Zeit booten lassen, die Sie über den GRUB_TIMEOUTEintrag in Ihrer grub.cfg definiert haben.

GRUB_DEFAULT= 2 #depends on which entry Windows is
hiddenmenu #this hides the menu
GRUB_TIMEOUT=3 #example for 3 seconds

Antwort2

Wie Sie in Ihrem Kommentar schreiben, handelt es sich um eine Neuinstallation, daher gehe ich davon aus, dass es mitgeliefert wirdgrub2.

Tatsächlich war es meiner Erfahrung nach schwierig, Windows immer mit Grub1 zu booten. Das Hinzufügen eines neuen Kernels zur Liste der zur Auswahl stehenden Kernelversionen (z. B. nach einem Kernel-Upgrade von Linux) würde die Position des Windows-Eintrags ändern. Dies führte zu einem fest codierten GRUB_DEFAULTVerweis auf etwas anderes (meistens der Speichertest, der von der Grub-Installation zwischen der Liste der Linux-Kernel und dem Windows-Eintrag in der Liste eingefügt wurde). Mit Grub1 habe ich dieses Problem gelöst, indem ich ein Skript hatte, das alle Kernel außer den letzten 3 löschte und so die Windows-Position festhielt.

Stellen Sie also sicher, dass Sie sich für Grub2 entscheiden, da es aufgrund von zwei Funktionen die Arbeit erleichtert:

  • grub2 ermöglichtUntermenüs, damit der Wert von GRUB_DEFAULTnach einem Kernel-Upgrade (das alte Kernel in das Untermenü pusht) nicht ungültig wird
  • grub2 generiert die Menüeinträge durchSkripte(in /etc/grub.dUbuntu)

Ich empfehle die Änderung an derSkripteum zu erzwingen, dass Windows die erste Option im Menü ist: in /etc/grub.dumbenennen 30_os-prober(was den Windows-Eintrag generiert) in etwas wie 09_os-prober. Dieses Skript wird dann ausgeführt, bevor 10_linuxdie Skripte nach Dateinamen sortiert ausgeführt werden und der Windows-Eintrag immer ganz oben steht. Und ganz oben ist die Standardeinstellung, wenn nichts anderes angegeben ist.

Führen Sie es aus update-grub, um das Menü in zu erstellen /boot/grub, sodass dafür gesorgt wird, dass Windows immer gebootet wird.

Was das Nicht-Anzeigen des Menüs angeht, das Sie verwenden möchtenGRUB_HIDDEN_TIMEOUTund einige andere in /etc/grub/default:

# wait 5 seconds for a key-press before showing the menu
GRUB_HIDDEN_TIMEOUT=5
# do not show the countdown counter
GRUB_HIDDEN_TIMEOUT_QUIET=true
# after hidden timeout is done wait 0 seconds -> boot without menu
GRUB_TIMEOUT=0

Die obige Kombination wartet 5 Sekunden ohne Ausgabe (Countdown) oder Menü und bootet dann den ersten Eintrag. (Nochmals: update-grubnach Änderung ausführen).

Antwort3

In Grub2:

set timeout=0
if keystatus --ctrl; then
    set timeout=15
fi

Wenn Strg gedrückt wird, wird das Menü 15 Sekunden lang angezeigt, bevor der Standardeintrag gestartet wird. Wenn Strg nicht gedrückt wird, wird der Standardeintrag sofort ohne Menü gestartet.

Weitere Einzelheiten finden Sie info grubunter keystatus. Es gibt einige Einschränkungen, es funktioniert möglicherweise nicht auf allen Plattformen. Alternativ zu --ctrl werden auch --alt und --shift unterstützt. Sie können diese also ausprobieren, falls --ctrl nicht funktioniert.

Alternativ können Sie Grub auf einen USB-Stick packen. So würde Windows direkt booten, wenn es nicht eingesteckt ist. Sie können auch mehrere Live-CDs und Dinge wie Memtest oder Freedos auf den USB-Stick packen. Sehr nützliches Ding, das man in der Brieftasche dabei haben sollte :)

verwandte Informationen