Cara mengubah versi kernel Linux dengan aman di GRUB2

Pembaharuan Terakhir: 31/03/2026
penulis: Isaac
  • GRUB2 memungkinkan Anda untuk secara fleksibel memilih versi kernel mana yang akan di-boot secara default, menggunakan indeks menu atau nama entri yang tepat.
  • Menggunakan linux-generic, HWE, dan edge branch membutuhkan pengendalian GRUB untuk menghindari ketidakstabilan saat menginstal kernel yang lebih baru.
  • Mengedit /etc/default/grub dan membuat ulang konfigurasi dengan update-grub adalah dasar untuk memperbaiki atau mengembalikan kernel default.
  • Menghapus instalasi kernel yang bertentangan dan mempertahankan setidaknya satu cabang yang stabil memastikan bahwa sistem tetap dapat di-boot dan aman.

Mengubah versi kernel Linux di GRUB2

Memilih versi kernel mana yang akan dijalankan secara default di Linux. Ini bukan sekadar kebiasaan administrator yang teliti: dalam banyak kasus, ini adalah perbedaan antara memiliki sistem yang stabil dan mengalami kerusakan, ketidakcocokan dengan driver grafis, atau kegagalan pada perangkat keras terbaru. Hal ini terutama berlaku di Ubuntu dan distribusi berbasis Debian lainnya, di mana cabang generik, HWE, dan distribusi lainnya hidup berdampingan. versi eksperimentalMengontrol GRUB2 hampir wajib dilakukan.

Saat Anda memasang beberapa inti secara paralel, GRUB2 selalu mencoba untuk memuat kernel paling modern yang tersedia.Hal itu biasanya tidak masalah, tetapi jika Anda terpaksa kembali ke versi sebelumnya karena bug atau driver yang rusak, Anda perlu memberi tahu GRUB entri mana yang akan digunakan sebagai default. Dalam artikel ini, kita akan melihat secara detail dan tanpa basa-basi bagaimana cara melakukannya dengan aman dan permanen, nuansa apa yang perlu Anda ketahui dengan cabang HWE yang baru, dan bagaimana menggabungkannya dengan trik-trik terkait GRUB2 lainnya yang bermanfaat.

Versi kernel apa saja yang didukung Ubuntu dan mengapa Anda tertarik untuk mengubahnya?

Ubuntu memelihara beberapa lini kernel secara paralel.Dirancang untuk berbagai skenario. Memahami apa yang telah Anda instal adalah langkah pertama sebelum mengubah apa pun di GRUB2, karena hal itu akan menentukan entri mana yang Anda lihat di menu boot dan mana yang ingin Anda gunakan sebagai default.

Di satu sisi terdapat cabang klasik. linux generikIni adalah kernel yang biasanya sudah terpasang di server dan sistem yang mengutamakan stabilitas. Kernel ini berumur panjang dan telah diuji secara menyeluruh, dan dalam versi LTS seperti Ubuntu 22.04, biasanya sesuai dengan seri seperti 5.15.x. Filosofinya jelas: lebih sedikit kejutan, lebih sedikit kerusakan setelah pembaruan.

Komputer desktop Ubuntu juga menawarkan Kernel HWE (Hardware Enablement)Cabang-cabang ini diinstal, misalnya, dengan perintah seperti sudo apt install linux-generic-hwe-22.04 dan mereka menargetkan versi kernel yang lebih baru, seperti seri 6.5.x dalam kasus Ubuntu 22.04 LTS, dengan tujuan mendukung perangkat keras modern yang belum ada ketika LTS asli dirilis.

Jika Anda perlu melangkah lebih jauh, ada juga varian lainnya. tepi hwe, dirancang sebagai cabang "pelopor" o tepi berdarahIni diinstal dengan perintah seperti sudo apt install linux-generic-hwe-22.04-edge Seringkali, paket ini menyertakan kernel yang lebih baru (misalnya, 6.7.x di Ubuntu 22.04). Paket ini menawarkan dukungan untuk perangkat keras yang sangat baru, tetapi dengan konsekuensi meningkatnya kemungkinan menemukan bug, ketidakstabilan, atau perilaku yang aneh.

