Estudo Linux 003: Arquivos de Configuração do GRUB

Essa é uma imagem do Menu do Grub que aparece se segurarmos a tecla SHIFT ao ligarmos o computador. Também podemos editar os arquivos de configuração do grub para que essa tela sempre apareça, sem a necessidade de segurar Shift. Bom posto essa imagem apenas para termos uma noção do que é o menu do Grub  e assim podermos falar dos seus arquivos.

 

Abaixo começamos a falar sobre os arquivos relacionados com o GRUB:

/boot/grub2/grub.cfg

Esse arquivo tem as configurações para o Menu do GRUB.

Esse arquivo é gerado automaticamente pelo comando “grub2-mkconfig -o /boot/grub2/grub.cfg” e não deve ser editado.

 

/etc/default/grub

Muitas opções  gerais do GRUB residem aqui, como, por exemplo, o tempo em que o menu do Grub é exibido, qual é o sistema operacional padrão para ser iniciado.

Sempre que alterar esse arquivo execute o comando abaixo para aplicar as alterações:

grub2-mkconfig -o /boot/grub2/grub.cfg

Seguem algumas opções desse arquivo:

  • GRUB_DEFAULT: Pode conter como valores números ou “saved” ou ainda um dos títulos. Os números começam de zero. Então 0 é o primeiro, 1 o segundo, 2 terceiro…. Exemplos:
    GRUB_DEFAULT=2 inicia o segundo item do Menu do GRUB. No caso da imagem acima o Porteus seria iniciado.
    GRUB_DEFAULT=0 na imagem acima, inicia o ubuntu.
    GRUB_DEFAULT=”Porteus” inicia o item escrito Porteus.
  • GRUB_TIMEOUT: Tempo em segundos que o Menu do GRUB ficará visível. Se nenhuma ação for feita ele iniciará o Sistema que está como padrão. Exemplo: GRUB_TIMEOUT=5 o Menu ficará visível por 5 segundos.
  • GRUB_BACKGROUND: Aplica uma imagem de fundo para GRUB ao invés da tela preta. A imagem tem que ser do tipo .png, .tga, .jpg, ou .jpeg
  • GRUB_DISABLE_OS_PROBER: Pode ter o valor “true” ou “false”. Se false for usado não será mais feita busca automática por outros sistemas operacionais.

Há muitas outras opções além dessas. Verifique no site gnu.org

Scripts Dentro da Pasta   /etc/grub.d

Esses são os scripts dentro da pasta /etc/grub.d/

elder@ubuntu:~$ ls /etc/grub.d/
00_header        10_linux    20_linux_xen  30_uefi-firmware  41_custom
05_debian_theme  10_porteus  30_os-prober  40_custom   

Esses scripts são lidos quando executamos o comando
grub2-mkconfig -o /boot/grub2/grub.cfg

O conteúdo dentro desses scripts são incorporados dentro do arqui o “/boot/grub2/grub.cfg“.

O número na no início de cada nome define a ordem de execução. Por exemplo, 00_header é o primeiro a ser executado, 05_debian_theme é o segundo script executado e assim por diante.

Como são scripts, todos esses arquivos devem ter a permissão de execução para serem executados. O “x” é o símbolo que representa o arquivo é executável. Realcei de vermelho abaixo todos eles.

elder@ubuntu:~$ ls -l /etc/grub.d/
total 80
-rwxr-xr-x 1 root root 10046 fev  7  2019 00_header
-rwxr-xr-x 1 root root  6258 fev  4  2019 05_debian_theme
-rwxr-xr-x 1 root root 12693 fev  7  2019 10_linux
-rwxr-xr-x 1 root root   143 dez  4 09:32 10_porteus
-rwxr-xr-x 1 root root 11298 fev  7  2019 20_linux_xen
-rwxr-xr-x 1 root root 12059 fev  7  2019 30_os-prober
-rwxr-xr-x 1 root root  1418 fev  7  2019 30_uefi-firmware
-rwxr-xr-x 1 root root   214 dez  7 13:46 40_custom
-rwxr-xr-x 1 root root   216 fev  7  2019 41_custom

