Mostrando postagens com marcador GRUB. Mostrar todas as postagens
Mostrando postagens com marcador GRUB. Mostrar todas as postagens

sexta-feira, 17 de agosto de 2018

Personalizando o menu do GRUB - 1st time

Quem nunca?

Ligar o computador para uma seção de trabalho ou de lazer pode se tornar uma experiência mais interessante se você personalizar o menu do boot loader!


Se você pesquisar na internet, vai achar milhões de temas prontos para instalar em seu sistema. Um ou dois podem até ter a sua cara. Mas não é muito complicado você mesmo deixar o menu do grub do jeito que você quiser! Em menos de meia hora, dá para deixar ele com um aspecto agradável aos seus olhos. Tudo vai depender do nível de detalhes que você deseja adicionar.

Neste artigo iremos dar algumas dicas de como criar um tema para o menu do GRUB. Como exemplo, iremos mostrar o passo-a-passo de criação do menu mostrado na figura acima.

domingo, 29 de maio de 2011

Sistema de Recuperação

Uma das coisas que me fazem gostar muito do Linux é que, salvo uma pane muito grave, dificilmente você se vê numa situação de "perda total", onde a "única alternativa" é formatar e reinstalar tudo outra vez!

Recentemente, me deparei com uma situação inusitada que, embora tenha acontecido em um ambiente virtual e controlado, bem pode acontecer numa situação do dia-a-dia, como por exemplo você clonar uma partição do HD (boot, por exemplo) e depois tentar recuperá-la em outro HD.

O pessoal do suporte costuma fazer muito isto! Digamos que uma empresa comprou 15 máquinas idênticas para seus colaboradores. Ao invés do pessoal do suporte instalar tudo em todas as máquinas, instala-se tudo em uma máquina e depois é só cloná-la e restaurar o clono nas outras. Mole, mole...

Mas podem ocorrer algumas "pegadinhas" como esta que ocorreu comigo, embora haja uma boa explicação para isto!

Ao tentar o boot em uma máquina virtual que importei de outro ambiente (uso muito o VirtualBox), deparei-me com a situação mostrada na figura abaixo.


Como vocês podem ver na figura acima, o sistema não conseguiu completar o boot porque não encontrou a partição de boot! Prestem atenção na seguinte informação:

Could not find /dev/disk/by-id/ata-VBOX_HARDDISK_VB82ef4f0b-5de0e2e8-part2.

Bem, o que interessa aqui é o detalhe do /disk/by-id/!

Normalmente, as partições são identificadas no Linux por algo como /dev/sdaN, onde N é o número da partição. Isto é o que chamamos de device name. As versões mais novas do Linux estão identificando o(s) disco(s) e suas respectivas partições agora pelo ID do dispositivo (device ID). Isto também tem uma boa razão para ser assim, principalmente quando você pode ter muito baratamente muitos discos em um mesmo sistema!.

Enfim, caso isto ocorra com você, vou mostrar como corrigir isto, usando o Sistema de Recuperação do OpenSuSE.

O sistema de recuperação do opensuse nada mais é que a possibilidade de você dar boot pelo DVD e "assumir" o sistema em modo root. Veja como fazer isto seguindo as figuras abaixo.


Selecionando o Sistema de Recuperação do DVD de instalação

Não deixe de apertar F2 e selecionar nosso idioma. Senão o teclado vai ficar uma bagunça!


Pronto para entrar em modo root?

Digite root e aperte Enter, para assumir o controle em modo root!


Explorando o ambiente

Usando o fdisk

O FDISK


Normalmente, em sistemas com um só HD, /dev/sda1 é a partição de swap e /dev/sda2 a partição de boot. Em outras situações onde existem dois ou mais HD as coisas podem estar de forma diferente e usar o fdisk pode ser a maneira mais apropriada para descobrir quem é quem.

O fdisk é o particionador de linha de comando do linux. Ele pode ser usado para obter informações a respeito do(s) disco(s) instalado(s) no sistema. Em nosso caso, vamos acionar o fdisk para ver como nosso disco foi particionado. É só digitar:

fdisk /dev/sda

NOTA: Se você é um daqueles raros que ainda usa uma placa mãe não SATA, com HD IDE, então use /dev/hda.