Meskipun sistem hanya menjalankan satu kernel dalam satu waktu.Gambar inti kuno tersimpan di /boot Ini seperti polis asuransi jiwa. Jika pembaruan membuat komputer Anda tidak dapat digunakan, kemampuan untuk melakukan booting ke versi yang lebih lama dapat menyelamatkan keadaan. Masalahnya adalah, begitu Anda menginstal kernel yang lebih baru, Ubuntu cenderung akan selalu melakukan booting ke kernel tersebut, dan menghapus instalasinya tanpa bisa melakukan booting ke kernel lain bisa sangat merepotkan.

Opsi Lanjutan GRUB2

Pilih kernel yang berbeda untuk sementara waktu dari menu GRUB2.

Sebelum kita mulai mengedit file, ada baiknya untuk mengingat bahwa... GRUB2 sudah memungkinkan Anda untuk memilih kernel lain secara manual saat booting.Jika Anda memiliki akses fisik ke komputer dan keyboard yang terhubung, Anda seringkali tidak memerlukan hal lain untuk mencoba versi pratinjau.

Di Ubuntu, saat menghidupkan mesin, Anda dapat menampilkan menu GRUB2 dengan menekan tombol Shift. Selama fase booting awal. Pada sistem BIOS tradisional, ini berfungsi dengan baik; di UEFI, biasanya cukup bagi GRUB untuk menampilkan menu default, tetapi idenya sama: untuk melihat daftar sistem dan opsi.

Di menu tersebut, Anda biasanya akan melihat entri pertama dengan tipe Ubuntu, yang merupakan menu yang memuat kernel terakhir yang diinstal, diikuti oleh submenu yang disebut Opsi lanjutan untuk Ubuntu (Opsi lanjutan). Di dalam submenu ini tercantum semua versi kernel yang tersedia, masing-masing dengan mode normal dan mode pemulihannya.

  Cara Menggunakan Komputer sebagai Router Windows 10: Mudah dan Sederhana

Jika Anda mengalami masalah dengan kernel terbaru, Biasanya, cara yang dilakukan adalah masuk ke "Opsi lanjutan untuk Ubuntu". dan pilih versi yang lebih lama (misalnya, Ubuntu, with Linux 5.15.0-94-generic) sebagai pengganti versi 6.x terbaru. Setelah berhasil melakukan booting dengan versi tersebut, Anda dapat menghapus instalasi kernel yang bertentangan dan membuat ulang konfigurasi dengan sudo perbarui-grub.

Tentu saja, solusi manual ini memiliki kekurangan: Ini hanya berfungsi jika Anda dapat berinteraksi dengan GRUB.Pada server tanpa keyboard, mesin jarak jauh, atau lingkungan di mana Anda tidak melihat konsol boot, Anda memerlukan metode tetap yang memberi tahu GRUB input mana yang harus selalu digunakan, tanpa menanyakan kepada Anda setiap kali memulai.

Sebutkan semua kernel yang dikenal GRUB2.

Untuk dapat mengatur kernel default dengan andal, Pertama, Anda perlu mengetahui entri menu mana yang sebenarnya telah dikonfigurasi oleh GRUB2.Melihat paket yang terpasang saja tidak cukup, karena posisi di menu dapat berubah ketika kernel ditambahkan atau dihapus.

GRUB2 menghasilkan menu utamanya di dalam file tersebut. /boot/grub/grub.cfgMeskipun tidak disarankan untuk mengeditnya secara manual (karena akan ditimpa saat Anda menjalankannya) perbarui-grubYa, Anda dapat membacanya untuk mengekstrak informasi. Perintah yang sangat praktis untuk menampilkan daftar entri adalah:

