Estou executando uma instalação de servidor headless do arch linux. A alta taxa de atualizações do kernel me causou algumas dores de cabeça de manutenção e, portanto, desejo mudar para o kernel lts .
Já instalei o linux-lts
e o linux-lts-headers
pacotes. Agora, eu tenho os dois kernels instalados, mas não tenho a menor ideia de como continuar a partir daqui. Os documentos explicam :
[…] você precisará atualizar seu arquivo de configuração do bootloader para usar o kernel LTS e o disco RAM:
vmlinuz-linux-lts
einitramfs-linux-lts.img
.
Já os localizei na seção de inicialização:
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
Agora, já encontrei entradas apontando para o kernel não-lts no grub.cfg
, mas o cabeçalho me diz para não editar este arquivo. Ele me aponta para o utilitário grub-mkconfig
, mas não consigo descobrir como usar esta ferramenta para dizer ao grub qual kernel e ramdisk usar.
Como trocar o archlinux com o grub para o kernel lts? O que mais eu preciso ter cuidado ao trocar o kernel?
Comentários
Resposta
Ok, depois que joe me indicou a direção certa nos comentários, foi assim que eu fiz:
-
basicamente, basta instalar
pacman -S linux-lts
-
(opcional) verifique se kernel, ramdisk e fallback estão disponíveis em
ls -lsha /boot
-
remova o kernel padrão
pacman -R linux
-
atualize a configuração do grub
grub-mkconfig -o /boot/grub/grub.cfg
-
reboot
Nota, para syslinux
você precisará editar a configuração do syslinux arquivo em /boot/syslinux/syslinux.cfg
adequadamente, basta apontar tudo para o -lts
kernel.
Comentários
- Observe que também pode ser necessário substituir quaisquer módulos do kernel por seus equivalentes lts . por exemplo. se
acpi_call
foi instalado anteriormente, é ' provavelmente melhor instalar tambémacpi_call-lts
, caso contrário o módulo ' não foi carregado. - FWIW você pode pular a etapa 3 e ter os dois kernels instalados ao mesmo tempo. Para mim,
lts
foi selecionado por padrão após a reinicialização, mas eu também poderia ir para grub ' sadvanced options
e selecione o kernel padrão. - O meu travou na inicialização do initramfs e tive que executar manualmente
sudo mkinitcpio -p linux-lts
. - e como faço para voltar?
- a etapa 4 é crítica, caso contrário, você terá que editar manualmente o grub no momento da inicialização para inicializar o kernel correto.
Resposta
A resposta de Afri funciona bem para o GRUB, mas eu sou usando UEFI diretamente , que é mais leve e faz uso total da placa-mãe UEFI.
- Instale
linux-lts
- (opcional) Verifique se a versão LTS do kernel, ramdisk e fallback estão disponíveis na pasta
/boot
. -
Gere a entrada EFI, da mesma maneira que você gerou o Linux regular, mas substituindo a ram disco e carregador com os LTS. Por exemplo:
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
Observe o valor
--loader
einitrd
valor. Esses arquivos devem estar na pasta/boot
. -
Reinicialize. Você pode querer ajustar a ordem de inicialização na placa-mãe antes de inicializar no sistema operacional, por exemplo, pressionando F12 (dependendo da sua placa-mãe). Na verdade, eu uso o Hyper-V, que permite a configuração da ordem de inicialização no “Gerenciador Hyper-V”.
-
(opcional) Depois de inicializar com sucesso no kernel LTS (verifique-o com
uname -r
), remova o kernel padrão compacman -R linux
.
Resposta
-
Instale
linux-lts
(ou qualquer outro kernel):pacman -S linux-lts
-
Atualize a entrada do carregador de inicialização:
$ sudo vim /boot/loader/entries/arch.conf
e alterar:
linux /vmlinuz-linux initrd /initramfs-linux.img ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ linux /vmlinuz-linux-lts initrd /initramfs-linux-lts.img
- Reinicialize e confirme com
uname -r
Resposta
Como Franklin Yu, também estou em um sistema sem GRUB. precisava mudar para um kernel diferente e nunca usei o efibootmgr antes. Perguntei a um amigo com mais conhecimento sobre isso e ele sugeriu a ferramenta rEFInd , que automatiza os passos que Franklin sugeriu e apresenta um menu interessante no momento da inicialização com os kernels disponíveis. A instalação foi totalmente direta e fui capaz de mudar as versões do kernel facilmente.
Comentários
- Na minha máquina (inicialização dupla do Arch Linux com Windows + rEFInd ), depois de instalar o kernel
lts
, também preciso editarrefind_linux.conf
: changeinitrd=/boot/initramfs-linux.img
parainitrd=/boot/initramfs-linux-lts.img
.
grub.cfg
resultante./etc/grub.d
– consulte aqui