%20f%C3%BCr%20die%20Verwendung%20von%20Modifikatortasten%20konfigurieren%3F.png)
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_TIMEOUT
Eintrag 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_DEFAULT
Verweis 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_DEFAULT
nach einem Kernel-Upgrade (das alte Kernel in das Untermenü pusht) nicht ungültig wird - grub2 generiert die Menüeinträge durchSkripte(in
/etc/grub.d
Ubuntu)
Ich empfehle die Änderung an derSkripteum zu erzwingen, dass Windows die erste Option im Menü ist: in /etc/grub.d
umbenennen 30_os-prober
(was den Windows-Eintrag generiert) in etwas wie 09_os-prober
. Dieses Skript wird dann ausgeführt, bevor 10_linux
die 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_TIMEOUT
und 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-grub
nach Ä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 grub
unter 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 :)