Neustart in einem anderen Betriebssystem

Neustart in einem anderen Betriebssystem

Ich habe einen Laptop mit mehr als einem Betriebssystem.

Gibt es einen Befehl, mit dem ich das aktuelle Betriebssystem herunterfahren und ein anderes Betriebssystem starten kann?

Windows->Ubuntu und umgekehrt

Danke

Antwort1

Ja, es ist möglich, wenn Sie Grub zur Boot-Auswahl verwenden: -

  • Booten Sie Linux.
  • AktivierenWurzelBerechtigungen durch Anmelden oder durch Verwenden von suoder sudo -s.
  • Kopieren Sie /boot/grub.cfgentweder nach /boot/grub.winoder /boot/grub.lin, je nach Ihrer Standardeinstellung.
  • Bearbeiten , um die Nummer des alternativen Betriebssystems in der Startliste /etc/default/grubzu ändern (von Null an gezählt).GRUB_DEFAULT=
  • Führen Sie es aus update-grubund kopieren Sie es dann je nach Bedarf /boot/grub.cfgnach /boot/grub.linoder /boot/grub.win.
  • GRUB_DEFAULT=Auf den vorherigen Wert in zurücksetzen /etc/default/grub.
  • Erstellen bootlinund bootwinenthalten:
    cp /boot/grub.lin /boot.cfgodercp /boot/grub.win /boot.cfg
    shutdown -r now

Jetzt können Sie von Ubuntu aus anrufen bootlinoder bootwin.

Unter Windows müssen Sie dasselbe tun: -

  • Erstinstallationext2fsd.
  • Weisen Sie der Ubuntu-Partition einen Laufwerksbuchstaben zu (z. B. U:) und machen Sie sie beschreibbar.
  • Jetzt können Sie erstellen bootlin.cmdund bootwin.cmdden entsprechenden copyBefehl zum Überschreiben enthalten U:\boot\grub.cfg, gefolgt von:
    shutdown -r

Wenn Sie mit booten, ntldrkönnen Sie eine ähnliche Technik mit zwei Kopien von verwenden boot.ini(möglicherweise müssen Sie zuerst die Attribute „Schreibgeschützt“, „System“ und „Versteckt“ löschen). Es gibt möglicherweise eine ähnliche Technik, die Sie mit anderen Bootloadern verwenden können, aber ich überlasse es anderen, Vorschläge zu machen, was damit funktioniert.

ACHTUNG: Ich findeext2fsdfunktioniert gut im Nur-Lese-Modus, aber ich habe es noch nie im Schreibmodus verwendet: Beachten Sie, dass es Ihr Ubuntu-System beschädigen könnte, also stellen Sie sicher, dass es gut gesichert ist, bis Sie es ein paar Mal ausprobiert und sich vergewissert haben, dass es richtig funktioniert. Es könnte sicherer sein, von Windows aus zu bearbeitengrub.cfg vor Ort, wofür keine Verzeichniswechsel erforderlich sind, Sie benötigen jedoch eine Art Inline-Editor für Windows, der keine Arbeitsdateien im selben Dateisystem verwendet, oder Sie müssen Cdazu ein paar Zeilen zusammenbasteln.

Antwort2

Diese Details entsprechen möglicherweise nicht genau der Art und Weise, wie UEFI GPT-Systeme behandelt, sie beschreiben jedoch MBR-basierte Systeme.

Der offizielle (alte) Standard besteht darin, das zu verwenden, was sich im Master Boot Record befindet. Mit dem Befehl „fdisk“ können die Details des MBR geändert werden.

Der herkömmliche MBR enthält einige Bits, die angeben, ob eine Partition markiert ist. Der Standard gibt an, dass nur eine Partition markiert ist, obwohl dies nicht unbedingt durch den Bootcode erzwungen wird. Wenn ein Benutzer angibt, dass eine bestimmte Partition markiert werden soll, sucht ein herkömmliches Fdisk-Programm normalerweise nach einer anderen markierten Partition und hebt die Markierung auf, wenn eine gefunden wird. Es gibt möglicherweise alternative Wörter zur Beschreibung einer „markierten“ Partition, z. B. eine „ausgewählte“ Partition.

Der traditionelle MBR enthält dann einen „Code“ (Anweisungen). Beim Booten des Systems wird dieser Code ausgeführt. Der Code überprüft den MBR, um zu sehen, wie groß jede Partition ist und welche Partition markiert ist. Anschließend wird der Bootvorgang fortgesetzt, indem zusätzlicher Code ausgeführt wird, der sich in der markierten Partition befindet.

Das ist also der Standard, der weithin unterstützt wird. Leider erfordert diese Standardmethode, dass man in fdisk geht und manuell damit interagiert. Das ist also nicht nur ein einzelnes Programm, das man ausführen kann. Es ist jedoch der am weitesten verbreitete Standard.

ZitierenOpenBSD-FAQ: Multiboot:

Nahezu jedes Betriebssystem bietet ein Programm dafür; OpenBSD hat fdisk(8), ähnlich benannte Programme gibt es in Windows 9x und DOS sowie in vielen anderen Betriebssystemen. Dies kann für Betriebssysteme oder Systeme sehr wünschenswert sein, deren Herunterfahren und Neustarten lange dauert - Sie können es einstellen und den Neustartvorgang starten, dann weggehen, sich eine Tasse Kaffee holen und zu einem System zurückkehren, das so hochgefahren ist, wie Sie es möchten - kein Warten auf den magischen Moment, um das nächste Betriebssystem auszuwählen.

Es ist schon komisch, wie oft die Vorteile des am weitesten verbreiteten offiziellen Verfahrens übersehen werden, obwohl man so viele ausgefallene Ersetzungen vorgenommen hat.