grep -Ei 'submenu|menuentry ' /boot/grub/grub.cfg | sed -re «s/(.? )'(+)'.*/\1 \2/»

Perintah ini Ini akan mengembalikan daftar semua entri dan submenu. yang muncul saat startup, sesuatu yang mirip dengan:

menuentry Ubuntu
submenu Advanced options for Ubuntu
menuentry Ubuntu, with Linux 6.7.0-15-generic
menuentry Ubuntu, with Linux 6.7.0-15-generic (recovery mode)
menuentry Ubuntu, with Linux 5.15.0-94-generic
menuentry Ubuntu, with Linux 5.15.0-94-generic (recovery mode)
menuentry Ubuntu, with Linux 5.15.0-92-generic
menuentry Ubuntu, with Linux 5.15.0-92-generic (recovery mode)
menuentry Memory test (memtest86+.elf)
menuentry Memory test (memtest86+.bin, serial console)
menuentry MS-DOS 5.x/6.x/Win3.1 (on /dev/sdf1)

Entri pertama biasanya adalah "Ubuntu" dengan kernel yang paling modern.Dan di dalam submenu "Opsi lanjutan", semua versi yang terpasang akan muncul, diurutkan dari yang terbaru hingga yang terlama. Dalam contoh kita, jika Anda ingin selalu melakukan booting dengan Ubuntu, with Linux 5.15.0-94-genericEntri tersebut akan berada di submenu lanjutan, bukan di menu utama.

Daftar entri GRUB2

Tetapkan kernel tertentu berdasarkan posisi di menu (indeks GRUB_DEFAULT)

Bentuk klasik dari Tentukan kernel mana yang ingin di-boot oleh GRUB2 secara default. Ini melibatkan penunjukan indeks (posisi) entri, atau bahkan kombinasi "submenu > entri" ketika versi yang diinginkan berada di dalam "Opsi lanjutan untuk Ubuntu".

File yang mengontrol hal ini adalah / etc / default / grubSebelum melakukan perubahan apa pun, sangat disarankan untuk membuat cadangan cepat jika Anda perlu dengan mudah kembali ke keadaan sebelumnya. Anda dapat melakukan ini dengan:

sudo cp / etc / default / grub /etc/default/grub.bak

Selanjutnya, editlah dengan editor favorit Anda, misalnya dengan Nano:

sudo nano / etc / default / grub

Di dalamnya Anda akan melihat garis seperti ini GRUB_DEFAULT=0, yang menunjukkan bahwa entri pertama di menu utama (indeks nol) akan digunakan. Jika kernel yang Anda inginkan berada di dalam submenu "Opsi lanjutan"Anda dapat memerintahkan GRUB untuk masuk ke submenu tersebut dan memilih posisi tertentu menggunakan notasi submenú>entrada.

Mengikuti contoh sebelumnya, jika "Opsi lanjutan untuk Ubuntu" adalah opsi 1 di menu utama dan di dalam submenu tersebut "Ubuntu, dengan Linux 5.15.0-94-generic" adalah opsi ketiga (dihitung dari nol dan melewati mode pemulihan), Anda dapat menulis sesuatu seperti:

GRUB_DEFAULT="1>3"

Logikanya sederhana, tetapi Anda harus memperhatikan indeksnya.Level pertama mengacu pada posisi submenu di menu utama, dan level kedua mengacu pada posisi entri di dalam submenu tersebut. Selain itu, perlu diingat bahwa entri "mode pemulihan" biasanya berurutan, jadi opsi normal menggunakan angka ganjil dan opsi pemulihan menggunakan angka genap.

Setelah Anda berubah GRUB_DEFAULT, simpan file tersebut (di Nano, Ctrl + O dan kemudian Ctrl + X) dan menerapkan perubahan dengan membuat ulang konfigurasi GRUB dengan:

sudo perbarui-grub

Dibalik ini, mulai ulang sistem dengan sudo reboot dan, setelah proses booting selesai, sistem akan memeriksa kernel mana yang telah dimuat:

