Ist es möglich, nach dem Booten von Linux ohne Neustart zu GRUB zurückzukehren?

21

Ich boote Windows und Linux auf meiner SSD doppelt und wechsle häufig zwischen den beiden Betriebssystemen. Die SSD ist sehr schnell und beide Betriebssysteme booten in ca. 3 Sekunden, sobald sie in GRUB ausgewählt wurden. Es dauert jedoch ewig (ungefähr 30 Sekunden), bis mein BIOS, RAID und mein zweiter SATA-Controller initialisiert sind, bevor ich endlich in GRUB bin.

Ich habe mich also gefragt, ob es möglich ist, diese Initialisierungen zu überspringen und einfach zu GRUB zurückzukehren, sobald ich Linux gebootet habe. Idealerweise könnte ich das auch aus Windows heraus tun, aber meine Hoffnung ist dort nicht sehr groß :)

Ich habe ein wenig online gesucht und nichts gefunden als einen etwas veralteten Linux-Loader - loadlin.exe, den man in Dos oder Windows 95/98 zum Booten von Linux ausführen kann. Zumindest das Konzept, Betriebssysteme ohne Neustart zu wechseln, ist also nicht neu. Kennt jemand ein aktuelles Tool, das das macht?

Wenn nicht, gibt es ein technisches Problem, das uns daran hindert, ein solches Programm zu schreiben, oder gibt es einfach nicht genug Nachfrage?

UPDATE: Ein Freund von mir hat mir gerade von Kexec erzählt . Auf diese Weise scheint es möglich zu sein, einen anderen Linux-Kernel aus einem laufenden Kernel heraus zu starten. Ist es jedoch möglich, zu GRUB zurückzukehren oder eine Windows-Installation direkt zu starten?

Dimitar Asenov
quelle
4
Interessante Frage. Ein Grund für das geringe Interesse ist, dass sich die VMs in letzter Zeit verbessert haben. Die meisten Benutzer führen nur ihr sekundäres Betriebssystem in einer virtuellen Maschine auf ihrer primären aus, anstatt doppelt zu booten.
Noufal Ibrahim
Ich habe auch überlegt, eine VM zu verwenden, aber ich benötige eine schnelle Grafikleistung und bisher liefern VMs keine zufriedenstellende Leistung. Vielleicht ändern sich die Dinge jetzt, da Xen (und bald auch andere) eine vollständige Passthrough-Option für Grafikkarten hat. Trotzdem wäre es immer noch interessant zu sehen, ob es einen Weg zum schnellen Umschalten gibt. In Bezug auf den zweiten Kommentar war mir unix.stackexchange.com eigentlich nicht bekannt. Ich werde auf jeden Fall einen Blick darauf werfen und vielleicht dort posten, wenn ich keine Antwort bekomme. Danke für den Vorschlag.
1
30 Sekunden ? Ich denke, auf einem IBM Server ist es wie 5 Minuten.
Sirex
1
Sollte mit EFI Bootloadern möglich sein (keine Ahnung wie). Etwas schwieriger bei MBRs, da sie erwarten, im 16-Bit-Real-Modus gestartet zu werden und alles selbst einzurichten, was nach einer einmaligen Initialisierung des Systems möglicherweise nicht möglich ist.
Grawity
@ Sirex: Aber wer bootet die IBM Server doppelt? :)
Grawity

Antworten:

6

Mit kexec können Sie das Problem lösen. Es besteht keine Notwendigkeit, GRUB einzubeziehen. Sie können kexec-loader verwenden , um verschiedene Betriebssysteme unter Linux direkt zu starten. (Stellen Sie sicher, dass die Kexec-Unterstützung in Ihrem Kernel kompiliert ist.)

Fabel
quelle
1
Soweit ich weiß, ist der kexec_load()Syscall nur zum Laden eines Linux-Kernels vorgesehen. Das von Ihnen verknüpfte Tool kexec-loader scheint auch nur Linux-Kernel zu unterstützen. --- Es ist zum Beispiel möglich, memtest86 zu booten, aber ich habe noch nie gesehen, dass jemand Windows direkt mit dem Kexec-Mechanismus gebootet hat, aber es ist über GRUB möglich : So booten Sie Windows direkt von Kexec + Grub4DOS .
Pabouk
2

Überprüfen Sie, ob Sie UEFI-Unterstützung haben. Das kann die Startgeschwindigkeit DRASTISCH verbessern.

Milind R
quelle
Dies gibt keine Antwort auf die Frage. Um einen Autor zu kritisieren oder um Klarstellung zu bitten, hinterlassen Sie einen Kommentar unter seinem Beitrag.
Jawa
1
@Jawa, das OP hat ein Problem, weil sein POST unannehmbar lange dauert. UEFI schneidet diesmal definitiv ab: der eigentliche Zweck seiner Schaffung.
Milind R
2
Zwei Dinge hier: 1) Die Frage ist nicht, wie ich schneller boote, sondern wie ich nach dem Booten zu GRUB zurückkehre. 2) Antworten in einer Zeile eignen sich am besten als Kommentare.
Kevin Panko
Danke für den Vorschlag. Seitdem ich die ursprüngliche Frage gestellt habe, habe ich meine Festplattenkonfiguration geändert und gerade einige Einstellungen im BIOS optimiert, um die Startzeiten zu verbessern. Im Wesentlichen konnte ich RAID-bezogene Dinge deaktivieren (die ich nicht mehr benötige) und auch EFI-Boot aktivieren. Der Gesamteffekt ist ein viel schnellerer Start. Trotzdem ist die ursprüngliche Frage für mich immer noch interessant und ich habe bisher keine verlässliche Lösung gefunden.
Dimitar Asenov
1

Lange Rede kurzer Sinn, nicht so, wie es jetzt funktioniert. Ein besserer Ansatz ist es, herauszufinden, warum Ihr BIOS / RAID / SATA-Controller so lange dauert. Möglicherweise sind BIOS-Updates und Firmware-Updates für den RAID-Controller verfügbar.

Zeroedout
quelle
Ein möglicher Grund für einen langsamen POST ist, dass Ihr HDD-Controller so konfiguriert ist, dass nicht vorhandene Laufwerke im BIOS automatisch erkannt werden. Wenn Sie eine einzelne Festplatte und eine einzelne CD / DVD haben, macht es keinen Sinn, die anderen 2 (oder 4) Steckplätze automatisch zu erkennen. Diese Tests müssen eine Zeitüberschreitung aufweisen und können einige Zeit in Anspruch nehmen.
Haqa
1

Nein. Sofern Ihr BIOS keine spezielle Setup-Option zum Überspringen des POST während eines Neustarts hat (ich habe es einmal gesehen), existiert dies seit Windows 98 / ME nicht mehr (der Schnellstart-Trick, mit dem Windows wirklich nur neu geladen wurde).

Vielleicht könnte jemand mit genügend Zeit für Boot-Hacking dies reproduzieren und GRUB neu laden, aber es müsste sich ändern, wie INIT das System neu startet.

Nakarti
quelle
0

Wenn Sie die von Zeroedout vorgeschlagenen Updates nicht finden können, möchten Sie möglicherweise Ihr Hostsystem auf virtuellen Maschinen ausführen, sodass der Neustart fast kostenlos ist.

Außerdem verfügen einige Systeme über einen Schnellstartmodus, in dem einige Überprüfungen nicht durchgeführt werden. Vielleicht möchten Sie das überprüfen.

billc.cn
quelle