Wie kann ich Arch Linux auf seinen Kernel umstellen?

24

Ich führe eine kopflose Serverinstallation von Arch Linux aus. Die hohe Rate an Kernel-Upgrades bereitete mir einige Probleme bei der Wartung und ich möchte daher zum Kernel wechseln .

Ich habe die Pakete linux-ltsund bereits installiert linux-lts-headers. Jetzt habe ich beide Kernel installiert, aber ich bin ein bisschen ratlos, wie ich von hier aus weitermachen soll. Die Dokumente erklären :

[...] Sie müssen die Konfigurationsdatei Ihres Bootloaders aktualisieren, um den LTS-Kernel und die RAM-Disk zu verwenden: vmlinuz-linux-ltsund initramfs-linux-lts.img.

Ich habe sie bereits in der Boot-Sektion gefunden:

0 ✓ root@host ~ $ ll /boot/
total 85M
4,0K drwxr-xr-x  4 root root 4,0K 21. Mai 13:46 ./
4,0K drwxr-xr-x 17 root root 4,0K  4. Apr 15:08 ../
4,0K drwxr-xr-x  6 root root 4,0K  4. Apr 14:50 grub/
 27M -rw-r--r--  1 root root  27M 20. Mai 17:01 initramfs-linux-fallback.img
 12M -rw-r--r--  1 root root  12M 20. Mai 17:01 initramfs-linux.img
 27M -rw-r--r--  1 root root  27M 21. Mai 13:46 initramfs-linux-lts-fallback.img
 12M -rw-r--r--  1 root root  12M 21. Mai 13:46 initramfs-linux-lts.img
 16K drwx------  2 root root  16K  4. Apr 14:47 lost+found/
4,3M -rw-r--r--  1 root root 4,3M 11. Mai 22:23 vmlinuz-linux
4,2M -rw-r--r--  1 root root 4,2M 19. Mai 21:05 vmlinuz-linux-lts

Jetzt habe ich bereits Einträge gefunden, die auf den nicht-lts-Kernel verweisen, grub.cfgaber der Header weist mich an, diese Datei nicht zu bearbeiten. Es verweist mich grub-mkconfigstattdessen auf das Dienstprogramm, aber ich kann nicht herausfinden, wie ich dieses Tool verwende, um grub mitzuteilen, welcher Kernel und welche Ramdisk verwendet werden soll.

Wie wechselt man Archlinux mit Grub zum lts-Kernel? Was muss ich noch beachten, wenn ich den Kernel wechsle?

Afr
quelle
1
Dies ist der einfachste Aufruf. Das Tool sollte Ihre vorhandenen Kernel automatisch lokalisieren (plus zusätzliche Bits wie Ramdisk, Mikrocode usw.) und diese automatisch hinzufügen. Dies gibt einen schönen Überblick darüber, wie Sie die resultierende grub.cfgDatei konfigurieren können .
Joe
Sie können auch Einträge zu Dateien in hinzufügen /etc/grub.d- siehe hier
Joe
Führen Sie grub-mkconfig aus, überprüfen Sie, ob in grub.cfg eine Zeilengruppe für linux-lts angezeigt wird, und starten Sie den Computer neu.
fpmurphy

Antworten:

23

Okay, nachdem Joe mir in Kommentaren die richtige Richtung gezeigt hat, habe ich es so gemacht:

  1. Grundsätzlich einfach installieren pacman -S linux-lts

  2. (optional) Überprüfen Sie, ob Kernel, Ramdisk und Fallback in verfügbar sind ls -lsha /boot

  3. Entfernen Sie den Standard-Kernel pacman -R linux

  4. aktualisiere die grub config grub-mkconfig -o /boot/grub/grub.cfg

  5. neustarten

Beachten Sie, dass syslinuxSie die Syslinux-Konfigurationsdatei /boot/syslinux/syslinux.cfgentsprechend bearbeiten müssen, indem Sie einfach alles auf den -ltsKernel verweisen .

Afr
quelle
1
Beachten Sie, dass Sie möglicherweise auch alle Kernelmodule durch ihre entsprechenden lts ersetzen müssen. zB wenn acpi_calles vorher installiert war, ist es wahrscheinlich am besten, es auch zu installieren acpi_call-lts, sonst wird das Modul nicht geladen.
Ponkadoodle
4
FWIW können Sie Schritt 3 überspringen und beide Kernel gleichzeitig installieren. Für mich ltswurde nach dem Neustart standardmäßig ausgewählt, aber ich könnte auch zu grub gehen advanced optionsund stattdessen den Standardkernel auswählen.
Sparhawk
Meins blieb beim booten von initramfs stecken und ich musste manuell rennen sudo mkinitcpio -p linux-lts.
LeetNightshade
und wie schalte ich zurück
Benj
3

Die Antwort von Afri funktioniert gut für GRUB, aber ich verwende UEFI direkt , das leichter ist und das UEFI-Motherboard voll ausnutzt.

  1. Installieren linux-lts
  2. (Optional) Überprüfen Sie, ob die LTS-Version von Kernel, Ramdisk und Fallback im /bootOrdner verfügbar ist .
  3. Generieren Sie den EFI-Eintrag auf die gleiche Weise wie den regulären Linux-Eintrag, aber ersetzen Sie die Ramdisk und den Loader durch die LTS-Einträge. Beispielsweise:

    efibootmgr --disk /dev/sdX --part Y --create --label "Arch Linux LTS" --loader /vmlinuz-linux-lts --unicode 'root=PARTUUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX rw initrd=\initramfs-linux-lts.img' --verbose
    

    Notieren Sie den --loaderWert und den initrdWert. Diese Dateien sollten sich im /bootOrdner befinden.

  4. Starten Sie neu. Möglicherweise möchten Sie die Startreihenfolge in Motherboad anpassen, bevor Sie das Betriebssystem starten, z. B. durch Drücken von F12 (abhängig von Ihrem Motherboard). Ich verwende tatsächlich Hyper-V, das die Konfiguration der Startreihenfolge in "Hyper-V Manager" ermöglicht.

  5. (optional) Nachdem Sie den LTS-Kernel erfolgreich gebootet haben (bestätigen Sie dies mit uname -r), entfernen Sie den Standard-Kernel mit pacman -R linux.

Franklin Yu
quelle