Uma vez no fdisk, tecle p e Enter, para exibir as partições de /dev/sda

Agora podemos ver que sda tem duas partições -> sda1 e sda2. sda1 é a partição de swap e sda2 é nossa partição de boot. Pronto, já temos as informações que precisamos para resolver o problema!


Montando a partição de boot do sistema e assumindo o controle como o root "de verdade".

Existe um truque no openSuSE para você montar a partição de boot "original" e assumir o controle como se você tivesse dado boot normalmente. Este truque consiste em montar a partição "original" e usar o comando chroot. Mas, para isto, tem um pequeno detalhe técnico que vou mostrar agora. Siga as instruções!

1) montando a partição
Esta é a parte mais fácil:

mount /dev/sda2 /mnt

2) montando os dispositivos virtuais (detalhe técnico)

mount -o bind /proc /mnt/proc
mount -o bind /dev /mnt/dev
mount -o bind /sys /mnt/sys

3) a "mágica" do chroot

 Agora que está tudo preparado,  basta digitar

chroot /mnt

Pronto, agora você está em seu HD, como se tivesse dado o boot por ele, e com os privilégios do super usuário root! Veja na figura abaixo a sequência completa destes comandos e como o prompt muda para a cor vermelha, sinalizando que você está em modo root.


A tela após você assumir o root do sistema


Verificando as pastas do sistema "original"


Resolvendo o problema


Agora que estamos no controle do sistema "original" (verdadeiro), podemos corrigir o problema.


O GRUB e o arquivo menu.lst
Todos sabem(?) que o Grub é o gerenciador de boot do Linux. E sabem também que ele usa um arquivo chamado menu.lst, para obter as informações necessárias para o boot, certo? Ok. Então vamos verificar os dados contidos em menu.lst do nosso sistema "original".

Basta usar um belo cat /boot/grub/menu.lst para ver algo como o mostrado na tela abaixo.




Ops, Grub!

Podemos ver na figura acima que o grub procura a partição de boot em /dev/disk/by-id/ata-VBOX_HARDDISK_VB82ef4f0b-5de0e2e8-part2. Ocorre que ata-VBOX_HARDDISK_VB82ef4f0b-5de0e2e8 é o ID do HD de origem, mas estamos em outro HD, não é mesmo? Então o ID aqui é diferente e o Grub se ferra!


FSTAB

Outro arquivo usado pelo sistema e que pode atrapalhar o processo de boot é o fstab. O fstab guarda as informações a respeito das partiçoes do(s) disco(s) e seus respectivos pontos de montagem. Veja ne figura abaixo o resultado do comando cat /etc/fstab.


cat /etc/fstab


Como podemos ver na figura acima, as informações contidas no fstab usam disk-by-id. Este é outro arquivo que vamos ter que editar.

Alterando as configurações das partições

Há duas maneiras de corrigir inconsistências no fstab: através do yast ou editando o arquivo diretamente.

Eu prefiro trabalhar com arquivos de configuração editando-os diretamente. Mas isto porque já me sinto seguro em fazer alterações neles. Se você está iniciando, pode fazer quase tudo diretamente no yast, o utilitário de console para configuração do sistema (o yast2 é para o modo gráfico).

Usando o yast

Para entrar no yast, basta digitar yast na linha de comando.

Tela inicial do yast

Para chegar no particionador via yast, basta selecionar Sistema / Particionador. Veja na figura abaixo o yast exibindo o modo como a partição /dev/sda1 está montada em /etc/fstab.


/dev/sda1 em /etc/fstab, vista pelo yast

Como podemos ver na figura acima, /dev/sda1 está montada via fstab como a opção Device ID e é justamente isto que está causando o problema. Basta agora mudar para Device name e pronto.
Salvando esta modificação e voltando à linha de comando, podemos dar um novo cat /etc/fstab para ver o resultado. Deve ser algo como o mostrado na figura abaixo.

/etc/fstab modificado pelo yast

Podemos ver na figura acima que /dev/sda1 (a partição de swap) agora está montada pelo device name em fstab. Note que a partição /dev/sda2 continua montada pelo seu Device ID.

Editando fstab diretamente