Ich weiß, dass dies möglicherweise nicht ganz so automatisiert ist, wie gewünscht, obwohl in der gestellten Frage keine Nichtinteraktivität angegeben wurde. Die einfache Antwort lautet also: Ja, es gibt einen solchen Befehl. Es ist „fdisk“.

Es gibt noch einige andere Varianten, und eine Automatisierung ist wahrscheinlich möglich, wenn Sie nach einer solchen Lösung suchen. Sie sollten vielleicht in Ihrem Betriebssystem nach einem Befehl namens „boot“ oder so ähnlich suchen. Ich weiß, dass das alte Betriebssystem OS/2 einen „BOOT“-Befehl enthielt, mit dem man ändern konnte, welches Betriebssystem gestartet wurde. Welche genauen Befehle Sie ausführen müssen, hängt davon ab, welchen Boot-Code Sie tatsächlich verwenden. Es gibt mehrere „Boot-Manager“-Programme, und diese Funktionalität ist mittlerweile in mehr Betriebssysteme integriert. Das ist die gute Nachricht. Die schlechte Nachricht ist, dass der Prozess nicht ganz so standardisiert ist, also kann ich Ihnen nicht einfach einen bestimmten Prozess anbieten, der sich gut in die verschiedenen Varianten aller integrieren lässt. Im Grunde müssen Sie eine Lösung auswählen und sie verwenden. Das Hauptanliegen besteht wahrscheinlich darin, einen Prozess zu finden, der von mehreren Betriebssystemen aus ausgeführt werden kann und mit dem man in die Abschnitte der Festplatte schreiben kann, die beim Hochfahren des Systems behandelt werden. Diese Abschnitte sind normalerweise nicht Teil eines Dateisystems, und Antivirenfunktionen versuchen möglicherweise, die Fähigkeit einer Person einzuschränken, in diese kritischen Abschnitte der Festplatte zu schreiben.

Im Grunde wird der Vorgang das Ändern der Flag-Bits einer Partition oder des Boot-Codes des MBR oder das Ändern des Verhaltens des Codes auf der Partition beinhalten, den der MBR zum Fortsetzen des Bootens verwendet. Das sind also drei verschiedene Ansätze, und jeder dieser Ansätze wird tatsächlich von einigen der verschiedenen verfügbaren Optionen verwendet.

Ein vierter Ansatz könnte darin bestehen, die Festplatte zu ändern, von der das BIOS bootet. Dieser Ansatz war jedoch traditionell viel weniger kompatibel zwischen verschiedenen Systemen, sodass dieser Ansatz eher eine theoretische Möglichkeit ist als etwas, das tatsächlich verwendet wird. (Viele Benutzer haben diesen Ansatz jedoch interaktiv verwendet, oft indem sie F12 oder etwas Ähnliches gedrückt haben, um ein Boot-Menü aufzurufen; manchmal rufen sie einfach das BIOS-Setup auf und ändern die Standardfestplatte, die bei nachfolgenden Bootvorgängen verwendet wird.)

Die gängigste Methode besteht wahrscheinlich darin, ein 512-Byte-Image des gesamten MBR zu erstellen, wenn das System in einem Betriebssystem bootet, und dann ein 512-Byte-Image des gesamten MBR zu speichern, wenn das System mit einem anderen Betriebssystem bootet. Verwenden Sie dann die gewünschte Software, um diese 512 Bytes direkt in die ersten 512 Bytes der Festplatte zu schreiben. (So etwas wie „dd“ würde es tun.) Die größte Herausforderung dabei könnte darin bestehen, die Erlaubnis des Betriebssystems zu erhalten.

Die Antwort von AFH scheint zu zeigen, wie dies unter Linux mit Grub möglich ist. Der Windows-Bootmanager aus der XP/2003-Zeit verwendete diese Art von Sektorabbildern (auf die von einer „Boot.ini“-Datei verwiesen wurde), sodass man Windows durch Ändern der Boot.ini-Textdatei verlassen konnte. (Dieser Prozess hat sich unter Vista/2008 möglicherweise geändert, also informieren Sie sich über den neuen Bootmanager, bevor Sie ihn auf neueren Systemen ausprobieren.) Die genaue Art und Weise, eine dieser Lösungen zu implementieren, hängt davon ab, welches Betriebssystem Sie nicht mehr verwenden möchten. (Beispiel: welche Version von Microsoft Windows.)

Antwort3

Wenn wir einen Hardware-Neustart aufrufen, ist dies mehr oder weniger identisch mit einem anschließenden Ausschalten und Wiedereinschalten. Dadurch geht der gesamte RAM-Speicher verloren. Und wenn wir das Gerät wieder einschalten, wird der Startvorgang von der Firmware des Motherboards übernommen. Wenn wir der Firmware des Motherboards einigeNachricht, wir dürfen solche Nachrichten nicht im RAM hinterlassen. Aber wir können etwas (was auch immer) auf die Festplatte schreiben (oder auf ein anderes permanentes Medium, und ich glaube, EFI bietet einen Mechanismus zum Festlegen nichtflüchtiger Variablen).

Neben den oben genannten Ansätzen haben Linux-KernelkexecFunktionalität zum „Abgeben der Kontrolle“ an ein anderes System, ohne dass die Hardware ausfällt. Obwohl ein Windows-Kernel nicht direkt per Kexec aufgerufen werden kann, gibt es eine Problemumgehung: Man führt Kexec in ein Ladeprogramm aus und lässt das Windows-System vom Ladeprogramm initialisieren.

verwandte Informationen