Link zum Neustart von Windows nach Ubuntu

10

Ich habe ein Standard-Dual-Boot-System: Ubuntu und Windows. Grub ist so konfiguriert, dass Windows standardmäßig gestartet wird.

Gibt es eine Möglichkeit, eine Art Link in Windows zu erstellen, die:

  1. Starten Sie Windows neu
  2. Booten Sie in Ubuntu
Dmitriy Berkutov
quelle
Zweifel, es gibt einen Weg
Tim
1
Es ist möglich, aber nicht über einfache Weise .... Sie wissen nicht , über Möglichkeiten dafür: sourceforge.net/projects/grub2win/files es versuchen , wenn Sie oder wollen de.mcbf.net/david/grubchoosedefault und Sie werden 100 % benötigen diese ext2fsd.com . Vielleicht möchten Sie auch diese linuxquestions.org/questions/linux-software-2/…
RiddleMeThis
1
@ Tim wo ist da ist ein Wille (oder Tonnen Geld) gibt es einen Weg: D
Wilf

Antworten:

8

Sie müssen nicht /boot/grub/grub.cfgwie von Michal Hagara vorgeschlagen ändern . Dies könnte Ubuntu beschädigen, wenn Sie einen neuen Kernel installieren und den nicht aktualisieren e:\home\user\Grubshift\ubuntudefault\grub.cfg.

Sie müssen lediglich eine Datei /boot/grub/grubenvmit folgendem Inhalt erstellen / kopieren

# GRUB Environment Block
next_entry=2
###########################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################

Wo next_entryist die Zeile des nächsten Grub-Menüeintrags, die beim nächsten Mal gestartet werden soll (ab Null)? So next_entry=2wäre die 3. Zeile.

Grub entfernt den Wert nach dem Start automatisch, damit Sie das nächste Mal wieder Ihr Standardbetriebssystem starten können.

So grub-rebootfunktioniert es.

Germar
quelle
Dies ist eine viel bequemere Lösung, danke!
Dmitriy Berkutov
Wusste nichts über diese Funktionalität :) ... Wie Sie sehen konnten, habe ich darauf hingewiesen, dass das Durcheinander mit grub.cfg nicht das klügste ist ...
RiddleMeThis
Sind Sie sicher, dass 987 mal '#' erforderlich ist? Ich denke 462 mal ist ausreichend :-D
Jounathaen
2

Folgendes habe ich vor:

  • http://www.ext2fsd.com/ (es sollte in der Lage sein, auf die EXT-Partition zu schreiben, "zu mounten" und beim Booten einen Buchstaben zuzuweisen)
  • dann würde ich eine modifizierte GRUB-Datei vorbereiten, in der Ubuntu als Standardbetriebssystem festgelegt ist (diese würde auch auf der Linux-Partition gespeichert)
  • Windows BATCH-Skript (ausgeführt von Ihrer gewünschten Verknüpfung), das:
    1. Backup OLD GRUB (Windows als Standard)
    2. Kopieren Sie den modifizierten GRUB (Standard ist Ubuntu) über den ALTEN (Standard ist Windows).
    3. Starten Sie den PC neu
  • Linux BASH-Skript, das GRUB beim Start (oder Neustart) ändert und aktualisiert, um Windows als Standardbetriebssystem zurückzusetzen

Ich kann mit diesem Ansatz völlig falsch liegen, aber ich kann nicht verstehen, warum es nicht funktionieren sollte.

BEARBEITEN:

Und es gibt auch: http://www.paragon-drivers.com/extfs-windows/, die ich noch nie ausprobiert habe.


FORTSCHRITT

1.Kurzschluss, um Windows neu zu starten und Ubuntu zu starten

