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

Afr*_*Afr 39 grub kernel arch-linux lts

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

我已经安装了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
Run Code Online (Sandbox Code Playgroud)

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

如何将带有 grub 的 archlinux 切换到 lts 内核?切换内核时还有什么需要注意的?

Afr*_*Afr 40

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

  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您需要相应地编辑 syslinux 配置文件/boot/syslinux/syslinux.cfg,只需将所有内容都指向-lts内核即可。

  • FWIW 您可以跳过第 3 步并同时安装两个内核。对我来说,重启后默认选择了 `lts`,但我也可以进入 grub 的 `advanced options` 并选择标准内核。 (9认同)
  • 第 4 步很关键,否则您必须在启动时手动编辑 grub 才能启动正确的内核。 (2认同)

Fra*_* Yu 8

Afri 的回答对 GRUB 效果很好,但是我直接使用 UEFI,它更轻巧,充分利用了 UEFI 主板。

  1. 安装 linux-lts
  2. (可选)检查/boot文件夹中是否有 LTS 版本的内核、ramdisk 和 fallback 。
  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
    
    Run Code Online (Sandbox Code Playgroud)

    注意--loader价值和initrd价值。这些文件应该在/boot文件夹中。

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

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


Gra*_*rus 5

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

    pacman -S linux-lts
    
    Run Code Online (Sandbox Code Playgroud)
  2. 更新您的引导加载程序条目:

    $ sudo vim /boot/loader/entries/arch.conf 
    
    Run Code Online (Sandbox Code Playgroud)

    并改变:

    linux   /vmlinuz-linux
    initrd  /initramfs-linux.img
    ???????????????????????
    linux   /vmlinuz-linux-lts
    initrd  /initramfs-linux-lts.img
    
    Run Code Online (Sandbox Code Playgroud)
  3. 重新启动并确认 uname -r