Não é o foco aqui, mas apenas como complemento, além do x para execução: r significa leitura, w escrita.

Se tirarmos a permissão de execução de um arquivo ele não será executado. Parece óbvio? sim, mas fica a dica quando estiver fazendo testes não precisa excluir o arquivo de dentro da pasta, basta executar “chmod -x” para tirar ou “chmod +x” para colocar permissão de execução; como faço abaixo com o arquivo 10_porteus:

elder@ubuntu:~$ sudo chmod -x  /etc/grub.d/10_porteus 
elder@ubuntu:~$ ls -l /etc/grub.d/
total 80
-rwxr-xr-x 1 root root 10046 fev  7  2019 00_header
-rwxr-xr-x 1 root root  6258 fev  4  2019 05_debian_theme
-rwxr-xr-x 1 root root 12693 fev  7  2019 10_linux
-rw-r--r-- 1 root root   143 dez  4 09:32 10_porteus
-rwxr-xr-x 1 root root 11298 fev  7  2019 20_linux_xen
-rwxr-xr-x 1 root root 12059 fev  7  2019 30_os-prober
-rwxr-xr-x 1 root root  1418 fev  7  2019 30_uefi-firmware
-rwxr-xr-x 1 root root   214 dez  7 13:46 40_custom
-rwxr-xr-x 1 root root   216 fev  7  2019 41_custom

acima desativei o arquivo. O traço(-) significa ausência. Vamos colocar novamente:

elder@ubuntu:~$ sudo chmod +x  /etc/grub.d/10_porteus 
elder@ubuntu:~$ ls -l /etc/grub.d/
total 80
-rwxr-xr-x 1 root root 10046 fev  7  2019 00_header
-rwxr-xr-x 1 root root  6258 fev  4  2019 05_debian_theme
-rwxr-xr-x 1 root root 12693 fev  7  2019 10_linux
-rwxr-xr-x 1 root root   143 dez  4 09:32 10_porteus
-rwxr-xr-x 1 root root 11298 fev  7  2019 20_linux_xen
-rwxr-xr-x 1 root root 12059 fev  7  2019 30_os-prober
-rwxr-xr-x 1 root root  1418 fev  7  2019 30_uefi-firmware
-rwxr-xr-x 1 root root   214 dez  7 13:46 40_custom
-rwxr-xr-x 1 root root   216 fev  7  2019 41_custom

 

Mas Qual a Função de Cada Arquivo da pasta /etc/grub.d?

Tirando o arquivo 10_porteus que eu criei para testes, todos os outros pertencem ao sistema operacional.

  • 00_header: Esse arquivo possui variáveis para localização, configuração de exibição, temas. Ele também importa  preferências guardadas dentro de /etc/default/grub. Geralmente você não precisa editar o arquivo 00_header
  • 10_linux: Identifica o kernel do linux dentro do dispositivo raiz e cria os itens para o menu de entrada do Grub. Lembra da imagem acima do menu do grub que contém Ubuntu e Porteus? Esse arquivo é o responsável e editando esse ele podemos alterar os itens do menu do grub. Na verdade para o Porteus eu criei um arquivo(10_porteus) separado mas poderia acrescentar as linhas necessárias dentro de 10_linux sem precisar ter criado 10_porteus.
  • 30_os-prober: Esse script usa os-prober para buscar outros Sistemas Operacionais(windows, linux…)  e o resultado dessa busca é colocado dentro do Menu do GRUB.
  • 40_custom: Esse arquivo prover um jeito simples de acrescentar entradas personalizadas de boot dentro de grub.cfg. Mas tenha apenas não altere a linha “exec tail -n +3 $0” que fica no início do arquivo.

 

Conclusão

É um pouco entediante ficar apenas lendo sem podermos vermos na prática. Mas é muito importante sabermos a função de cada arquivo para continuarmos nosso estudo sobre Linux.

 

Leitor voraz e um dos administradores do GNU/Linux Brasil no Whatsapp, facebook, youtube e nesse dito site: www.gnulinuxbrasil.com.br

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *