Link do ponownego uruchomienia z systemu Windows do Ubuntu

10

Mam standardowy system podwójnego rozruchu: Ubuntu i Windows. Grub jest domyślnie skonfigurowany do uruchamiania systemu Windows.

Czy istnieje sposób utworzenia linku w systemie Windows, który:

  1. uruchom ponownie system Windows
  2. uruchom system Ubuntu
Dmitrij Berkutov
źródło
Wątpliwości, że istnieje sposób
Tim
1
Jest to możliwe, ale nie w prosty sposób .... Nie wiem o możliwościach tego: sourceforge.net/projects/grub2win/files wypróbuj, jeśli chcesz lub de.mcbf.net/david/grubchoosedefault, a otrzymasz 100 % potrzebuje tego ext2fsd.com . Równie dobrze możesz przeczytać ten linuxquestions.org/questions/linux-software-2/…
RiddleMeThis
1
@ Czas, gdzie jest testament (lub tony pieniędzy) istnieje sposób: D
Wilf

Odpowiedzi:

8

Nie musisz modyfikować, /boot/grub/grub.cfgjak sugerował Michał Hagara. Może to spowodować uszkodzenie Ubuntu, jeśli zainstalujesz nowe jądro i nie zaktualizujesz e:\home\user\Grubshift\ubuntudefault\grub.cfg.

Wszystko, co musisz zrobić, to utworzyć / skopiować plik /boot/grub/grubenvo następującej treści

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

Gdzie next_entryjest wiersz następnego wpisu menu GRUB, który powinien rozpocząć się następnym razem (od zera). Więc next_entry=2byłoby 3th linia.

Grub automatycznie usunie wartość po uruchomieniu, więc następnym razem uruchomisz ponownie domyślny system operacyjny.

Tak to grub-rebootdziała.

Germar
źródło
To jest znacznie wygodniejsze rozwiązanie, dziękuję!
Dmitriy Berkutov
Nie wiedziałem o tej funkcjonalności:) ... Jak widać, zauważyłem, że mieszanie się z grub.cfg nie jest najmądrzejsze ...
RiddleMeThis
czy jesteś pewien, że wymagane jest 987 razy „#”? Myślę, że 462 razy wystarczy :-D
Jounathaen
2

Oto, co mam na myśli:

  • http://www.ext2fsd.com/ (powinien móc zapisywać na partycji EXT, „montować” i przypisywać literę podczas uruchamiania)
  • następnie przygotowałbym zmodyfikowany plik GRUB, w którym Ubuntu jest ustawiony jako domyślny system operacyjny (ten też byłby przechowywany na partycji Linux)
  • Skrypt Windows BATCH (wykonywany przez wybrany skrót), który:
    1. Backup OLD GRUB (domyślnie Windows)
    2. kopiuj zmodyfikowany GRUB (domyślnie Ubuntu) na OLD jeden (Domyślnie Windows)
    3. Uruchom ponownie komputer
  • Skrypt BASH dla systemu Linux, który zmodyfikuje i zaktualizuje GRUB podczas uruchamiania (lub ponownego uruchamiania), aby przywrócić domyślny system operacyjny Windows

Z tym podejściem mogę się całkowicie mylić, ale nie rozumiem, dlaczego to nie powinno działać.

EDYTOWAĆ:

Jest też: http://www.paragon-drivers.com/extfs-windows/, których nigdy nie próbowałem.


POSTĘP

1. Skrót, aby ponownie uruchomić system Windows i uruchomić system Ubuntu

