Я использую headless server install of arch linux. Высокая частота обновлений ядра вызвала у меня головную боль в обслуживании, поэтому я хочу перейти наядро lts.
Я уже установил 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 использовать.
Как переключить archlinux с grub на ядро lts? На что еще следует обратить внимание при переключении ядра?
решение1
Хорошо, после того, как Джо указал мне правильное направление в комментариях, вот как я это сделал:
в основном просто установить
pacman -S linux-lts
(необязательно) проверьте, доступны ли ядро, ramdisk и резервная копия в
ls -lsha /boot
удалить стандартное ядро
pacman -R linux
обновить конфигурацию grub
grub-mkconfig -o /boot/grub/grub.cfg
перезагрузить
Обратите внимание: поскольку syslinux
вам нужно будет соответствующим образом отредактировать файл конфигурации syslinux /boot/syslinux/syslinux.cfg
, просто укажите все на -lts
ядро.
решение2
Ответ от Африхорошо работает для GRUB, но яиспользуя UEFI напрямую, который более легкий и полностью использует возможности материнской платы UEFI.
- Установить
linux-lts
- (необязательно) Проверьте, доступны ли в
/boot
папке LTS-версия ядра, ramdisk и резервная версия. Сгенерируйте запись 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, если у вас есть Windows или другие дистрибутивы Linux:
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