Setelah berjuang selama 2 jam, saya telah menemukan cara yang jauh lebih mudah untuk mencapainya. Saya hanya RTFM.;)
Tambahkan dua baris ke /etc/default/grub
GRUB_SAVEDEFAULT=true
GRUB_DEFAULT=saved
Lakukan sudo update-grub
, reboot, masuk ke menu grub Anda dan pilih menu atau submenu mana saja yang Anda butuhkan. Pilihan akan disimpan setiap saat dan kemudian komputer Anda akan boot secara otomatis. Saat Anda memilih entri lain secara manual, itu menjadi default baru.
Saya pikir sebagian besar distribusi telah memindahkan kernel tambahan ke submenu opsi lanjutan pada saat ini, seperti yang ditemukan TomTom pada Arch-nya.
Saya tidak ingin mengubah struktur menu tingkat atas untuk memilih kernel sebelumnya sebagai default. Saya menemukan jawabannya di sini:
http://www.humans-enabled.com/2014/08/how-to-set-default-grub-kernel-boot.html
Untuk meringkas:
1) Temukan $menuentry_id_option
untuk submenu:
$ grep submenu /boot/grub/grub.cfg
submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
2) Temukan $menuentry_id_option
untuk entri menu untuk kernel yang ingin Anda gunakan:
$ grep gnulinux /boot/grub/grub.cfg
menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
menuentry 'Debian GNU/Linux, with Linux 4.18.0-0.bpo.1-rt-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.18.0-0.bpo.1-rt-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
menuentry 'Debian GNU/Linux, with Linux 4.18.0-0.bpo.1-rt-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.18.0-0.bpo.1-rt-amd64-recovery-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
menuentry 'Debian GNU/Linux, with Linux 4.18.0-0.bpo.1-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.18.0-0.bpo.1-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
menuentry 'Debian GNU/Linux, with Linux 4.18.0-0.bpo.1-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.18.0-0.bpo.1-amd64-recovery-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
menuentry 'Debian GNU/Linux, with Linux 4.17.0-0.bpo.1-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.17.0-0.bpo.1-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
menuentry 'Debian GNU/Linux, with Linux 4.17.0-0.bpo.1-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.17.0-0.bpo.1-amd64-recovery-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
menuentry 'Debian GNU/Linux, with Linux 4.9.0-8-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.9.0-8-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
menuentry 'Debian GNU/Linux, with Linux 4.9.0-8-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.9.0-8-amd64-recovery-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
3) Komentari grub default Anda saat ini di /etc/default/grub
dan ganti dengan $menuentry_id_option
sub-menu dari langkah pertama, dan $menuentry_id_option
kernel yang dipilih dari langkah kedua dipisahkan oleh >
.
Dalam kasus saya, GRUB_DEFAULT
yang dimodifikasi adalah:
#GRUB_DEFAULT=0
GRUB_DEFAULT="gnulinux-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc>gnulinux-4.18.0-0.bpo.1-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc"
4) Perbarui grub untuk melakukan perubahan. Untuk Debian ini dilakukan seperti ini:
$ sudo update-grub
Selesai. Sekarang ketika Anda boot, menu lanjutan harus memiliki tanda bintang dan Anda harus boot ke kernel yang dipilih. Anda dapat mengonfirmasi ini dengan uname
.
$ uname -a
Linux NAME 4.18.0-0.bpo.1-amd64 #1 SMP Debian 4.18.0-0 (2018-09-13) x86_64 GNU/Linux
Mengubah ini kembali ke kernel terbaru semudah mengomentari baris baru dan menghapus komentar #GRUB_DEFAULT=0
:
GRUB_DEFAULT=0
#GRUB_DEFAULT="gnulinux-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc>gnulinux-4.18.0-0.bpo.1-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc"
lalu jalankan kembali update-grub
.
Seperti disebutkan dalam komentar, Anda dapat mengatur kernel default untuk boot menggunakan grub-set-default X
perintah, di mana X adalah nomor kernel yang ingin Anda gunakan untuk boot. Di beberapa distribusi Anda juga dapat mengatur nomor ini dengan mengedit /etc/default/grub
file dan pengaturan GRUB_DEFAULT=X
, lalu menjalankan update-grub
.
Nomornya adalah indeks ke array pengaturan kernel/kernel yang ditampilkan di menu GRUB selama boot, dengan 0 sebagai entri pertama (paling atas). Anda biasanya dapat menemukan nomor yang tepat dengan mencari menuentry
baris di /boot/grub/grub.cfg
, seperti ini:
grep menuentry /boot/grub/grub.cfg
Anda akan melihat setiap kernel terdaftar dengan nama yang ditampilkan di menu boot GRUB. Yang pertama adalah 0, yang kedua adalah 1, dan seterusnya.