Ich führe eine Headless-Server-Installation von Arch Linux aus. Die hohe Rate an Kernel-Upgrades verursachte mir einige Wartungsprobleme und ich möchte daher auf lts Kernel .
Ich habe bereits die linux-lts
und linux-lts-headers
-Pakete. Jetzt habe ich beide Kernel installiert, aber ich weiß nicht, wie ich von hier aus fortfahren soll. In den Dokumenten wird erklärt :
[…] müssen Sie Ihre aktualisieren Konfigurationsdatei des Bootloaders zur Verwendung des LTS-Kernels und der RAM-Disk:
vmlinuz-linux-lts
undinitramfs-linux-lts.img
.
Ich habe sie bereits im Boot-Bereich 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 in der grub.cfg
, aber der Header sagt mir, dass ich diese Datei nicht bearbeiten soll. Er verweist stattdessen auf das Dienstprogramm grub-mkconfig
, aber ich kann es nicht herausfinden Wie man dieses Tool verwendet, um grub mitzuteilen, welcher Kernel und welche Ramdisk verwendet werden sollen.
Wie man Archlinux mit grub auf den lts-Kernel umschaltet? Worauf muss ich beim Umschalten des Kernels noch achten?
Kommentare
- Dies ist der einfachste Aufruf. Das Tool sollte Ihre vorhandenen Kernel automatisch aufheben ( plus zusätzliche Bits wie Ramdisk, Mikrocode usw.) und a utomatisch hinzufügen. Dies gibt einen schönen Überblick darüber, wie Sie die resultierende
grub.cfg
-Datei konfigurieren können. - auch können Sie Dateien zu Einträgen in
/etc/grub.d
hinzufügen – siehe hier - 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.
Antwort
Okay, nachdem Joe mir in den Kommentaren die richtige Richtung gezeigt hat, habe ich es so gemacht:
-
Installieren Sie einfach
pacman -S linux-lts
-
(optional) Überprüfen Sie, ob Kernel, Ramdisk und Fallback in
ls -lsha /boot
-
verfügbar sind Entfernen Sie den Standardkernel
pacman -R linux
-
Aktualisieren Sie die Grub-Konfiguration
grub-mkconfig -o /boot/grub/grub.cfg
-
Neustart
Hinweis: Für syslinux
müssen Sie die syslinux-Konfiguration bearbeiten Datei in /boot/syslinux/syslinux.cfg
entsprechend zeigen Sie einfach alles auf die -lts
Kernel.
Kommentare
- Beachten Sie, dass möglicherweise auch alle Kernelmodule durch ihre lts-Entsprechung ersetzt werden müssen . z.B. Wenn
acpi_call
zuvor installiert wurde, ist es ' wahrscheinlich am besten, andernfalls auchacpi_call-lts
zu installieren Das Modul wird ' nicht geladen. - FWIW Sie können Schritt 3 überspringen und beide Kernel gleichzeitig installieren. Für mich wurde
lts
nach dem Neustart standardmäßig ausgewählt, aber ich könnte auch in grub ' sadvanced options
und wählen Sie stattdessen den Standardkernel aus. - Meiner blieb beim Booten von initramfs hängen und ich musste
sudo mkinitcpio -p linux-lts
manuell ausführen. - und wie wechsle ich zurück?
- Schritt 4 ist wichtig, andernfalls müssen Sie grub beim Booten manuell bearbeiten, um den richtigen Kernel zu booten.
Antwort
Die Antwort von Afri funktioniert gut für GRUB, aber ich bin direktes Verwenden von UEFI , das leichter ist und das UEFI-Motherboard voll ausnutzt.
- Installieren Sie
linux-lts
- (optional) Überprüfen Sie, ob die LTS-Version von Kernel, Ramdisk und Fallback im Ordner
/boot
verfügbar ist. -
Generieren Sie den EFI-Eintrag genauso wie den regulären Linux-Eintrag, ersetzen Sie jedoch den RAM Festplatte und Lader mit den LTS. Beispiel:
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
Beachten Sie den Wert
--loader
undinitrd
Wert. Diese Dateien sollten sich im Ordner/boot
befinden. -
Neustart. Möglicherweise möchten Sie die Startreihenfolge in Motherboad anpassen, bevor Sie das Betriebssystem starten, indem Sie beispielsweise F12 drücken (abhängig von Ihrem Motherboard). Ich verwende tatsächlich Hyper-V, das die Konfiguration der Startreihenfolge in „Hyper-V Manager“ ermöglicht.
-
(optional) Nach dem erfolgreichen Booten des LTS-Kernels (überprüfen Sie dies mit
uname -r
), entfernen Sie den Standardkernel mitpacman -R linux
.
Antwort
-
Installieren Sie
linux-lts
(oder ein anderer Kernel):pacman -S linux-lts
-
Aktualisieren Sie Ihren Bootloader-Eintrag:
$ sudo vim /boot/loader/entries/arch.conf
und ändern:
linux /vmlinuz-linux initrd /initramfs-linux.img ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ linux /vmlinuz-linux-lts initrd /initramfs-linux-lts.img
- Starten Sie neu und bestätigen Sie mit
uname -r
Antwort
Wie Franklin Yu bin ich auch auf einem System ohne GRUB musste zu einem anderen Kernel wechseln und efibootmgr noch nicht verwendet haben. Ich habe einen sachkundigeren Freund danach gefragt und er hat das Tool rEFInd , das die von Franklin vorgeschlagenen Schritte automatisiert und Ihnen beim Booten ein schönes Menü mit den verfügbaren Kerneln anzeigt. Die Installation war völlig unkompliziert und ich konnte die Kernel-Versionen problemlos wechseln.
Kommentare
- Auf meinem Computer (Arch Linux Dual Boot mit Windows + rEFInd ) Nach der Installation des Kernels
lts
muss ich auchrefind_linux.conf
bearbeiten: changeinitrd=/boot/initramfs-linux.img
zuinitrd=/boot/initramfs-linux-lts.img
.