我正在運行 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