uname -a

Hasilnya akan menunjukkan kepada Anda, misalnya, Linux ... 5.15.0-94-generic ... menunjukkan bahwa Anda sekarang menggunakan versi yang Anda tetapkan menggunakan indeks di GRUB_DEFAULT.

Gunakan nama entri menu sebagai pengganti indeks (mode "tersimpan").

Metode pengindeksan memiliki masalah utama: Posisi berubah saat Anda menginstal atau menghapus kernel.Itu artinya pembaruan kernel dapat membuat 1>3 Berhenti menargetkan kernel yang tepat, yang justru ingin Anda hindari jika Anda menginginkan stabilitas jangka panjang.

  PikaOS, distribusi Linux yang memudahkan bermain game.

GRUB2 menawarkan alternatif yang jauh lebih andal: Gunakan nama persis dari entri menu sebagai item default.Dengan cara ini, selama entri tersebut ada di grub.cfgVersi tersebut akan tetap terpilih meskipun versi baru ditambahkan di atas atau di bawahnya dalam daftar.

Intinya adalah: pertama-tama Anda menemukan nama lengkap dari item menu yang Anda inginkan., seperti yang terlihat di /boot/grub/grub.cfg (misalnya Ubuntu, with Linux 6.8.0-60-generic), lalu Anda mengkonfigurasi GRUB untuk menggunakannya sebagai entri tersimpan standar.

Untuk menemukan nama pastinya, Anda dapat membuka file konfigurasi dengan editor atau penampil, misalnya:

sudo nano /boot/grub/grub.cfg

Begitu masuk, Gunakan Ctrl+W di Nano untuk mencari string yang sesuai dengan versi kernel. yang menarik minat Anda (misalnya, "6.8.0-60-generic"). Sejalan dengan menuentry Anda akan melihat judul lengkapnya, kurang lebih seperti ini:

menuentry 'Ubuntu, with Linux 6.8.0-60-generic' ...

Sekarang, alih-alih bermain-main dengan indeks, Anda dapat memberi tahu GRUB untuk menggunakan nama tersebut sebagai pilihan yang tersimpan.Prosedur umumnya melibatkan eksekusi perintah seperti berikut:

sudo grub-set-default «Ubuntu, dengan Linux 6.8.0-60-generic»

Perintah ini mendefinisikan entri yang ditentukan sebagai entri yang dianggap sebagai "default yang tersimpan". Untuk memastikan bahwa pengaturan telah diterapkan dengan benar, Anda dapat memeriksa file lingkungan GRUB:

sudo grub-editenv list

Anda akan melihat baris seperti ini:

saved_entry=Ubuntu, with Linux 6.8.0-60-generic

Ada kemungkinan juga bahwa, tergantung pada konfigurasi sebelumnya, Opsi GRUB_DEFAULT=saved sedang digunakan en /etc/default/grubyang memberi tahu GRUB untuk selalu menggunakan yang terakhir. entri tersimpan ditetapkan. Bagaimanapun juga, sementara saved_entry Jika kernel yang Anda inginkan cocok, Anda akan terus melakukan booting dengan versi tersebut secara otomatis.

Setelah menerapkan perubahan ini, buat ulang file konfigurasi dengan sudo perbarui-grubMulai ulang sistem dan konfirmasi lagi dengan uname -a bahwa Anda memulai dengan versi yang ditetapkan sebagai default.

Konfigurasi GRUB2 dengan kernel yang tersimpan.

Mengubah kernel di Ubuntu ke versi tertentu (menginstal dan menurunkan versi)

Dalam banyak kasus, Anda tidak hanya ingin memilih kernel yang sudah terpasang, tetapi beralih dari versi Anda saat ini ke versi tertentuHal ini terjadi karena aplikasi Anda membutuhkannya, karena driver hanya mendukung seri tertentu, atau karena pembaruan terbaru telah merusak sebagian sistem Anda.

