24 novembro 2014

Dicas de como editar o GRUB 2 no Linux. Tudo sobre o Grub 2 no Ubuntu.

 O GRUB 2 é agora o gerenciador de boot do Ubuntu e muitos outros sistemas operacionais. Na inicialização do computador o GRUB 2 apresenta o menu e espera a atuação do usuário dentro do tempo fixado ou transfere automaticamente o controle para o sistema operacional. GRUB 2 é um software Open Source. Ele é descendente do GRUB (GRand Unified Bootloader). Foi completamente reescrito para dar ao usuário flexibilidade e performance significativamente aumentadas.

Hierarquia de arquivos e diretórios

/boot/grub/grub.cfg
É o que mais se assemelha ao /boot/grub/menu.lst do GRUB mas diferentemente desse o grub.cfg não se destina a ser editado. Cada seção é claramente delimitada com “(### BEGIN)” e a referência do arquivo na pasta /etc/grub.d a partir da qual a informação foi gerada. grub.cfg é atualizado executando o comando
sudo update-grub

e é automaticamente modificado quando há uma atualização ou instalação/remoção de kernel.
Por padrão, e sempre que o comando update-grub é executado, este arquivo é feito “somente leitura”. Isto porque a intenção é que o arquivo não seja editado manualmente.
O usuário também verá uma infinidade de arquivos *. mod na pasta /boot/grub . Esses arquivos são da natureza modular do GRUB 2 e são carregados necessariamente pelo GRUB 2.

/etc/default/grub
Esse arquivo pode ser editado e configurado. Detalhes da configuração estão mais adiante em Configurando GRUB 2.

/etc/grub.d/ (diretório)
Os arquivos nessa pasta são lidos durante a execução do comando
Código:
sudo update-grub
e suas instruções são incorporadas ao /boot/grub/grub.cfg.
A colocação dos ítens de menu no grub.cfg é determinada pela ordem em que os arquivos são executados nessa pasta. Arquivos com  numeral no início são executados primeiro começando pelo menor. 10_linux é executado antes de 20_mentest que é executado antes de 40_custon
Entradas personalizadas podem ser criadas no arquivo 40_custom ou num outro recém criado.
Somente arquivos executáveis geram saída para o grub.cfg durante a execução do update-grub.

Os arquivos default nesta pasta são:
- 00_header : suas configurações normalmente são importadas de informações do /etc/default/grub e os usuários não precisam mudar esse arquivo.
- 05_debian_theme : configura splash image, cor do texto, cor de realce e tema. Na ausência de splash image esse arquivo configura um tema monocromático para o menu inicial.
- 10_hurd : não usada.
- 10_linux : localiza kernels no root device para o sistema operacional em uso. Leva essa informação e estabelece os nomes apresentados no menu para estes kernels.
- 20_memtest86+ : procura por /boot/memtest86+.bin e o inclue como opção no menu do GRUB 2. Não há opção para remover essa entrada do menu.Pode ser inibido removendo o executável desse arquivo sudo chmod -x /etc/grub.d/20_memtest86+ e executando depois sudo update-grub.
- 30_os-prober : procura por Linux e outros sistemas operacionais.Resultados são colocados no grub.cfg baseando-se nos scripts desse arquivo. O arquivo é dividido em 4 seções representando os tipos de sistemas operacionais manipulados pelos scripts : Linux, Windows, OSX e Hurd. Variáveis nesse arquivo determinam o formato dos nomes exibidos no /boot/grub/grub.cfg e no menu do GRUB 2. Usuários familiarizados com scripts básico podem alterar essas variáveis e mudar o formato das entradas de menu exibidas. Alternativamente o usuário pode inserir uma entrada no /etc/default/grub a qual desativa esse script.
- 40_custom : Para adicionar entradas de menu personalizado que serão inseridas no grub.cfg depois de update-grub. Mais informações sobre esse arquivo na parte de configuração.

Configuração


Alterações na configuração são normalmente feitas em /etc/default/grub e nos arquivos da pasta /etc/grub.d.

O arquivo /boot/grub/grub.cfg não deve ser editado pelo usuário; mudanças nesse arquivo são feitas pelos scripts de configuração.

Algumas das alterações mais comuns como OS/kernel default, menu timeout podem ser feitas pelo StartUp-Manager.
Arquivo /etc/default/grub

É o principal arquivo de configuração para alterar as configurações padrão.

Após a instalação as seguintes linhas podem ser alteradas pelo usuário :

GRUB_DEFAULT
– Configura a entrada padrão do menu. Entradas podem ser numéricas ou “saved” (última usada)

GRUB_DEFAULT=0
Configura a entrada default pela posição. Como no GRUB a primeira entrada é zero, a segunda 1, etc,

GRUB_DEFAULT=saved
Define a entrada de menu padrão com o que foi selecionado anteriormente (a última seleção).
Se o menu é exibido durante a inicialização, a última entrada selecionada será realçada. Se nenhuma ação for tomada, esta seleção será iniciada no final do tempo limite ou se o menu está oculto.

GRUB_DEFAULT=”xxxx”
Uma entrada de menu exata, incluida entre aspas, também pode ser usada. Neste caso, a localização no menu não importa.
Exemplo: GRUB_DEFAULT=”Ubuntu, Linux 2.6.31-9-generic”

GRUB_TIMEOUT=
Configura o tempo.

GRUB_HIDDEN_TIMEOUT=0
O menu ficará oculto.

# GRUB_HIDDEN_TIMEOUT=0
O menu não será oculto

- GRUB_HIDDEN_TIMEOUT_QUIET=true
true = nenhuma contagem regressiva é exibida. A tela ficará em branco.
false = Um contador será exibido numa tela em branco durante o tempo do GRUB_HIDDEN_TIMEOUT.

#GRUB_GFXMODE=640×480
– descomente essa linha para mudar a resolução. Ela fornece resoluções suportadas pela placa de vídeo do usuário (640×480, 800×600, 1280×1024, etc).
aplica-se apenas a resolução do menu de boot.
Dica: Definindo a mesma resolução do sistema operacional o tempo de inicialização diminuirá ligeiramente.
– embora não seja necessário, o usuário também pode especificar a cor BitDepth anexando-o à configuração da  resolução.
um exemplo seria 1280x1024x24 ou 640x480x32.
– o usuário também pode adicionar várias resoluções. Se o GRUB 2 não pode usar a primeira entrada, ela irá tentar o  próximo ajuste.
As configurações são separadas por uma vírgula. Exemplo: 1280x1024x16, 800x600x24, 640×480.
– se utilizar uma splash image, certifique-se que a configuração da resolução e do tamanho da imagem são compatíveis.
– se estiver usando uma entrada que produz uma mensagem “não encontrado” ao executar update-grub, tente adicionar ou alterar a cor BitDepth.
– se esta linha está comentada (#) ou a resolução não está disponível o GRUB 2 usa a configuração padrão determinada pelo /etc/grub.d/00_header.

- GRUB_DISABLE_LINUX_RECOVERY=true
Adicione ou descomente essa linha se não desejar o “Recovery” mode no menu.
“Recovery mode” para apenas um kernel, fazer uma entrada especial em /etc/grub/40_custom.

 Depois de fazer as mudanças é necessário que atualize o GRUB com o seguinte comando.

sudo update-grub