Jak dodać nowe jądro do grub2

24

Jak możemy dodać jądro do grub2? Wiedziałem, co możemy zrobić z poprzednimi wersjami, ale wydaje się, że to się zmieniło. Jakie pliki powinniśmy edytować?

Amir Zadeh
źródło

Odpowiedzi:

11

Aby dodać nowe jądro do grub2:

  1. Przenieś jądro do / boot /
  2. Uruchom sudo update-grub

update-grub skanuje komputer w poszukiwaniu jąder i tworzy listę dostępnych jąder podczas startu systemu.

Aby wybrać jądro, które ma zostać uruchomione podczas rozruchu, może być konieczne przytrzymanie przycisku SHIFT zaraz po opublikowaniu systemu BIOS.

Możesz edytować / etc / default / grub, aby zmienić domyślne opcje uruchamiania i parametry, których możesz potrzebować.

Linux inny niż Debian

Zobacz uwagi grub dla swojej dystrybucji, takie jak te dokumenty Fedory GRUB 2 .

  • grub2-mkconfig -o /boot/grub2/grub.cfg
earthmeLon
źródło
Co jeśli masz 2 dystrybucje Linuksa bez oddzielnej partycji / boot? Czy musisz skopiować jądro z pomocniczego rootfsa na główny? Czy też „grub-update” sprawdza również inne partycje pod kątem nowych jąder?
jiggunjer
To jest osobne pytanie, ale każdy z używanych plików wykonywalnych powinien /boot/poprawnie czytać i generować. Plik konfiguracyjny grub (np. /etc/default/grub) Może być inny dla każdego systemu operacyjnego, więc upewnij się, że go zsynchronizowałeś. Najlepszą praktyką może być jednak to, aby jeden system operacyjny generował dla ciebie wpisy grub.
earthmeLon
Nie jest to osobne pytanie, OP nie określił swojej konfiguracji, a podwójne rozruchy są powszechne. Pomyślałem, że może to zwiększyć wartość twojej odpowiedzi, co już jest dobre. Innymi słowy, dodatkowy system operacyjny nie potrzebuje nawet własnego gruba, grub z podstawowego zeskanuje foldery / boot na wszystkich partycjach i znajdzie jądra.
jiggunjer
1
Jak przenieść jądro do / boot? mv kernel /boot? Gdzie znajdę jądro, które można przenieść do / boot?
Thomas Weller,
3

Korzystam z Fedory 20, a polecenie aktualizacji Grub2 to grub2-mkconfig. Cały proces można również wykonać za pomocą kompilacji jądra make:

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

Ten (ostatni krok) skopiuje jądro do / boot i zaktualizuje program ładujący grub2. Bardzo łatwe i działało poprawnie w moim przypadku. Moim jedynym problemem jest to, że tak naprawdę nie poznajesz żadnych ważnych szczegółów procesu, wszystko jest zautomatyzowane. Jeśli masz problemy i musisz dowiedzieć się, co jest nie tak, możesz utknąć.

philbrooksjazz
źródło
sudo make installmówi mi: Cannot find LILO.
René Nyffenegger
Być może budujesz znacznie starszą wersję jądra? LILO był używany w wersji jądra starszej niż 3.x (nie jest pewna dokładna wersja) Z jaką dystrybucją pracujesz?
philbrooksjazz
To było na Arch Linux, z najnowszym rc (4.6.0-rc5), który mam sklonowany z repozytorium Linux Torvalds.
René Nyffenegger
0

/boot/grub/grub.cfgto plik, który zastąpił menu.lstgrub1

W systemach Debian / Ubuntu jest to generowane przez update-grub, który uruchamia skrypty przy /etc/grub.dużyciu czegoś podobnego do run-parts.

Flexo
źródło
0

Jeśli nowe jądro jest zainstalowane wraz z dpkg (tak jakby było skompilowane z make-kpkg), wystarczy aktualizacja-grub2 (nie usuwa też już istniejących jąder)

Pan Shunz
źródło
0

Nie „edytujesz”, aby dodać jądra. Skanuje i dodaje je dynamicznie. Jeśli MUSISZ dodać skan, którego nie znajdziesz, powinieneś zajrzeć do /etc/grub.d i zmodyfikować lub skopiować i dostosować40 (jest dodawany jako ostatni, więc jest to świetne miejsce do przetestowania konfiguracji przed umieszczeniem jej na górze lista).

RobotHumans
źródło
0

Spróbuj update-grublub w update-grub2zależności od wersji grub. Trzeba będzie uruchomić je jako root sudo. Działa to dla mnie, gdy zainstalowałem drugą dystrybucję Linuksa bez ponownej instalacji grub.

beatgammit
źródło
Zdałem sobie sprawę, że moja odpowiedź jest podobna do odpowiedzi Alana, ale dodałem polecenie grub2.
beatgammit