it-swarm.com.de

Grub unter Windows bearbeiten?

Jetzt bin ich mir nicht sicher, ob dies ein Thema ist oder nicht, aber wenn nicht, ich habe keine Ahnung, wo ich es posten soll, Superuser scheint nicht angebracht zu sein, da es sich um Grub handelt, aber ich regressiere.

Wenn ich Windows neu starte, bootet es zu grub, und dann ist die Standardoption von grub Ubuntu, was einige sehr ärgerliche Zeiten beim Installieren von Updates verursacht. Ich möchte also in der Lage sein, die Bootkonfiguration von grub vorübergehend zu bearbeiten, um Windows an die Spitze zu setzen nach einem Neustart , aber nach dem Booten von Windows würde es zurück zu Ubuntu gehen.

Wie würde ich das machen?

6
David

Der Titel der Frage lautet: Wie lautet der vom OP vorgeschlagene Lösungsvorschlag für das Problem? Der Titel könnte in geändert werden. "Wie kann ich Grub automatisch auf das zuletzt verwendete Betriebssystem booten lassen?" .

Dies sollte vermutlich das Standardverhalten von Grubs sein. Zum Beispiel benutze ich Windows für eine Woche, um Mass Effect IV zu spielen, und komme nie in Ubuntu. Oder ich teste etwas in Ubuntu 14.04 mit einem bestimmten Kernel und möchte es nicht jedes Mal auswählen müssen, wenn mehr als 50 Neustarts durchgeführt werden.

In den obigen Kommentaren finden Sie einen Link zu einer Stapelaustausch-Antwort, die als doppelte Frage vorgeschlagen wurde. Wir können auch auf Fragen und Antworten von AskUbuntu verweisen: Wie wird grub2 dazu gebracht, sich an die letzte Wahl zu erinnern?

Kommentieren Sie in der Zusammenfassung edit /etc/default/grub eine Zeile aus und fügen Sie zwei Zeilen darunter ein:

#GRUB_DEFAULT=0 # Rather than first menu option, we'll default to last  OS.
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

Speichern Sie dann die Änderungen und führen Sie Sudo update-grub aus.

Voila! Während der Arbeit unter Windows und bei automatischen Updates wird das System um 3 Uhr morgens neu gestartet und Stage 3 of 3 angewendet.

OP schlägt "Edit Grub from Windows?" im Titel vor, um das Problem zu lösen. Nach der Angabe des Grundes wird jedoch klar, dass der Titel in wie folgt geändert werden sollte: "Wie stelle ich sicher, dass Automatische Neustarts von Windows-Updates gehen an Windows statt an Ubuntu? ".

Wenn die Frage lautete "Wie starte ich das letzte Betriebssystem neu?" ist dies ein offensichtliches Duplikat des Links. Der vorgeschlagene neue Titel (oder etwas kürzeres) hat seinen Wert, weil andere möglicherweise nach demselben Problem suchen. Ich weiß, dass ich das Problem mit dem Windows-Update-Neustart-Update schon einmal hatte und hätte nie gedacht, hier nach dem Link zu suchen.

PS Du kannst Grub unter Windows bearbeiten, aber warum möchtest du das?

8

Update: Behoben (meistens) - Der Grund, warum dies so schwierig war, war, dass Windows das ESP als versteckt markiert hatte, sodass WSL Fehler mit verweigertem Zugriff erhielt. Aufgrund einer MBR2GPT-Konvertierung glaube ich. Dies zu ändern war nicht einfach. Wenn jemand neugierig ist, erkläre ich, wenn Sie keine eigene Lösung finden können.

Ich habe die letzten Schritte hinzugefügt, um die Windows-Hälfte dieses Setups zu erreichen. Ich werde das Verfahren zum Ausführen von WSL weglassen, es ist einfach (Hinweis: Linux im Windows Store suchen).

Meine vorgeschlagene Antwort erfordert UEFI- und GPT-Start, was heutzutage üblicher ist. Die Art und Weise, wie ich das Problem vermieden habe, dass Windows Linux-Partitionen nicht kennt, wurde von der Art und Weise beeinflusst, wie Windows mit dem Booten umgeht.

Die traditionelle Art, in MBR zu booten, bestand darin, /boot/grub (Stufe 2) zu übergeben und den zusätzlichen Platz zu nutzen, um Dinge zu tun, die der MBR nicht konnte. Die EFI-Partition ist im Wesentlichen ein riesiger MBR auf jeder Festplatte, die Sie verwenden möchten. Der Eureka-Moment war, als ich bemerkte, dass Windows die Stufe 2 des Windows-Start-Managers auf der EFI-Partition im selben Verzeichnis wie bootmgr.efi und bootmgfw.efi ablegte. Warum also nicht auch Grub Stage 2 dort platzieren?

TL; DR

