Jak zdobyć Grub2, aby zapamiętał ostatni wybór?

102

Grub2 - Dokumentacja społeczności Ubuntu mówi:

Zapisanie systemu operacyjnego można osiągnąć, uruchamiając sudo grub-set-default, jeśli DEFAULT = zapisano w / etc / default / grub. Można go również zapisać, jeśli GRUB_SAVEDEFAULT = true jest również ustawiony w / etc / default / grub. W takim przypadku domyślny system operacyjny pozostaje do momentu ręcznego wybrania nowego systemu operacyjnego z menu GRUB 2 lub wykonania polecenia grub-set-default.

Włożyłem linie DEFAULT=savedI GRUB_SAVEDEFAULT=truew /etc/default/grub, i pobiegł sudo grub-set-default. Oto wynik:

$ sudo grub-set-default
entry not specified.
Usage: grub-set-default [OPTION] entry
Set the default boot entry for GRUB.

  -h, --help              print this message and exit
  -v, --version           print the version information and exit
  --boot-directory=DIR    expect GRUB images under the directory DIR/grub
                          instead of the /boot/grub directory

ENTRY is a number or a menu item title.

Report bugs to <[email protected]>.

Czy nie postępuję zgodnie z dokumentacją? Jaki jest właściwy sposób to zrobić?

Jay Sullivan
źródło
2
Po zmianie pliku grub najlepiej zawsze uruchamiać „ sudo update-grub”.
Julien Chau,
Wystarczy uruchomić: sudo grub-set-default zapisany To takie proste.
T. Coles

Odpowiedzi:

153

Dokumentacja w tym przypadku jest nieprawidłowa. Wszystkie zmienne w /etc/default/grubpoczątek GRUB_, więc to GRUB_DEFAULT=saved, nie DEFAULT=saved . Poprawiłem wiki Ubuntu, aby to odzwierciedlić.

Oficjalny podręcznik grub opisuje to poprawnie: http://www.gnu.org/software/grub/manual/grub.html#Simple-configuration

Wprowadź następujące dane /etc/default/grub:

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

Następnie uruchomić:

sudo update-grub
Jordan Uggla
źródło
4
+1 za link, zredagowałem twoją odpowiedź za pomocą rozwiązania, które dla mnie zadziałało (które zaczerpnąłem z linku, który podałeś)
Jay Sullivan
Link w tej odpowiedzi jest zepsuty. „Strona 404”.
sdlins
Należy usunąć istniejącą linię GRUB_DEFAULT=0?
user25
@ użytkownik25 tak usuń GRUB_DEFAULT=0, wiersz powinien brzmiećGRUB_DEFAULT=saved
ctrl-alt-delor
4

W moim przypadku nie działało to dla wpisów zdefiniowanych przez /etc/grub.d/40_customktóre brakowało savedefaultlinii.

menuentry "Chameleon" {
    savedefault ### <<<< this must be added
    set root="(hd1)"
    chainloader +1
}
ccpizza
źródło
3

Zapomniałeś numeru (tzn. „WPISZ jest liczbą lub tytułem pozycji menu.” W tekście).

sudo grub-set-default 1

aby opcja 1 była domyślna.

Zawsze uruchamiaj sudo update-grubpo zmodyfikowaniu /etc/default/grubpliku, aby zastosować zmiany.

Rinzwind
źródło
7
Nie działało to dla mnie, po prostu ustawia menu GRUB-a, aby wskazywał na pozycję nr 1, a nie na ostatni wybór
Jay Sullivan,
Jeśli twoja opcja menu byłaby zakopana w podmenu, tak jak w „Zaawansowanych opcjach dla Ubuntu”, format to „submenu-index> submenu-item-index”. Musisz więc podać 1> „wybrany przez siebie indeks”. Powinieneś także mieć możliwość określenia według nazwy ciągu dla każdego wyboru.
Epu
2

saveefault nie będzie działać, jeśli nie ma odpowiedniego nagłówka w automatycznie generowanym pliku grub.cfg

Aby wygenerować odpowiedni nagłówek, musisz ustawić / etc / default / grub

GRUB_DEFAULT=saved

i wykonaj grub-mkconfig, aby zastąpić kopię grub.cfg

grub-mkconfig -o /boot/grub.cfg

saveefault z Grub 2.02 nie wymaga żadnych dodatkowych argumentów

Możesz zobaczyć źródło saveefault w grub.cfg

Dblmok
źródło
Spójrz na odpowiedź z @ccpizza, może to pomoże: askubuntu.com/a/674148/97838
Hibou57