Se você tem mais de uma distribuição instalada a ultima é onde está o controle do grub, cada vez que atualizar o kernel de outra tem que subir o sistema com o controle do grub e atualizar. Confira como fazer essa atualização de qualquer outra distribuição no disco.
Quando se instala um kernel novo ou uma atualização, o installer atualiza o grub para que o novo kernel seja carregado no boot.
Mas se você tem mais de uma distribuição instalada no(s) seu(s) disco(s), a ultima instalada é que ira ter o controle do grub, as demais você ou uma instalação de kernel podem atualizar o grub dela, mas não ira surtir efeito no grub ativo na maquina, o controle está em outra distribuição instalada em outra partição.
Nesse cenário você tem duas alternativas:
Reinicia a maquina, carrega a outra distribuição, atualiza o grub, reinicia e volta a que teve o kernel alterado. Trabalheira dos infernos kkkkk
Ou você atualiza o grub da outra distribuição diretamente da que recebeu alterações no kernel.
Se considera a segunda opção a mais pratica continue lendo.
Chroot é uma operação que altera o diretório raiz aparente para o processo atual de execução e seus filhos. Um programa que é executado em tal ambiente modificado não consegue acessar os arquivos e comandos fora dessa árvore de diretórios ambiental. Esse ambiente modificado é chamado de um prisão chroot (ou chroot jail).
Alterar a raiz geralmente é feito para executar a manutenção do sistema em sistemas onde a inicialização e/ou a autenticação não são mais possíveis.
Exemplos comuns são:
A primeira providencia é você saber em que partição está a distribuição que controla o grub, é a ultima distribuição instalada, caso não tenha ideia, carregue essa distribuição e no terminal de os comandos abaixo.
Log como root.
Rode o fdisk.
No meu caso é o openSUSE e está instalado em /dev/sda5 e eu estou em /dev/sda3, o sistema carregado tem um *.
Sabendo a partição que tem o sistema que controla o grub, você só precisa fazer um chroot nessa partição e atualizar o grub normalmente.
Em qualquer uma das distribuições que não seja a que controla o grub de os comandos na sequencia.
Log como root.
Rode o fdisk para visualizar as partições apenas, lembre que você deve saber a partição da ultima distribuição instalada.
Agora iremos montar a partição de controle do grub, lembre de alterar sda5 pela sua partição que o sistema operacional controla o grub.
Assuma o controle do sistema que tem o controle do grub.
Ai está.
Confira na imagem abaixo, o terminal da direita é o sistema ativo o Debian e o da esquerda é o openSUSE que no meu caso tem o controle do grub.
Aqui temos uma detalhe, nesse exemplo é openSUSE e ele não se atualiza o grub com o mesmo comando dos derivados Debian, confira :
Atualizar o grub para:
Debian e derivados.
openSUSE e Fedora.
Como no meu caso é openSUSE o comando é o abaixo.
Grub do openSUSE atualizado apartir do Debian.
Prontinho, pode reiniciar a maquina e entrar diretamente no sistema que foi atualizado o kernel e necessitava a reinicialização, com a vantagem de não precisar carregar o sistema com o controle do grub e reiniciar duas vezes a maquina.
Atualizar o grub
Quando se instala um kernel novo ou uma atualização, o installer atualiza o grub para que o novo kernel seja carregado no boot.
Mas se você tem mais de uma distribuição instalada no(s) seu(s) disco(s), a ultima instalada é que ira ter o controle do grub, as demais você ou uma instalação de kernel podem atualizar o grub dela, mas não ira surtir efeito no grub ativo na maquina, o controle está em outra distribuição instalada em outra partição.
Nesse cenário você tem duas alternativas:
Reinicia a maquina, carrega a outra distribuição, atualiza o grub, reinicia e volta a que teve o kernel alterado. Trabalheira dos infernos kkkkk
Ou você atualiza o grub da outra distribuição diretamente da que recebeu alterações no kernel.
Se considera a segunda opção a mais pratica continue lendo.
Chroot
Chroot é uma operação que altera o diretório raiz aparente para o processo atual de execução e seus filhos. Um programa que é executado em tal ambiente modificado não consegue acessar os arquivos e comandos fora dessa árvore de diretórios ambiental. Esse ambiente modificado é chamado de um prisão chroot (ou chroot jail).
Alterar a raiz geralmente é feito para executar a manutenção do sistema em sistemas onde a inicialização e/ou a autenticação não são mais possíveis.
Exemplos comuns são:
- Reinstalação do gerenciador de boot.
- Reconstrução da imagem de initramfs.
- Atualizar ou fazer downgrade de pacotes.
- Redefinir uma senha esquecida.
- Compilar pacotes em um chroot.
Mãos a obra
A primeira providencia é você saber em que partição está a distribuição que controla o grub, é a ultima distribuição instalada, caso não tenha ideia, carregue essa distribuição e no terminal de os comandos abaixo.
Log como root.
sudo -i
Rode o fdisk.
fdisk -l
No meu caso é o openSUSE e está instalado em /dev/sda5 e eu estou em /dev/sda3, o sistema carregado tem um *.
Sabendo a partição que tem o sistema que controla o grub, você só precisa fazer um chroot nessa partição e atualizar o grub normalmente.
Em qualquer uma das distribuições que não seja a que controla o grub de os comandos na sequencia.
Log como root.
sudo -i
Rode o fdisk para visualizar as partições apenas, lembre que você deve saber a partição da ultima distribuição instalada.
fdisk -l
Agora iremos montar a partição de controle do grub, lembre de alterar sda5 pela sua partição que o sistema operacional controla o grub.
mount /dev/sda5 /mnt/ ; mount --bind /dev /mnt/dev ; mount --bind /proc /mnt/proc ; mount --bind /sys /mnt/sys ; mount --bind /dev/pts /mnt/dev/pts
Assuma o controle do sistema que tem o controle do grub.
chroot /mnt/ /bin/bash
Ai está.
Confira na imagem abaixo, o terminal da direita é o sistema ativo o Debian e o da esquerda é o openSUSE que no meu caso tem o controle do grub.
Aqui temos uma detalhe, nesse exemplo é openSUSE e ele não se atualiza o grub com o mesmo comando dos derivados Debian, confira :
Atualizar o grub para:
Debian e derivados.
update-grub
openSUSE e Fedora.
grub2-mkconfig -o /boot/grub2/grub.cfg
Como no meu caso é openSUSE o comando é o abaixo.
grub2-mkconfig -o /boot/grub2/grub.cfg
Grub do openSUSE atualizado apartir do Debian.
Prontinho, pode reiniciar a maquina e entrar diretamente no sistema que foi atualizado o kernel e necessitava a reinicialização, com a vantagem de não precisar carregar o sistema com o controle do grub e reiniciar duas vezes a maquina.
Antes de aprender isso eu ficava indo nas opções avançadas do grub para subir pelo kernel mais novo kkk. Ótimo tutorial.
ResponderExcluirÉ um saco isso mano, assim faz a parada de onde atualizou e ja era kkkkkkkkk
ExcluirEu não entendi absolutamente nada!
ResponderExcluirEstude o guia foca iniciante e ira passar a entender.
Excluir