Langkah pertama yang harus selalu dilakukan ketahui kernel mana yang sedang Anda jalankan saat iniUntuk melakukan ini, Anda dapat menggunakan perintah seperti:

uname-r

O baik:

uname -a

yang akan menghasilkan sesuatu seperti ini:

Linux web 6.8.0-85-generic #85~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC ... x86_64 GNU/Linux

Setelah Anda mengetahui di mana Anda berada, langkah selanjutnya adalah lihat kernel mana yang tersedia di repositoriDi lingkungan Ubuntu/Debian, ini biasanya dilakukan dengan menanyakan paket-paket tersebut. linux-image Dari repositori, filter berdasarkan versi yang Anda minati. Setelah menemukan versi spesifiknya, Anda dapat menginstalnya langsung dengan apt atau mengkompilasinya sendiri (lihat Cara mencari konfigurasi di `make menuconfig`), sesuai keinginan Anda.

Misalnya, jika Anda ingin turun dari 6.8.0-85-generik a 6.8.0-60-generikAnda akan menginstal paket yang sesuai dengan perintah yang tepat, dan mengkonfirmasinya dengan "S" saat tepat Sistem akan menanyakan apakah Anda ingin melanjutkan instalasi. Setelah proses selesai, Dengan demikian, Anda akan memiliki versi kernel tersebut yang tersedia untuk booting.Namun, GRUB akan terus memilih yang terbaru sampai Anda mengubah pengaturan seperti yang dijelaskan.

Setelah menginstal kernel yang diinginkan, nyalakan ulang komputernya agar dapat menetapkannya sebagai default menggunakan salah satu metode di atas (berdasarkan indeks atau berdasarkan nama), mana pun yang lebih nyaman dan andal untuk kasus Anda.

Tetapkan kernel tertentu sebagai kernel default dari submenu "Opsi lanjutan".

Pada distribusi seperti Ubuntu 22 dan 24, ketika versi kernel yang lebih rendah dari versi saat ini ditambahkan, Versi tersebut tidak ditetapkan sebagai entri utama.tetapi ditambahkan ke submenu Opsi lanjutan untuk UbuntuOleh karena itu, meskipun Anda menginstal versi 6.8.0-60 di bawah 6.8.0-85, setelah memulai ulang, Anda tetap akan melakukan booting dengan versi 85.

Untuk GRUB2 secara otomatis memilih versi yang Anda inginkan dari submenu.Anda perlu mengetahui posisi tepatnya. Sekali lagi, perintah yang menampilkan menuentry y submenu Ini membantu Anda melihat struktur dan urutan numerik yang akan digunakan GRUB.

  Pangsa Pasar Windows, macOS, dan Linux Saat Ini: Analisis dan Tren

Bayangkan setelah menjalankan perintah listing, Anda menemukan bahwa kernel target Anda (misalnya, "Ubuntu, dengan Linux 6.8.0-60-generic") muncul di posisi keempat submenu "Opsi lanjutan", dan submenu ini adalah yang pertama setelah entri utama. Dalam hal ini, kombinasi indeks, dimulai dari nol, adalah 1> 2 (submenu pada posisi 1, entri pada posisi 2 di dalam submenu tersebut).

Di File /etc/default/grubKemudian Anda akan mengubah baris tersebut:

GRUB_DEFAULT=0

oleh:

GRUB_DEFAULT="1>2"

Setelah menyimpan perubahan dan menjalankannya sudo perbarui-grub, Pada saat Anda melakukan booting berikutnya, kernel spesifik tersebut akan dipilih secara otomatis. di dalam "Opsi lanjutan", tanpa perlu masuk ke submenu secara manual setiap kali.

Setelah memulai ulang, Anda dapat memverifikasi bahwa semuanya berjalan dengan baik. uname-r o uname -a, memverifikasi bahwa versi kernel aktif adalah versi yang telah Anda atur melalui GRUB_DEFAULT.

Pengeditan konfigurasi GRUB2