Depois que você ganha experiência, tende a editar os arquivos de configuração diretamente. Vamos fazer isto com /etc/fstab, usando o joe. O joe é um editor de textos do console que acho melhor que o vi! Para chamá-lo, basta digitar joe, seguido do caminho/arquivo a ser editado.


Editando /etc/fstab com o joe

Para saber o que fazer com o joe, basta apertar Ctrl+K, depois H, para obter ajuda na tela.
Depois que editar fstab com o joe, basta Ctrl+K X, para salvar e sair.


Hora de editar /boot/grub/menu.lst


/boot/grub/menu.lst antes de editar


/boot/grub/menu.lst editado

 Note na figura acima que as informações de partição foram modificadas para Device name, à semelhança de /etc/fstab.


/boot/grub/device.map


Há um último lugar onde as informações do HD estão gravadas no formato /dev/disk/byid. Trata-se do arquivo device.map, usado também pelo grub. Podemos abrí-lo com o joe e editá-lo, como mostrado nas figuras abaixo.



/boot/grub/device.map antes da edição

/boot/grub/device.map depois da edição


De volta ao controle!


Depois de todas as alterações feitas a gravadas, basta reiniciar o sistema, para ver se tudo deu certo! Basta digitar

reboot


De volta ao sistema "original"

Até o próximo artigo...

sábado, 21 de novembro de 2009

GRUB - Adicionando o Windows no menu

Se você instalou o Windows depois de ter instalado o openSUSE, certamente foi surpreendido pelo "sequestro" do teu computador: ele assumiu tudo e mandou o openSUSE para o "saco".

Talvez por isto você tenha pesquisado informações e tenha vindo parar no meu Blog. Sorte a tua ;-)

Em meu último artigo mostrei como recuperar o GRUB, depois de uma instalação do Windows. Acontece que depois de recuperar o GRUB, quem "desapareceu" foi o Windows. Neste pequeno artigo vou mostrar como adicionar o Windows ao menu do GRUB, para que o openSUSE e o Windows possam conviver juntos pacificamente, apesar de esta não ser uma boa idéia para a Micro$oft, ao que parece.

Como descobrir em qual partição está o Windows

Antes de mais nada, é preciso saber em qual partição o windows está instalado. Em meu artigo anterior, mostrei como fazer isto. Mas há outra maneira mais simples, já que você está acessando o openSUSE normalmente. Para isto, abra o Yast (Configurações do Administrador) e, na seção Sistema, selecione Particionador.

Não se assuste com as advertências! Siga em frente, quando você então verá uma tela parecida com a mostrada na figura abaixo.


Verificando as partições no disco

O Sistema de arquivos do Widows é NTFS. Então, como mostrado na figura acima, em nosso exemplo o Windows está instalado na partição /dev/sda4. Agora que temos esta informação, basta clicar no botão Cancelar e fugir do "perigo".

Adicionando a partição do Windows no menu do GRUB

Agora que já sabemos em qual partição está o Windows, vamos abrir o Carregador de Inicialização, que também fica na seção Sistema. Agora observe a figura abaixo.


Configurações do menu do GRUB

Para adicionar o Windows ao menu do GRUB, basta clicar no botão Adicionar, na tela de configurações do carregador de inicialização (mostrada acima).

Na próxima tela que será exibida, depois de clicar no botão Adicionar, você deve selecionar Outro sistema (chainloader), e clicar em Próximo. Na tela que aparecer, você completa as informações, como mostrado na figura abaixo.


Adicionando o Windows a menu do GRUB

Em Nome da seção você escreve o que irá aparecer no menu do GRUB. Em Outro sistema, você seleciona a partição onde o Windows está instalado (/dev/sda4, em nosso exemplo).

É muito importante que você ative a opção Ativar esta partição quando selecionada para inicialização. Coisas do Windows...

Agora é só clicar em Ok, para voltar à tela anterior.

Editando o Menu do GRUB

Você pode aproveitar este momento para retirar coisas indesejáveis do menu, como por exemplo a opção de boot pelo disquete! Pode também usar os botões para cima e para baixo, para alterar a ordem dos itens no menu.

Quando tudo estiver como deseja, basta clicar em Ok, para encerrar este procedimento.

Veja na figura abaixo como ficaram as configurações em nosso exemplo.


