Bagaimana cara menambahkan kernel baru ke grub2

24

Bagaimana kita bisa menambahkan kernel ke grub2? Saya tahu hal-hal yang bisa kami lakukan dengan versi sebelumnya, tetapi tampaknya telah berubah. File apa yang harus kita edit?

Amir Zadeh
sumber

Jawaban:

11

Untuk menambahkan kernel baru ke grub2:

  1. Pindahkan kernel Anda ke / boot /
  2. Jalankan sudo perbarui-grub

update-grub akan memindai kernel untuk komputer Anda, dan membuat daftar kernel yang tersedia saat boot.

Agar Anda dapat memilih kernel mana yang akan di-boot saat boot, Anda mungkin harus menahan tombol SHIFT tepat setelah BIOS melakukan posting.

Anda dapat mengedit / etc / default / grub untuk mengubah opsi dan parameter boot default yang mungkin Anda perlukan.

Linux Non-Debian

Lihat catatan grub untuk distribusi Anda, seperti dokumen Fedora GRUB 2 ini .

  • grub2-mkconfig -o /boot/grub2/grub.cfg
earthmeLon
sumber
Bagaimana jika Anda memiliki 2 distro Linux tanpa partisi / boot terpisah? Apakah Anda harus menyalin kernel dari rootfs sekunder ke yang primer? Atau apakah 'grub-update' juga memeriksa partisi lain untuk kernel baru?
jiggunjer
Ini adalah pertanyaan terpisah, tetapi yang dapat dieksekusi yang digunakan harus membaca /boot/dan menghasilkan dengan benar. File konfigurasi grub (mis .:) /etc/default/grubmungkin berbeda per OS, jadi pastikan Anda menyinkronkannya. Praktik terbaik mungkin memiliki satu OS menghasilkan entri grub untuk Anda, namun.
earthmeLon
Bukan pertanyaan yang terpisah, OP tidak menentukan konfigurasinya, dan dual boot adalah yang umum. Pikir itu mungkin menambah nilai pada jawaban Anda, yang sudah bagus. Jadi dengan kata lain, OS sekunder bahkan tidak memerlukan grub itu sendiri, grub dari yang primer akan memindai / mem-boot folder pada semua partisi dan menemukan kernel.
jiggunjer
1
Bagaimana cara saya memindahkan kernel ke / boot? mv kernel /boot? Di mana saya menemukan kernel yang dapat dipindahkan ke / boot?
Thomas Weller
3

Saya menjalankan Fedora 20, dan perintah untuk memperbarui grub2 adalah grub2-mkconfig. Seluruh proses dapat diselesaikan dengan kernel build make:

make xconfig (make config, etc)
make bzImage
make modules
sudo make modules_install
sudu make install

Ini (langkah terakhir) akan menyalin kernel ke / boot, dan memperbarui boot loader grub2. Sangat mudah, dan itu berfungsi dengan benar dalam kasus saya. Satu-satunya masalah saya adalah Anda tidak benar-benar mempelajari detail penting dari proses ini, semuanya otomatis. Jika Anda memiliki masalah dan harus mencari tahu apa yang salah, Anda bisa terjebak.

philbrooksjazz
sumber
sudo make installmemberitahu saya: Cannot find LILO.
René Nyffenegger
Mungkin Anda sedang membangun versi kernel yang jauh lebih tua? LILO digunakan pada versi kernel yang lebih tua dari 3.x (tidak yakin versi tepatnya) Distribusi apa yang Anda gunakan?
philbrooksjazz
Ini ada di Arch Linux, dengan rc terbaru (4.6.0-rc5) yang telah saya klon dari repositori Linux Torvalds.
René Nyffenegger
0

/boot/grub/grub.cfgadalah file yang diganti menu.lstdari grub1

Dalam sistem Debian / Ubuntu ini dihasilkan oleh update-grub, yang menjalankan skrip dalam /etc/grub.dmenggunakan sesuatu yang mirip dengan run-parts.

Flexo
sumber
0

Jika kernel baru diinstal dengan dpkg (seolah-olah itu dikompilasi dengan make-kpkg), update-grub2 sudah cukup (tidak menghilangkan kernel yang sudah ada juga)

Tuan Shunz
sumber
0

Anda tidak "mengedit" untuk menambahkan kernel lagi. Memindai dan menambahkannya secara dinamis. Jika Anda HARUS menambahkan satu pemindaian tidak menemukan Anda harus mencari di /etc/grub.d dan memodifikasi atau menyalin dan custom40 (itu ditambahkan terakhir jadi itu adalah tempat yang bagus untuk menguji konfigurasi Anda sebelum Anda meletakkannya di bagian atas Anda daftar).

RobotHumans
sumber
0

Coba update-grubatau update-grub2tergantung pada versi grub Anda. Anda harus menjalankan ini sebagai root sudo,. Ini bekerja untuk saya ketika saya menginstal distro Linux kedua tanpa menginstal ulang grub.

hajar
sumber
Saya menyadari bahwa jawaban saya mirip dengan jawaban Alan, tetapi saya menambahkan perintah grub2.
beatgammit