Wie man einen neuen Kernel zu grub2 hinzufügt

24

Wie können wir grub2 einen Kernel hinzufügen? Ich kannte die Sachen, die wir mit den früheren Versionen machen konnten, aber es scheint sich geändert zu haben. Welche Dateien sollen wir bearbeiten?

Amir Zadeh
quelle

Antworten:

11

So fügen Sie grub2 einen neuen Kernel hinzu:

  1. Verschiebe deinen Kernel nach / boot /
  2. Führen Sie sudo update-grub aus

update-grub durchsucht Ihren Computer nach Kerneln und erstellt beim Booten eine Liste der verfügbaren Kernel.

Damit Sie auswählen können, welcher Kernel zum Startzeitpunkt gestartet werden soll, müssen Sie möglicherweise die UMSCHALTTASTE gedrückt halten, unmittelbar nachdem Ihr BIOS die Veröffentlichung durchgeführt hat.

Sie können / etc / default / grub bearbeiten , um die erforderlichen Standardstartoptionen und -parameter zu ändern.

Nicht-Debian-Linux

Lesen Sie die Grub-Hinweise für Ihre Distribution, wie z. B. die folgenden Fedora GRUB 2-Dokumente .

  • grub2-mkconfig -o /boot/grub2/grub.cfg
ErdeMeLon
quelle
Was ist, wenn Sie 2 Linux-Distributionen ohne separate / Boot-Partition haben? Müssen Sie den Kernel von den sekundären Rootfs auf den primären kopieren? Oder überprüft 'grub-update' auch andere Partitionen auf neue Kernel?
Jiggunjer
Dies ist eine separate Frage, aber eine der verwendeten ausführbaren Dateien sollte /boot/korrekt gelesen und generiert werden. Die Grub-Konfigurationsdatei (ex /etc/default/grub:) kann je nach Betriebssystem unterschiedlich sein. Stellen Sie daher sicher, dass Sie sie synchronisieren. Es wird jedoch empfohlen, dass ein einzelnes Betriebssystem Grub-Einträge für Sie generiert.
ErdeMeLon
Nicht wirklich eine separate Frage, OP hat seine Konfiguration nicht spezifiziert, und Dualboots sind keine Seltenheit. Dachte, es könnte Ihre Antwort aufwerten, was bereits gut ist. Mit anderen Worten, das sekundäre Betriebssystem benötigt nicht einmal einen eigenen Grub. Der Grub des primären Betriebssystems sucht auf allen Partitionen nach / boot-Ordnern und findet die Kernel.
Jiggunjer
1
Wie verschiebe ich einen Kernel nach / boot? mv kernel /boot? Wo finde ich einen Kernel, der nach / boot verschoben werden könnte?
Thomas Weller
3

Ich verwende Fedora 20 und der Befehl zum Aktualisieren von grub2 lautet grub2-mkconfig. Der gesamte Prozess kann auch mit dem Kernel-Build make ausgeführt werden:

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

Dies (letzter Schritt) kopiert den Kernel nach / boot und aktualisiert den Bootloader von grub2. Sehr einfach, und es hat in meinem Fall richtig funktioniert. Mein einziges Problem ist, dass Sie keine wichtigen Details des Prozesses wirklich lernen, alles ist automatisiert. Wenn Sie Probleme haben und herausfinden müssen, was nicht stimmt, können Sie stecken bleiben.

Philbrooksjazz
quelle
sudo make installsagt mir: Cannot find LILO.
René Nyffenegger
Möglicherweise bauen Sie eine viel ältere Version des Kernels? LILO wurde auf Kernel-Versionen verwendet, die älter als 3.x sind (keine genaue Version). Mit welcher Distribution arbeiten Sie?
Philbrooksjazz
Dies war unter Arch Linux, mit dem neuesten rc (4.6.0-rc5), das ich aus dem Linux-Torvalds-Repository git geklont habe.
René Nyffenegger
0

/boot/grub/grub.cfgist die Datei, die menu.lstvon grub1 ersetzt wurde

In Debian / Ubuntu-Systemen wird dies durch generiert update-grub, das die Skripte /etc/grub.dmit etwas Ähnlichem ausführt run-parts.

Flexo
quelle
0

Wenn der neue Kernel mit dpkg installiert wird (als ob er mit make-kpkg kompiliert wurde), reicht update-grub2 (es werden auch keine existierenden Kernel mehr entfernt)

Herr Shunz
quelle
0

Sie "bearbeiten" nicht mehr, um Kernel hinzuzufügen. Es scannt und fügt sie dynamisch hinzu. Wenn Sie eine hinzufügen MÜSSEN, die ein Scan nicht findet, sollten Sie in /etc/grub.d nachsehen und diese ändern oder kopieren und custom40 (die letzte wird hinzugefügt, damit Sie Ihre Konfiguration testen können, bevor Sie sie oben einfügen Liste).

RobotHumans
quelle
0

Probieren Sie es aus update-gruboder update-grub2je nach Grub-Version. Sie müssen diese als root ausführen sudo. Das hat bei mir funktioniert, als ich eine zweite Linux-Distribution installiert habe, ohne grub neu zu installieren.

Beatgammit
quelle
Ich habe festgestellt, dass meine Antwort der Antwort von Alan ähnlich ist, aber ich habe den Befehl grub2 hinzugefügt.
Beatgammit