O menu do GRUB editado

Finalmente, você pode reiniciar o computador e ver a nova opção de boot: O Windows!


O Windows aparecendo no menu do GRUB

E, para encerrar, o Windows rodando.


O Windows 7!


Comentem, critiquem, fiquem à vontade!




.

GRUB - Recuperação após instalação do Windows

Neste artigo vou mostrar como se recuperar de um "incidente" muito comum entre usuários novatos do Linux: Recuperar o Grub depois da instalação do Windows!

Mas este artigo serve também para qualquer outra situação em que o Grub tenha "desaparecido!"

Vou mostrar duas maneiras de como fazer isto: a maneira "assistida", onde será utilizada a opção de "Reparar o sistema instalado" do DVD do openSUSE; e a maneira "manual", onde será utilizada a opção "Sistema de recuperação".

Mas antes de prosseguir-mos, memorize esta informação: as configurações do GRUB ficam dentro de um arquivo chamado menu.lst, que fica dentro da pasta /boot/grub/.

A não ser que tenha acontecido um "desastre" dos grandes, este arquivo continua lá, embora você não esteja podendo dar boot pelo Linux.


Modo "assistido"

ATENÇÃO: Se você estiver usando o DVD da versão igual ou superior à versão 11.4 do OpenSuSE, não irá encontrar as opções de modo "assistido". Então pule para a seção Modo manual.

ATENÇÃO(2): Se você estiver usando a versão 12.2 ou superior, saiba que por default é instalado o GRUB2, ao invés do velho e conhecido GRUB. Em breve plubicarei uma atualização do Blog, tratando melhor deste assunto.


Ok, coloque o DVD de instalação do openSUSE na unidade e reinicie o computador, para dar boot pelo DVD. Quando parar na tela inicial, mude o idioma para "Português do Brasil" e selecione a resolução de sua preferência. Após isto, selecione a opção "Reparar o sistema instalado".

Existem três métodos de reparo. Como já sabemos qual é o problema, vamos selecionar o terceiro método. Veja a figura abaixo, para esclarecimentos.

Selecionando o método de reparo

Na tela seguinte, você seleciona a opção "Instalar Novo Carregador de Inicialização". O sistema irá detectar as partições por você e depois mostrará outra tela, já com algumas configurações. Clique na aba "Instalação do carregador de inicialização", para fazer-mos mais uma coisa. Verifique a figura abaixo.

Configurando um novo menu de inicialização para o GRUB

Por vias das dúvidas, selecione também a opção "Inicializar da MBR (Master Boot Record)"!

Quando terminar, clique em Ok. Será exibida uma mensagem de que a operação foi realizada com sucesso. Veja a figura a seguir.

Operação realizada com sucesso!


Para prosseguir, aperte o botão RESET! Isso mesmo: RESET!

Após alguns instantes, você verá o novo menu do Grub, como mostrado na figura abaixo.

GRUB recuperado!


Este método é eficaz. Mas você deve ter percebido que as coisas não voltaram a ser como antes. Em primeiro lugar, a tela "bonitinha" de splash já não aparece mais e o boot é feito no modo verbose, ou seja, você vê "coisas" acontecendo na tela.

Tecnicamente não há nada de errado com o novo menu. O mecanismo de recuperação criou um novo arquivo menu.lst, contendo instruções simplificadas para o boot. Mas, como estamos falando de Linux, pode ter certeza ele fez a "gentileza" de fazer um backup do menu.lst original. Sabendo disto, podemos recuperar o menu original do GRUB!


Recuperando o menu original do GRUB

Faça login no openSUSE e abra um terminal. Feito isto, digite

ls -l /boot/grub

Será mostrada uma listagem parecida com a da figura abaixo.

Listagem da pasta /boot/grub/


Como podemos ver na figura acima, o mecanismo de recuperação criou um novo arquivo menu.lst, mas fez uma cópia do antigo, com o nome menu.lst.old. Apenas para confirmar, vamos dar uma olhada em seu conteúdo. Digite agora o seguinte comando:

sudo cat /boot/grub/menu.lst.old

O conteúdo de menu.lst.old será exibido. Você verá algo parecido com o mostrado na figura abaixo.

menu.lst.old -- o menu.lst original!