OK, wadą tego jest to, że będziemy musieli zmodyfikować grub.cfg (/boot/grub/grub.cfg) bezpośrednio (odradza się - https://askubuntu.com/a/437341/402801), ponieważ istnieje nie ma sposobu na uruchomienie update-grubz systemu Windows ... jeśli możesz żyć z tym czytać dalej.

  • Jak już wspomniałem wcześniej, zainstaluj Ext2Fsd , włącz go automatycznie i przypisz literę podczas uruchamiania
  • Utworzyłem mój „Folder kopii zapasowej” /home/user/Grubshiftz 3 podkatalogami: kopia zapasowa (do tworzenia kopii zapasowej aktualnego /boot/grub/grub.cfg), ubuntudefault (do przechowywania grub.cfg z Ubuntu jako domyślną), windowsdefault (masz pomysł)

Po instalacji Ubuntu jest ustawiony jako domyślny, więc skopiuj go grub.cfgdo żądanego katalogu. Mam konfigurację „Windows jako domyślną” poprzez modyfikację GRUB-a za pomocą grub-customizera (moim zdaniem jest to bezpieczniejsze), po tym skopiuj Windows grub.cfgdo pożądanego katalogu

Następnie otwórz notatnik i wstaw:

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- opcja copypolecenia, pomija monit o potwierdzenie zamiaru zastąpienia istniejącego pliku docelowego

/r /t 0 - opcje zamknięcia, 1. oznacza ponowne uruchomienie, 2. oznacza natychmiast, bez brzydkich wiadomości

Zmodyfikuj odpowiednio ścieżkę !!!

  • Zapisz ten plik (użyłem UTF-8) i zmień rozszerzenie na *.bat
  • Utwórz skrót na pulpicie shift.bat, kliknij prawym przyciskiem myszy na shorctur -> właściwości -> karta skrótów -> Uruchom: zminimalizowany (który pozbywa się wyskakiwania CMD)

Próbowałem tego co najmniej 8 razy, ustawiając system Windows jako domyślny za pomocą grub-customizer...

Nie mówię, że to bezpieczne, ale HEJ !, mamy problem z bootloaderem ... to nie jest bezpieczne

Kiedy w pełni działa, możemy całkowicie pozbyć się menu GRUB, ponieważ zawsze uruchamia się ono we właściwym systemie operacyjnym ...

RiddleMeThis
źródło
Logika wygląda dobrze, niestety ext2fsd nie w pełni obsługuje ext4.
Dmitriy Berkutov,
1
Także jeśli skrypt się spieprzy (jakby Windows kiedykolwiek to zrobił :) komputer nie uruchomi się - dobry pomysł. Dobrym przykładem jest to, że skrypt Linux uruchamia się przy starcie, ale komputer jest wyłączany podczas uruchamiania i po prostu wykonuje ten skrypt, a następnie ...
Wilf
0

Oto jak skonfigurowałem moją konfigurację:

Podsumowując: System resetuje się domyślnie do ostatniego aktywnego, restartuje z Windowsa do Linuksa i odwrotnie za pomocą prostego skryptu.

Skonfiguruj grub, aby zawsze uruchamiał ostatnio wybrany:

Pod linuksem:

  • wprowadź GRUB_DEFAULT=savedi GRUB_SAVEDEFAULT=truew / etc / default / grub
  • zaktualizuj konfigurację za pomocą sudo update-grub

Zainstaluj sterownik Extag Paragons

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

Utwórz skrypty restartu:

Jeśli / boot / grub / grubenv nie istnieje, utwórz go, używając odpowiedzi od Germara

Plik wsadowy do ponownego uruchomienia z systemu Windows do systemu 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
  • zamień na /mount disk1 L:coś specyficznego dla twojego systemu. Dostępne dyski można znaleźć za pomocą extmounter /listpolecenia i litery dysku. Ponadto L:nie można go już wziąć.
  • zapisz jako np reboot-linux.bat
  • możesz kliknąć nietoperza prawym przyciskiem myszy i wybrać, run as administratoraby go wykonać

Skrypt powłoki do ponownego uruchomienia z Linuksa do Windows:

sudo sed -i -e '/next_entry/c\next_entry=2' /boot/grub/grubenv
sudo reboot
  • zamień na next_entry=2dowolny wpis w systemie Windows.
  • zapisz go jako np. ~/reboot_windowsi oznacz jako wykonywalny:chmod +x ~/reboot_windows
dominik andreas
źródło