Mam skonfigurowany system Linux / Windows z podwójnym uruchomieniem i często przełączam się z jednego na drugi. Myślałem, czy mogę dodać pozycję menu w jednym z menu, aby ponownie uruchomić komputer bezpośrednio w systemie Windows, bez zatrzymywania się na monit GRUB.
Widziałem to pytanie na forum, to jest dokładnie to, czego chcę, ale dotyczy ono Lilo, co nie jest moim przypadkiem.
Pomyślałem o rozwiązaniu, które zmodyfikowałoby domyślny wpis w menu GRUB, a następnie uruchomiło się ponownie, ale są pewne wady i zastanawiałem się, czy istnieje czystsza alternatywa.
(Byłbym również zainteresowany rozwiązaniem uruchamiania z systemu Windows bezpośrednio do systemu Linux, ale może to być trudniejsze i nie należy tutaj. W każdym razie, o ile mam jeden sposób, drugi sposób można skonfigurować jako domyślny.
UPDATE Wydaje ktoś zapytał podobne pytanie , a jeśli są to je odpowiedzi, równie dobrze mogę edytować /boot/grub/grubenv
jak grub-reboot
i grub-set-default
i grub-editenv
zrobić. )
Z góry dziękuję za wszelkie wskazówki.
AKTUALIZACJA :
To jest moja wersja GRUB: (GRUB) 1.99-12ubuntu5-1linuxmint1
Próbowałem uruchomić grubonce
, polecenie nie zostało znalezione. A wyszukiwanie go w repozytoriach nic mi nie daje. Jestem na Linux Mint, więc to może być ...
Widząc man grub-reboot
, wygląda na to, że robi to, co chcę, podobnie jak grubonce
robi. Jest również dostępny wszędzie (przynajmniej dla mnie, myślę, że jest częścią pakietu grub). Widziałem dwa powiązane polecenia: grub-editenv
i grub-set-default
.
Dowiedziałem się, że po sudo grub-set-default 4
uruchomieniu grub-editenv list
masz coś podobnego do:
saved_entry=4
A podczas biegania grub-reboot 4
dostajesz coś takiego:
prev_saved_entry=0
saved_entry=4
Co oznacza, że oboje robią to samo (jedno jest tymczasowe, drugie nie).
Zaskakujące, gdy próbowałem:
sudo grub-reboot 4
sudo reboot now
Nie działało, jakbym nic nie zrobił, po prostu pokazał mi menu jak zwykle i wybrał pierwszy wpis, mówiąc, że uruchomi ten wpis za 10 sekund.
Spróbowałem ponownie, pomyślałem, że mogłem napisać zły wpis (jest zerowy, prawda?). Tym razem po prostu powiesił się na ekranie menu i musiałem mocno zresetować komputer, aby móc uruchomić komputer.
Jeśli ktokolwiek może to wypróbować, by zobaczyć, czy to tylko ja, byłbym wdzięczny. (mięta sprawiała mi trudność i byłaby to dobra okazja do zmiany: P).
Odczytywanie kodu /boot/grub/grub.cfg
wydaje się, że jest to właściwy sposób, ale z moich obserwacji wynika, że po prostu ignoruję te ustawienia ...
Odpowiedzi:
Aby
grub-reboot
polecenie działało, należy wprowadzić kilka wymaganych zmian konfiguracji:saved
. Jedną z możliwych lokalizacji tego jestGRUB_DEFAULT=
linia w/etc/default/grub
grub-set-default
aby ustawić domyślny wpis na zwykły.update-grub
.).To powinno zająć się początkową konfiguracją. W przyszłości wystarczy zrobić
grub-reboot <entry>
jednorazowy rozruch<entry>
.źródło
saved
”, a moje zachowanieGRUB_DEFAULT=0
też wystarczyło. Czy to jestsaved
niepotrzebne?GRUB_DEFAULT=0
zGRUB_DEFAULT=saved
sudo update-grub
twoje polecenie będzie:
ładna funkcja w twoim ~ / .bashrc będzie wyglądać
W przypadku, gdy plik grub.conf zawiera wiele wierszy dla systemu Windows, następujące funkcje zajmą się tylko wierszami rozpoczynającymi się
menuentry
i wybierającymi tylko pierwszy, odnoszącymi się do systemu Windows:źródło
/boot/grub/grub.cfg
zawiera więcej wierszy z „Windows”, wiele z nich mówi coś w stylu...=1 i915.semaphores=1 acpi_osi='!Windows 2012' $vt...
, więc zakładam, że Twój kod na nim zawiedzie. Można to naprawić, szukając^menuentry 'Windows
.Bardzo łatwym sposobem na to jest rozszerzenie powłoki GRUB Reboot GNOME (to znaczy, jeśli używasz GNOME).
Aby skorzystać z rozszerzenia, przejdź do strony, do której prowadzi link powyżej, i kliknij mały przełącznik w prawym górnym rogu (prawdopodobnie po wyłączeniu pierwszej strony przejdziesz na Off). Zostaniesz poproszony o potwierdzenie, że chcesz pobrać i zainstalować rozszerzenie.
Po zainstalowaniu możesz otworzyć menu System i kliknąć przycisk zasilania, tak jak zwykle w celu ponownego uruchomienia. W wyskakującym oknie z potwierdzeniem, że chcesz zamknąć lub uruchomić ponownie, znajduje się teraz przycisk „Uruchom ponownie ...”. Po kliknięciu tego przycisku elementy w menu grub pojawiają się na liście, dzięki czemu możesz wybrać system operacyjny, który ma zostać automatycznie uruchomiony po ponownym uruchomieniu. Jeśli wybierzesz jeden z tych elementów, system wyłączy się i uruchomi ponownie przy użyciu wybranych opcji grub.
źródło
Używam openSUSE, który zawiera skrypt o nazwie
grubonce
, który robi dokładnie to, czego potrzebujesz - ustaw wpis grub, który będzie używany przy następnym restarcie.Nie wiem, które (jeśli jakieś) inne dystrybucje dostarczają ten skrypt, więc jeśli Twoja dystrybucja go nie ma, możesz sprawdzić tę stronę:
http://sidvind.com/wiki/GRUB:_Boot_another_OS_once
źródło
grub-set-default
wydaje się bardziej dostępny (grubonce
nie jest wymieniony w wersecie Ubuntu). Może to być również bardziej pomocne, ponieważ system Windows 7 ma zwyczaj przeprowadzania ponownego uruchomienia podczas uruchamiania, jeśli aktualizacje zostały zastosowane podczas ostatniego zamykania (to znaczy, rozpoczyna się uruchamianie, przetwarza niektóre dane aktualizacji, uruchamia się ponownie, a następnie wyświetla stronę logowania).Często uruchamiałem system Windows 7 tylko po to, by wrócić i znaleźć Ubuntu.
źródło
grub-reboot
. Edytuję moje pytanie bardziej szczegółowo. W każdym razie dzięki.W Fedorze możesz użyć następującego skryptu. Zauważ, że jest to w większości takie samo, jak opisano w https://askubuntu.com/a/18186/149422 , z kilkoma modyfikacjami GRUB 2 w Fedorze .
źródło
Używam Ubuntu 16.04 i powyższe rozwiązania nie działały dla mnie ... z jakiegoś powodu
sudo grub-reboot 2
nigdy nie wydawałem się aktualizować/boot/grub/grubenv
pliku, nawet po zmianieGRUB_DEFAULT=0
naGRUB_DEFAULT=saved
oba/etc/default/grub
i/boot/grub/menu.lst
.savedefault --default=2 --once
Wydaje się, że użycie polecenia grub również nie działa ani nie zmienia pliku grubenv. Po prostu wracał do oryginalnego menu grub, jakby nic nie zostało zrobione.Skończyło się to na tym, że robiłem to ręcznie i działało (nie jestem pewien, jak to będzie działać z dyskami RAID).
Gdzie 2 jest zerową lokalizacją pozycji menu dla pozycji Windows w menu uruchamiania grub.
Możesz zobaczyć, dlaczego to działa, patrząc na
/boot/grub/grub.cfg
plik, ponieważ używa on wartości next_entry, a następnie resetuje go do następnego rozruchu.źródło
Zgadzam się z @ jw013. Możesz także nadać kafelek menu grub-reboot (w tym tytuł menu nadrzędnego). na przykład:
Gdzie „Zaawansowane opcje dla Ubuntu” to menu nadrzędne, „Ubuntu z Linuksem 4.13.0-26-ogólne” jest podmenu.
źródło
Uruchom ponownie komputer do określonego celu rozruchowego (wpis Grub).
Cel rozruchowy jest wybierany interaktywnie za pomocą fzf.
źródło