Hmmm, interessante, não?!

Finalmente, para recuperar o menu.lst original, primeiro devemos fazer uma cópia do atual (habitue-se a fazer cópias de coisas que você vai alterar), para depois recuperar o original. Execute agora os dois seguintes comandos:

sudo mv /boot/grub/menu.lst /boot/grub/menu.lst.new
sudo cp /boot/grub/menu.lst.old /boot/grub/menu.lst

Pronto! Reinicie o computador, para ver como as coisas voltaram a ser como eram antes.


Modo "manual"

Este modo de recuperação é, certamente, o mais eficiente. Embora os inciantes no Linux fiquem geralmente "apavorados" em lidar com a linha de comando, se quiserem ter um futuro no Linux, é melhor habituarem-se a isto.

Neste método o GRUB é recuperado fazendo ao mesmo tempo a recuperação do menu original do GRUB! Vamos lá, então...
 
Coloque o DVD de instalação do openSUSE na unidade e reinicie o computador, para dar boot pelo DVD. Quando parar na tela inicial, mude o idioma para "Português do Brasil" e selecione a resolução de sua preferência. Após isto, selecione a opção "Sistema de recuperação".

Chegará o momento de fazer login e você simplesmente digita root e aperta Enter.

Onde está meu Linux?

Para que possamos prosseguir com este método, é preciso descobrir em qual disco o Linux foi instalado e também saber qual é a partição de boot. Para isto, vamos usar o fdisk.

Identificação dos HD

Se você tem apenas um HD, ele certamente será identificado por hda ou sda. Os HD do tipo IDE (ou PATA) são geralmente identificados por hd e os HD SATA ou SCSI são identificados por sd.

O "truque" é tentar iniciar de um jeito. Se não der certo, tentamos do outro!

Descobrindo onde está o Linux usando o fdisk

Chamamos o fdisk com o seguinte comando:

fdisk /dev/hda

Se ele responder com  um "Unable to open /dev/hda", você usa então

fdisk /dev/sda


Seja como for, uma vez dentro do fdisk, você digita o comando p, para listar as partições. Veja na figura a seguir toda a sequência de comandos abordados até aqui.

As partições de sda

Observe na figura acima as partições do disco sda. Observe mais atentamente algumas coisas:

1) A partição onde o Windows foi instalado é a /dev/sda4. Deduzimos isto por causa do sistema de arquivos NTFS;
2) A partição /dev/sda1 é a partição de swap do Linux;
3) Qual é a partição de boot do Linux, /dev/sda2 ou /dev/sda3?

Com a primeira observação, temos informações suficientes para mais tarde adicionar o Windows 7 no menu do GRUB!

Com relação a qual partição é a de boot, geralmente ela é a que vem depois da partição de swap! Em caso de dúvida, o tamanho da partição é o tira-teima. O openSUSE cria a partição home separa da partição de boot. E geralmente, também, ela é maior que a partição de boot. Então podemos deduzir que a partição de boot do openSUSE é a /dev/sda2!

Montando provisoriamente a partição de boot

Agora que sabemos qual o disco e a partição de boot do Linux, vamos preparar o caminho para restaurar o GRUB. Em primeiro lugar, vamos montar a partição. Digite o seguinte comando:

mount /dev/sda2 /mnt

Agora para facilitar os próximos procedimentos, mude a raiz do sistema para a partição montada, usando os seguintes comandos:

mount -o bind /proc /mnt/proc
mount -o bind /sys /mnt/sys
mount -o bind /dev /mnt/dev

chroot /mnt

Fazendo isto, a partição montada dentro de /mnt passa a ser mais facilmente referenciada, usando /boot/grub no lugar de /mnt/boot/grub, por exemplo!

Recuperando o menu do GRUB

Tudo o que precisamos fazer agora, para restaurar o GRUB, é o seguinte:

cd /boot/grub
grub-install

Só isto!

Algumas linhas irão surgir na tela e, no final, você poderá ver a mensagem: "...suceeded"

Reinciando o computador


Finalmente, reinicie o computador, para ver tudo normal de novo. Pode apertar o botão RESET ou digitar mais educadamente o comando

shutdown -r now

THE END





Comentem, critiquem, fiquem à vontade!




.