我正在运行 arch linux 的无头服务器安装。内核升级率太高,让我在维护方面很头疼,因此我希望切换到它的内核。
我已经安装了linux-lts
和linux-lts-headers
软件包。现在,我已经安装了两个内核,但我有点不知道如何从这里继续。这文档解释:
[...]您需要更新引导加载程序的配置文件以使用 LTS 内核和 ram 磁盘:
vmlinuz-linux-lts
和initramfs-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
好吧,在乔在评论中为我指出了正确的方向之后,我就是这样做的:
基本上只需安装
pacman -S linux-lts
(可选)检查内核、ramdisk 和后备是否可用
ls -lsha /boot
删除标准内核
pacman -R linux
更新 grub 配置
grub-mkconfig -o /boot/grub/grub.cfg
重启
请注意,syslinux
您需要/boot/syslinux/syslinux.cfg
相应地编辑 syslinux 配置文件,只需将所有内容指向-lts
内核即可。
答案2
来自非洲的回答对于 GRUB 来说效果很好,但我直接使用UEFI,更加轻量化,充分利用了UEFI主板。
- 安装
linux-lts
- (可选)检查文件夹中是否有 LTS 版本的内核、ramdisk 和后备可用
/boot
。 生成 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
文件夹中。重启。您可能需要在启动进入操作系统之前调整主板中的启动顺序,例如按 F12(取决于您的主板)。我实际上使用 Hyper-V,它允许在“Hyper-V Manager”中配置启动顺序。
(可选)成功引导到 LTS 内核(使用 验证
uname -r
)后,使用 删除标准内核pacman -R linux
。
答案3
安装
linux-lts
(或任何其他内核):pacman -S linux-lts
更新您的引导加载程序条目:
$ sudo vim /boot/loader/entries/arch.conf
并改变:
linux /vmlinuz-linux initrd /initramfs-linux.img ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ linux /vmlinuz-linux-lts initrd /initramfs-linux-lts.img
- 重新启动并确认
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