Como usar o GRUB Rescue para corrigir o Linux


0

Tela de inicialização do Ubuntu Linux em um laptop
Jordan Gloor / How-To Geek
Se seus shells GRUB mostrarem um prompt “grub>”, você poderá usar o ls, set, linuxe initrd comandos para consertar seu sistema Linux. Se, em vez disso, você vir um prompt “grub rescue>”, use set, insmod, linuxe initrd comandos para inicializar seu PC.

Se o seu computador Linux não conseguir inicializar em seu sistema operacional, é provável que você se veja diante de um prompt no shell do GRUB. Siga estas etapas para reparar seus processos de inicialização interrompidos.

Quando seu bootloader não inicializa

Existem muito poucos problemas de computador que fazem seu coração afundar tão profunda e rapidamente quanto uma falha na inicialização. Sem um sistema operacional funcionando, seu computador não é realmente um computador.

Pode ser um problema muito opaco, sem uma maneira fácil de detalhar a causa raiz. Sem acesso ao Linux, você não pode usar nenhuma das ferramentas e processos de diagnóstico usuais que usaria para investigar o problema. E sem determinar qual é o problema, como você pode corrigi-lo?

No Linux, GRUB é o software que controla o processo de inicialização. Se você tiver vários sistemas operacionais instalados, ele permite que você escolha aquele em que deseja inicializar.

GRUB é controlado por sua configuração. Ele também depende de outros arquivos de suporte para executar suas funções. Se algum deles estiver ausente ou corrompido, o GRUB não funcionará. Alterações nos discos rígidos e partições do seu computador precisam ser refletidas na configuração do GRUB. Se não for esse o caso, as instruções do GRUB não farão sentido e seu processo de inicialização não funcionará.

Como observação, o que todos chamamos de GRUB é na verdade GRUB 2. Esta é uma versão avançada do GRUB lançada em 2012. Entre outras alterações, mudou a maneira como o arquivo “grub.cfg” foi criado e permite que você inicialize a partir de mídia removível.

Se o GRUB não puder carregar um sistema operacional, você ficará olhando para um prompt no shell do GRUB. Este é um ambiente minimalista que permitirá que você execute um punhado de ações. Feito corretamente, no entanto, essas etapas podem ressuscitar seu computador.

Existem dois shells GRUB diferentes. Dependendo da causa raiz do problema, você pode se deparar com um prompt de shell do GRUB:

grub>

ou em um GRUB resgatar prompt de shell:

grub rescue>

O shell de resgate do GRUB é ainda mais restrito do que o shell do GRUB, mas ainda tem força suficiente para inicializar o computador. Uma vez que seu computador inicializou, você estará em uma posição muito melhor para curar a causa raiz.

Usando o Shell GRUB

O shell GRUB é uma interface de linha de comando que permite usar um pequeno subconjunto de comandos do Linux. Se você se encontrar aqui em vez de na tela de login normal, isso significa que seu processo de inicialização está confuso.

O prompt do shell GRUB

Os comandos aos quais você tem acesso não são os mesmos das versões usuais do Linux. Por exemplo, o shell GRUB ls comando não é o Bash ls comando. Tem muito pouco em comum com ele. Podemos ver isso usando o --help opção.

ls --help

Usando a opção --help com a versão shell GRUB de ls

Ele lista apenas cinco opções. Isso está muito longe das dezenas de opções suportadas por ls em Bash. No entanto, mesmo com nossa paleta de comandos um tanto silenciosa, ainda podemos corrigir a situação.

No prompt, digite ls e pressione “Enter”.

ls

A saída da versão do shell GRUB de ls, mostrando unidades e partições

Neste computador, ele lista três itens.

  • (hd0) é o primeiro disco rígido.
  • (hd0,gpt1) é a primeira partição no primeiro disco rígido.
  • (hd0,gpt2) é a segunda partição no primeiro disco rígido.

O rótulo “gpt” significa tabela de partição GUID. Precisamos incluir os colchetes “()” quando referenciamos uma partição, mas podemos omitir o rótulo.

Para examinar as partições, usaremos ls.

ls (hd0,1)
ls (hd0,2)

Usando a versão shell GRUB de ls para identificar a partição Linux

Descobrimos que a segunda partição possui um sistema de arquivos Linux nela. Investigaremos um pouco mais examinando o diretório raiz dessa partição.

ls (hd0,2)/

Usando a versão do shell GRUB de ls para examinar uma partição específica

Claramente, esta é a partição do Linux, com o diretório de inicialização nela. É aqui que os arquivos GRUB, as imagens de inicialização do Linux e outros arquivos de inicialização são armazenados.

