GRUB 1 no Linux (legacy) [Guia Básico]
Os gerenciadores de boot são programas que carregam o Kernel do Linux e até permitem a escolha de um outro sistema operacional. O principal gerenciador de boot do Linux é o GRUB e existem duas versões. A primeira versão é o Grub 1 no Linux (legacy).
Logo após os testes de hardware realizados pela BIOS, o computador procura no setor de boot da partição ativa ou no Master Boot Record – MBR um pequeno software para iniciar a carga do sistema operacional.
Grand Unified Boot Loader (GRUB – 1)
A maioria das distribuições já adota o GRUB 1 como gerenciador padrão. Ele é flexível, funcional e poderoso, podendo carregar sistemas operacionais como o Windows (9x, ME, NT, 2000 e XP), DOS, Linux, GNU Hurd, *BSD, OS/2 e outros.
O GRUB 1 também permite buscar imagens do Kernel pela rede, por cabo serial, suporta discos rígidos IDE, SATA, PATA e SCSI e tem interface voltada para a linha de comandos ou menus. Suporta sistemas sem discos e terminais remotos.
Como possui inúmeros recursos, será apresentada sua utilização básica, o suficiente para você passar no exame, ficando como sugestão ao leitor procurar se aprofundar mais em suas possibilidades de uso e configuração.
A notação dos dispositivos de disco utilizada pelo GRUB 1 difere um pouco do usual, de forma que o nome dos discos sempre serão “hd”, seguidos da numeração do disco iniciando por zero, seguidos do número da partição, iniciando também do zero.
Veja a tabela comparativa:
Notação de discos no Grub 1
Notação no Linux | Notação no Grub 1 |
/dev/hda | (hd0) |
/dev/hda1 | (hd0,0) |
Notação no Linux | Notação no Grub 1 |
/dev/hda2 | (hd0,1) |
/dev/hdb | (hd1) |
/dev/hdb1 | (hd1,0) |
/dev/hdb2 | (hd1,1) |
/dev/sda | (hd0) |
/dev/sda1 | (hd0,0) |
/dev/sda2 | (hd0,1) |
/dev/sdb | (hd1) |
/dev/sdb1 | (hd1,0) |
/dev/sdb2 | (hd1,1) |
/dev/fd0 | (fd0) |
Não há distinção entre os discos IDE e SCSI. Ambos são referenciados como (hd?) pelo GRUB.
Nativamente o GRUB não suporta EFI em versões anteriores ao kernel 3.30.
O GRUB possui um arquivo de configuração chamado /boot/grub/menu.lst. Algumas distribuições como Fedora, RedHat e Gentoo preferem utilizar grub.conf ao invés de menu.lst.
Este arquivo é dividido em parâmetros Globais, que afetam o GRUB e parâmetros que só têm efeito para as imagens do sistema que será carregado.
Parâmetros do grub.conf
Vejamos os parâmetros globais:
- timeout: Define um tempo (em segundos) de espera para o prompt ou menu. Se nenhuma intervenção do usuário for feita no boot, o GRUB 1 carrega a imagem padrão;
- default: Define qual será a imagem padrão que será carregada se nenhuma outra for selecionada;
- fallback: Caso ocorra algum erro inesperado e a opção padrão não possa ser carregada, este parâmetro define qual outra imagem deve ser utilizada;
- color: Permite que você escolha as cores usadas no menu de boot;
- password: Permite que você especifique uma senha para qualquer ação que não seja carregar as imagens disponíveis. Por exemplo, acessar a linha de comandos do GRUB 1;
- hiddenmenu: Esta opção faz com que o menu de opções não seja mostrado e que a carga da imagem especificada pela linha “default” seja carregada. O usuário pode requisitar o menu com as opções pressionando a tecla <ESC> antes que o tempo definido em timeout expire.
Parâmetros que afetam apenas as imagens:
- title: Define um texto que será apresentado no menu de boot para identificar o sistema;
- root: Determina qual é a partição raiz de uma determinada imagem;
- rootnoverify: Idêntica à opção root, mas não tenta montar a partição raiz. Utilizada para alguns sistemas como o Microsoft Windows;
- kernel: Esta opção informa qual imagem de Kernel vai ser carregada. Alguns parâmetros do Kernel podem ser passados;
- module: Faz com que algum módulo necessário para o boot seja carregado. Lembre-se que estes não são módulos do Kernel (módulos de som, rede, etc.) e sim módulos necessários ao boot de alguns sistemas, como o GNU Hurd;
- lock: Bloqueia a carga da imagem do Kernel por senha. A senha precisa ser especificada com a opção password;
- makeactive: Torna a partição ativa para boot. Este comando está limitado a partições primárias dos discos;
- chainloader: Especifica a localização do gerenciador de boot de outros sistemas operacionais. Alguns sistemas, como o Microsoft Windows, armazenam seu próprio gerenciador de boot no início da partição onde estão instalados.
O GRUB 1 tem muitas opções disponíveis. Fica a sugestão para o leitor ler mais sobre este gerenciador de boot utilizando o comando info grub na linha de comandos do Linux.
O Utilitário grub-install
Uso:
# /sbin/grub-install opções partição
Este comando instala o GRUB 1 como gerenciador de boot no MBR do primeiro disco e cria o diretório /boot/grub. Este diretório contém os arquivos necessários para o seu funcionamento.
As opções mais frequentes são:
- — root-directory=diretório: Esta opção instala o GRUB 1 em diretório que não seja o raiz. É útil para instalá-lo em outras partições;
- — recheck: Esta opção checa novamente o mapa de dispositivos em /boot/grub/device.map. É útil quando um novo disco for acrescentado ou retirado do sistema.
Conheça o Menu.lst
Veja abaixo um arquivo exemplo do menu.lst:
timeout 30
default 0
fallback 1
color light-cyan/black white/blue
password minha-senha-secreta
title GNU/Hurd
root (hd0,0)
kernel /boot/gnumach.gz root=hd0s1
module /boot/serverboot.gz
title Linux 3.14.16
lock
root (hd0,0)
kernel (hd0,0)/boot/vmlinuz-3.14.16 vga=6 mem=512M radisk=0
title FreeBSD 3.4
root (hd0,2,a)
kernel /boot/loader
title Windows 9x, ME, NT, 2000, XP
unhide (hd0,0)
rootnoverify (hd0,0)
chainloader +1
makeactive
root = (hd0,0)
setup = (hd0)
O GRUB 1 também possui um shell especial que aceita todas as opções do arquivo de configuração menu.lst e muitas outras. É uma poderosa ferramenta de configuração do gerenciador de boot.
Sem dúvida o código livre está sendo o grande rival das empresas que produzem software “proprietário”.
Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.