Schritt für Schritt erklären, wie dies das OP beantwortet.

  1. ESP (EFI System Partition) ist FAT32-formatiert - perfekt für plattformübergreifende Anwendungen!

  2. Unter Linux mkdir /boot/efi und dann ESP darauf mounten;

    grub-install --boot-directory=boot/efi/EFI/grub /dev/nvme0n1
    

    und so weiter. (Hoffentlich bin ich nicht zu stark vereinfacht.)

  3. wiederholung der von anderen hier vorgeschlagenen Lösung des Hauptproblems

    GRUB_DEFAULT=saved
    GRUB_SAVEDEFAULT=true
    
  4. Die Master-Enthüllung - #Grub Environment Block - grub/grubenv befindet sich auf einer FAT32-Partition und kann unter Linux problemlos geändert werden:

    grub-editenv /boot/efi/EFI/grub/grubenv set next_entry=X
    

    dabei ist X das menuentry mit der Nummer 0.

  5. Ok die Befehle sind:

    mountvol b: /S
    wsl Sudo mount -t drvfs b: /mnt/b
    wsl Sudo grub-editenv /mnt/b/EFI/grub/grubenv set next_entry=0
    wsl Sudo umount /mnt/b
    mountvol b: /D
    

Siehe SU-Link am Ende von re: script

Das letzte Problem ist, dass ich zu müde bin, ein Skript zu schreiben, um dies jetzt zu tun. Die wsl-Befehle funktionieren nicht separat, der Status überträgt sich nicht. Ich bin kein Programmierer, ich brauche nur etwas Zeit, um herauszufinden, wie diese drei Linux-Befehle aneinandergereiht werden können. Dies reicht aus, um die Anforderungen für "Funktioniert diese Antwort?" Vorerst zu erfüllen. Ich werde bald mit einer endgültigen Version aktualisieren. Z.B. Sie müssen das WSL-Terminal starten, um diese Lösung derzeit verwenden zu können.

Ich aktualisiere diese Frage, um Hilfe beim Schreiben des Stapelskripts zu erhalten - Wie wird in Windows Subsystem für Linux (WSL) ein Skript erstellt und aus einer Stapeldatei aufgerufen?

1
Jon T

Ich weiß nicht, wie man das unter Windows macht, aber Sie können das meiste, was Sie beschrieben haben, mit einer GUI in Ubuntu machen.

So können Sie verhindern, dass Windows Always Boot to Ubuntu neu gestartet wird

Führen Sie die folgenden Schritte aus. Nach diesen Schritten bootet ein Neustart von Windows immer automatisch zu Windows. Durch einen Neustart von Ubuntu wird Ubuntu immer automatisch neu gestartet. Sie müssen nicht jedes Mal bearbeiten. Konfigurieren Sie Grub einfach, um sich die letzte Auswahl zu merken. Die letzte Auswahl ist immer die automatische Standardeinstellung, wobei nicht jedes Mal weitere manuelle Änderungen vorgenommen werden.

Installieren Sie die GUI Grub Customizer .

 $ Sudo Add-Apt-Repository ppa: danielrichter2007/grub-customizer 
 $ Sudo Apt-Get Update 
 $ Sudo Apt-Get Install Grub-Customizer 

Über die Benutzeroberfläche können Sie auswählen, welcher Start oben sein soll, indem Sie ihn auswählen und dann auf die Aufwärts-/Abwärtspfeile klicken, um die Liste zu positionieren.

Auf der Registerkarte "Allgemein" können Sie das Verhalten von Grub weiter anpassen. Sie können auch auf Advance klicken, um die Zeilen der Grub-Datei zu aktivieren, zu deaktivieren, hinzuzufügen, zu entfernen oder zu ändern.

Das vorübergehende Booten auf Windows-Teil kann erreicht werden durch:

 1) Wählen Sie den Eintrag GRUB_DEFAULT aus -> Klicken Sie auf die Wertespalte. Ersetzen Sie die "0" 
 Durch "gespeichert" 
 2) Fügen Sie einen Eintrag mit dem Namen "GRUB_SAVEDDEFAULT" hinzu -> Setzen Sie den Wert auf "true" 
 3) Klicken Sie nun auf Schließen -> Speichern (Wenn Sie auf Speichern klicken, wird Grub auf Ihre neue 
 Konfiguration aktualisiert.) 

Nachdem Windows neu gestartet wurde, wird es nicht mehr zu Ubuntu zurückkehren

Wenn Sie jetzt Windows-Updates und andere Wartungsarbeiten ausführen, wird das System immer unter Windows gestartet (sobald Sie Windows gestartet haben), bis Sie Ubuntu auswählen, um wieder darauf zuzugreifen.

1
L. D. James

Während das Bearbeiten eines Windows-Partitionsinhalts unter Linux möglich ist, ist dies anders herum nicht der Fall.

Windows unterstützt Linux-FSs nicht von Haus aus. Mit ein paar Tools können Sie dies tun , aber das würde nicht helfen.

Ich habe es selbst nicht getestet, aber es scheint, dass kürzlich jemand GRUB2 nach Windows portiert 10, 8, 7, Vista und XP, sowohl im BIOS als auch im EFI-Modus.

Ich vermute, selbst wenn alles wie erwartet funktioniert, wäre es nicht so einfach, ein Glas Wasser zu trinken.

1
EnzoR