Neste computador, precisaremos fazer referência à partição (hd0,2) quando emitimos nossos comandos. Em seu computador, você usaria qualquer partição em que encontrasse a instalação do Linux.

Podemos usar o cat comando para procurar arquivos de texto anexando o caminho do diretório e o nome do arquivo ao nome da partição, assim:

cat (hd0,2)/etc/issue

Olhando para a versão do Linux usando o comando cat no shell GRUB

Em instalações de inicialização múltipla, essa é uma maneira útil de verificar se você está na partição correta. Também é ótimo para procurar dentro dos arquivos de configuração.

Aqui, estamos usando o ls comando com o -l (longo) e -h (tamanhos legíveis por humanos) opções para listar os arquivos no diretório “/boot”.

ls -lh (hd0,2)/boot

Listando os arquivos no diretório /boot usando a versão GURB de ls

Para fazer esse computador inicializar, precisamos informar ao GRUB que nossa recém-descoberta partição Linux contém os arquivos de inicialização.

set root=(hd0,2)

Precisamos especificar de qual kernel do Linux inicializar. Fazemos isso com o linux comando. Observe que também temos que fornecer o diretório raiz usando o disco rígido usual do Linux e o esquema de nomenclatura da partição.

linux /boot/vmlinuz-6.2.0-20-generic root=/dev/sda2

Em nosso computador de exemplo, estamos usando (hd0) que é o primeiro disco rígido. Isso é chamado sda na nomenclatura usual do Linux. Descobrimos que a segunda partição é a partição Linux, então precisamos especificar sda2.

Sua máquina pode ser diferente. Por exemplo, se sua partição Linux for relatada como (hd2,1) isso significa particionar um no terceiro disco rígido ou sdc1.

Também precisamos especificar qual imagem do sistema de arquivos baseado em RAM usar quando o computador for inicializado. Isso deve usar o mesmo componente numérico do kernel do Linux que estamos usando.

initrd /boot/initrd.img-6.2.0-20-generic

Definindo os parâmetros de inicialização no shell GRUB

Agora, para inicializar nosso sistema, digite “boot” e pressione “Enter”.

Isso deve inicializar seu computador no Linux. Isso nos colocou em execução novamente, mas ainda precisamos corrigir o GRUB para não precisarmos fazer isso toda vez que iniciarmos nosso computador.

nós vamos correr update-grub. Isso fará a varredura de nosso sistema, identificará os sistemas operacionais e criará uma nova configuração do GRUB. Precisamos executar isso como o usuário root.

sudo update-grub

Executando update-grub para reconstruir o arquivo grub.cfg

Raramente, pode ser necessário reinstalar o gerenciador de inicialização GRUB também, usando grub-install.

sudo grub-install /dev/sda

Observe que você não precisa especificar em qual partição instalar, apenas em qual unidade. Em instalações normais, é a mesma unidade em que seu Linux está.

A prova do pudim vem com a próxima reinicialização. Seu computador deve reiniciar normalmente.

RELACIONADO: Como definir as configurações do carregador de inicialização GRUB2

Usando o GRUB Rescue Shell

Dependendo da natureza do problema de inicialização, você pode não cair no shell GRUB. Você pode ser deixado no GRUB resgatar modo. Se for esse o caso, seu prompt ficará assim:

grub rescue>

Os comandos que precisamos emitir neste shell são diferentes. precisamos usar ls para encontrar a partição Linux, como se estivesse usando o shell GRUB. Tendo identificado a partição do Linux, você pode prosseguir e inserir esses comandos.

Lembre-se de usar os identificadores de unidade e os números de versão do kernel corretos para o seu computador. O insmod comando carrega os módulos do kernel.

set prefix=(hd0,2)/boot/grub
set root=(hd0,2)
insmod normal
insmod linux
linux /boot/vmlinuz-6.2.0-20-generic root=/dev/sda2
initrd /boot/initrd.img-6.2.0-20-generic

Definindo os parâmetros de inicialização no shell de resgate do GRUB

Você pode digitar “boot” e pressionar “Enter” para reiniciar o computador. Assim que ele for reiniciado e você estiver conectado, atualize o GRUB com o update-grub comando.

Outras soluções possíveis

Se o problema for falta de arquivos de inicialização, como os arquivos “vmlinuz” e “initrd.img”, você pode inicializar seu computador a partir de um Live DVD ou unidade flash USB inicializável do Linux e copiar os arquivos ausentes no lugar.

Observe que os arquivos “vmlinuz” e “initrd.img” deve têm os mesmos números de versão neles, porque funcionam como um par correspondente.

RELACIONADO: Como criar um Linux Live USB inicializável no seu Mac


Like it? Share with your friends!

0

0 Comments

Your email address will not be published. Required fields are marked *