OK, der Nachteil ist, dass wir grub.cfg (/boot/grub/grub.cfg) direkt ändern müssen (es wird davon abgeraten - /ubuntu//a/437341/402801), da dies der Fall ist Keine Möglichkeit, update-grubunter Windows zu laufen ... wenn Sie damit leben können, lesen Sie weiter.

  • Wie bereits erwähnt, installieren Sie Ext2Fsd , stellen Sie es automatisch bereit und weisen Sie beim Start einen Buchstaben zu
  • Ich habe meinen "Sicherungsordner" /home/user/Grubshiftmit 3 Unterverzeichnissen erstellt: Sicherung (zum Sichern von /boot/grub/grub.cfg), Ubuntudefault (zum Speichern von grub.cfg mit Ubuntu als Standard), Windowsdefault (Sie haben die Idee)

Nach der Installation ist Ubuntu als Standard festgelegt. Kopieren Sie diese grub.cfgin Ihr gewünschtes Verzeichnis. Ich habe die Konfiguration "Windows als Standard", indem ich GRUB über den Grub-Customizer ändere (meiner Meinung nach ist es sicherer). Danach kopiere ich Windows grub.cfgin das gewünschte Verzeichnis

Öffnen Sie danach den Notizblock und fügen Sie Folgendes ein:

copy e:\boot\grub\grub.cfg /y e:\home\user\Grubshift\backup
copy e:\home\user\Grubshift\ubuntudefault\grub.cfg /y e:\boot\grub
shutdown /r /t 0

/y- Befehlsoption copy, unterdrückt die Aufforderung, zu bestätigen, dass Sie eine vorhandene Zieldatei überschreiben möchten

/r /t 0 - Optionen zum Herunterfahren, 1. bedeutet Neustart, 2. bedeutet sofort, ohne dass hässliche Nachrichten auftauchen

Ändern Sie den Pfad entsprechend !!!

  • Speichern Sie diese Datei (ich habe UTF-8 verwendet) und ändern Sie die Erweiterung in *.bat
  • Erstellen Sie eine Desktop-Verknüpfung für shift.bat, klicken Sie mit der rechten Maustaste auf shorctur -> Eigenschaften -> Registerkarte "Verknüpfung" -> Ausführen: minimiert (wodurch das Auftauchen von CMD beseitigt wird)

Ich habe dies mindestens 8 Mal versucht und Windows als Standard mit grub-customizer...

Ich sage nicht, dass es sicher ist, aber HEY!, Wir spielen mit dem Bootloader ... das ist nicht sicher

Wenn es voll funktionsfähig ist, können wir das GRUB-Menü vollständig entfernen, da es immer in das richtige Betriebssystem bootet ...

RiddleMeThis
quelle
Die Logik sieht gut aus, leider unterstützt ext2fsd ext4 nicht vollständig.
Dmitriy
1
Auch wenn das Skript durcheinander ist (als ob Windows das jemals tun würde :), startet der Computer nicht - eine gute Idee. Ein gutes Beispiel ist, wenn das Linux-Skript beim Booten ausgeführt wird, der Computer jedoch beim Booten heruntergefahren wird und nur dieses Skript ausführt, dann ...
Wilf
0

So habe ich meine Konfiguration eingerichtet:

Um es zusammenzufassen: Das System startet standardmäßig zuletzt aktiv neu, startet von Windows nach Linux und umgekehrt mit einem einfachen Skript.

Richten Sie grub so ein, dass immer das zuletzt ausgewählte Boot gestartet wird:

Unter Linux:

  • Geben Sie GRUB_DEFAULT=savedund GRUB_SAVEDEFAULT=truein / etc / default / grub ein
  • Aktualisieren Sie die Konfiguration mit sudo update-grub

Installieren Sie den Paragons extfs-Treiber

siehe http://www.paragon-drivers.com/extfs-windows/

Erstellen Sie Neustart-Skripte:

Wenn / boot / grub / grubenv nicht existiert, erstellen Sie es mit der Antwort von Germar

Batch-Datei für den Neustart von Windows unter Linux:

@echo off
"C:\Program Files (x86)\Paragon Software\ExtFS for Windows\extmounter" /mount disk1 L:

:CheckForFile
IF EXIST "L:\boot\grub\grubenv" GOTO FoundIt
GOTO CheckForFile
:FoundIt

sed -i -e '/next_entry/c\next_entry=0' L:/boot/grub/grubenv
"C:\Program Files (x86)\Paragon Software\ExtFS for Windows\extmounter" /umount disk1 L:
echo press enter to reboot
pause
shutdown -r -t 00
  • durch /mount disk1 L:etwas Systemspezifisches ersetzen . Sie können verfügbare Festplatten mit dem extmounter /listBefehl und dem Laufwerksbuchstaben finden. Auch L:darf nicht schon genommen werden.
  • Speichern Sie es als z reboot-linux.bat
  • Sie können mit der rechten Maustaste auf bat klicken und auswählen run as administrator, um es auszuführen

Shell-Skript für den Neustart von Linux nach Windows:

sudo sed -i -e '/next_entry/c\next_entry=2' /boot/grub/grubenv
sudo reboot
  • Ersetzen Sie next_entry=2durch was auch immer Ihr Windows-Eintrag ist.
  • Speichern Sie es als zB ~/reboot_windowsund markieren Sie es als ausführbar:chmod +x ~/reboot_windows
dominik andreas
quelle