Bagaimana cara mendapatkan grub2 untuk mengingat pilihan terakhir?

102

Grub2 - Dokumentasi Ubuntu Komunitas mengatakan yang berikut:

Menyimpan OS dapat dicapai dengan menjalankan sudo grub-set-default jika DEFAULT = save diatur di / etc / default / grub. Ini juga dapat disimpan jika GRUB_SAVEDEFAULT = true juga diset di / etc / default / grub. Dalam hal ini, OS default tetap sampai OS baru dipilih secara manual dari menu GRUB 2 atau perintah grub-set-default dijalankan.

Aku meletakkan garis DEFAULT=savedDAN GRUB_SAVEDEFAULT=truedalam /etc/default/grub, dan berlari sudo grub-set-default. Berikut hasilnya:

$ 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]>.

Apakah saya tidak mengikuti dokumentasi dengan benar? Apa cara yang benar untuk melakukan ini?

Jay Sullivan
sumber
2
Setelah mengubah file grub Anda sebaiknya selalu menjalankan " sudo update-grub".
Julien Chau
Jalankan saja: sudo grub-set-default disimpan Ini sesederhana itu.
T. Coles

Jawaban:

153

Dokumentasi dalam hal ini salah. Semua variabel di /etc/default/grubmulai dengan GRUB_, jadi GRUB_DEFAULT=saved, bukan DEFAULT=saved . Saya telah mengoreksi wiki Ubuntu untuk mencerminkan hal itu.

Manual grub resmi menjelaskan ini dengan benar: http://www.gnu.org/software/grub/manual/grub.html#Simple-configuration

Masukkan yang berikut ini /etc/default/grub:

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

Lalu lari:

sudo update-grub
Jordan Uggla
sumber
4
+1 untuk tautan, saya telah mengedit jawaban Anda dengan solusi yang berfungsi untuk saya (yang saya peroleh dari tautan yang Anda berikan)
Jay Sullivan
Tautan dalam jawaban ini rusak. 'Halaman 404'.
sdlins
saya harus menghapus garis yang ada GRUB_DEFAULT=0?
user25
@ user25 ya hapus GRUB_DEFAULT=0, baris harus membacaGRUB_DEFAULT=saved
ctrl-alt-delor
4

Dalam kasus saya itu tidak berfungsi untuk entri yang ditentukan melalui /etc/grub.d/40_customyang hilang savedefaultgaris.

menuentry "Chameleon" {
    savedefault ### <<<< this must be added
    set root="(hd1)"
    chainloader +1
}
ccpizza
sumber
3

Anda lupa nomornya (mis. "ENTRY adalah angka atau judul item menu." Di teks Anda).

sudo grub-set-default 1

untuk opsi 1 sebagai default.

Selalu jalankan sudo update-grubsetelah memodifikasi /etc/default/grubfile untuk menerapkan perubahan.

Rinzwind
sumber
7
Ini tidak berhasil untuk saya, itu hanya mengatur menu GRUB untuk menunjuk ke entri # 1, bukan pilihan terakhir
Jay Sullivan
Jika opsi menu Anda akan dikubur dalam submenu, seperti dalam 'Opsi lanjutan untuk ubuntu', formatnya adalah 'submenu-indeks> submenu-item-index'. Jadi, Anda perlu menentukan 1> 'indeks pilihan Anda'. Anda juga seharusnya dapat menentukan dengan nama string untuk setiap pilihan.
Epu
2

saveefault tidak akan berfungsi, jika tidak ada header yang tepat di grub.cfg yang dibuat secara otomatis

Untuk menghasilkan tajuk yang tepat Anda perlu mengatur di / etc / default / grub

GRUB_DEFAULT=saved

dan buat grub-mkconfig untuk menggantikan salinan grub.cfg Anda

grub-mkconfig -o /boot/grub.cfg

saveefault dari Grub 2.02 tidak memerlukan argumen tambahan

Anda bisa melihat sumber data yang disimpan di grub.cfg

Dblmok
sumber
Lihatlah jawaban dari @ccpizza, mungkin ini akan membantu: askubuntu.com/a/674148/97838
Hibou57