Copot pemasangan HWE dan kernel edge, lalu kembali ke cabang stabil.

Setelah Anda punya Nyalakan sistem dengan kernel stabil dari cabang linux-generic. (misalnya, seri 5.15.x pada Ubuntu 22.04 LTS), langkah logis selanjutnya jika HWE atau kernel edge telah menimbulkan masalah adalah membersihkan cabang-cabang sistem tersebut.

Untuk menghapus instalasi metapaket HWE, Anda dapat menggunakan pembersihan yang tepat dengan karakter pengganti yang mencakup seluruh cabang, seperti:

sudo apt purge linux-generic-hwe-22.04*

Setelah menghapus metapaket tersebut, Anda mungkin ingin Hapus juga image kernel modern yang tidak lagi Anda butuhkan.Jika, misalnya, Anda ingin menghapus semua kernel di atas versi 6.x dan menggantinya dengan seri 5.x, Anda dapat menggunakan perintah seperti ini:

sudo apt purge linux-image-6*

Jenis penghapusan ini menghapus paket citra kernel yang namanya diawali dengan "linux-image-6", jadi disarankan untuk meninjau dengan cermat apa yang akan Anda hapus sebelum mengkonfirmasi. Jangan lupa bahwa Anda harus memelihara setidaknya satu cabang yang stabil dan berfungsi., biasanya linux generikkarena tanpanya sistem bisa kehabisan kernel yang dapat di-boot.

Setelah pembersihan kernel apa pun, hal ini sangat penting. Perbarui konfigurasi GRUB untuk menghentikan referensi ke entri yang sudah tidak ada lagi.Jika tidak, Anda mungkin akan menemukan opsi menu yang mengarah ke kernel yang telah dihapus. Untuk membuat ulang file konfigurasi, gunakan:

sudo perbarui-grub

Jika Anda ingin memastikan bahwa cabang generik tetap terinstal, Anda dapat memaksa instalasinya dengan:

sudo apt install linux-generic

Dalam kebanyakan kasus, sistem akan memberi tahu Anda bahwa paket tersebut sudah terinstal, tetapi dengan cara ini Anda memverifikasi bahwa metapaket tersebut ada dan Anda akan terus menerima pembaruan keamanan dan perbaikan pada seri stabil tersebut.

Sebagai langkah terakhir, jika Anda telah berubah GRUB_DEFAULT ke indeks atau nama tertentu agar dapat mengatasi masalah dengan HWE/edge, Anda dapat mengembalikannya ke nilai default. (biasanya 0) mengedit lagi /etc/default/grub:

sudo nano / etc / default / grub

Dan meninggalkan baris tersebut sebagai:

GRUB_DEFAULT="0"

Kemudian simpan, jalankan sudo perbarui-grub dan mulai ulang dengan sudo reboot agar sistem dapat melakukan booting secara normal dengan kernel terbaru dari cabang tersebut. linux generik yang telah Anda instal.

Pada akhirnya, mengontrol kernel mana yang akan di-boot menggunakan GRUB2 menjadi alat fundamental bagi setiap pengguna Ubuntu, Debian, atau turunannya yang tidak ingin bergantung pada pembaruan terbaru. Dengan menggabungkan instalasi versi spesifik, penggunaan "Opsi lanjutan", pemilihan berdasarkan indeks atau nama menu, dan pembersihan cabang yang bermasalah.Anda dapat menyesuaikan inti sistem dengan kebutuhan nyata Anda: stabilitas yang sangat andal pada server, kompatibilitas maksimum pada peralatan modern, atau perpaduan yang terukur dari keduanya di lingkungan desktop di mana Anda tidak ingin mengambil risiko penggunaan sehari-hari Anda pada kernel eksperimental.

tidak menampilkan menu GRUB saat mengubah GRUB_TIMEOUT=
Artikel terkait:
GRUB tidak menampilkan menu setelah mengubah GRUB_TIMEOUT: penyebab dan solusi pasti