如何将 arch linux 切换到 lts 内核?

如何将 arch linux 切换到 lts 内核?

我正在运行 arch linux 的无头服务器安装。内核升级率太高,让我在维护方面很头疼,因此我希望切换到它的内核

我已经安装了linux-ltslinux-lts-headers软件包。现在,我已经安装了两个内核,但我有点不知道如何从这里继续。这文档解释:

[...]您需要更新引导加载程序的配置文件以使用 LTS 内核和 ram 磁盘:vmlinuz-linux-ltsinitramfs-linux-lts.img.

我已经将它们定位在启动部分:

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

现在,我已经在 中找到了指向非 lts 内核的条目,grub.cfg但标头告诉我不要编辑此文件。它向我指出了该实用程序grub-mkconfig,但我不知道如何使用该工具来告诉 grub 使用哪个内核和 ramdisk。

如何将带有 grub 的 archlinux 切换到 lts 内核?切换内核时还有哪些需要注意的地方?

答案1

好吧,在乔在评论中为我指出了正确的方向之后,我就是这样做的:

  1. 基本上只需安装pacman -S linux-lts

  2. (可选)检查内核、ramdisk 和后备是否可用ls -lsha /boot

  3. 删除标准内核pacman -R linux

  4. 更新 grub 配置grub-mkconfig -o /boot/grub/grub.cfg

  5. 重启

请注意,syslinux您需要/boot/syslinux/syslinux.cfg相应地编辑 syslinux 配置文件,只需将所有内容指向-lts内核即可。

答案2

来自非洲的回答对于 GRUB 来说效果很好,但我直接使用UEFI,更加轻量化,充分利用了UEFI主板。

  1. 安装linux-lts
  2. (可选)检查文件夹中是否有 LTS 版本的内核、ramdisk 和后备可用/boot
  3. 生成 EFI 条目的方式与生成常规 Linux 条目的方式相同,但将 ramdisk 和 loader 替换为 LTS 条目。例如:

    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
    

    注意--loader数值和initrd数值。这些文件应该位于该/boot文件夹中。

  4. 重启。您可能需要在启动进入操作系统之前调整主板中的启动顺序,例如按 F12(取决于您的主板)。我实际上使用 Hyper-V,它允许在“Hyper-V Manager”中配置启动顺序。

  5. (可选)成功引导到 LTS 内核(使用 验证uname -r)后,使用 删除标准内核pacman -R linux

答案3

  1. 安装linux-lts(或任何其他内核):

    pacman -S linux-lts
    
  2. 更新您的引导加载程序条目:

    $ sudo vim /boot/loader/entries/arch.conf 
    

    并改变:

    linux   /vmlinuz-linux
    initrd  /initramfs-linux.img
    ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
    linux   /vmlinuz-linux-lts
    initrd  /initramfs-linux-lts.img
    
  3. 重新启动并确认uname -r

答案4

感谢这个答案,丹尼尔·沙佩罗重新寻找支持 Arch,无需额外编辑@dmn。我正在执行以下操作来安装refind,特别是“extra_kernel_version_strings”很重要,EFI 目录是你的,如果你有 Windows 或其他 Linux 发行版,它也会自动双启动 Windows:

pacman -S refind
mkdir -p /efi/EFI/Boot
cp /usr/share/refind/refind_x64.efi /efi/EFI/Boot/bootx64.efi
cp -r /usr/share/refind/drivers_x64/ /efi/EFI/Boot/
echo 'extra_kernel_version_strings linux,linux-hardened,linux-lts,linux-zen,linux-git;' > /efi/EFI/Boot/refind.conf
echo 'fold_linux_kernels false' >> /efi/EFI/Boot/refind.conf
echo 'default_selection "linux from"' >> /efi/EFI/Boot/refind.conf

相关内容