Informações, Novidades e Empregos em Tecnologia e Concursos Públicos em TI

Gerenciadores de Boot em Sistemas Operacionais

Gerenciadores de Boot

 É um sistema de multiboot, com ele é possível selecionar qual sistema operacional você deseja iniciar, caso você tenha mais de um Sistema Operacional (Windows e Linux) instalado no computador. Podemos destacar o GRUB, LILO e o gerenciador do Windows.

GRUB

Inicializando usando o GRUB

 GNU GRUB é um poderoso gerenciador de inicialização, que pode carregar uma grande variedade de sistemas operacionais livres, assim como sistemas operacionais proprietários. GRUB é projetado para lidar com a complexidade de inicialização de um computador pessoal.

 Uma das características importantes do GRUB é a flexibilidade; GRUB entende sistemas de arquivos e formatos executáveis ​​kernel, de modo que você pode carregar um sistema operacional arbitrário do jeito que você gosta, sem gravar a posição física de seu kernel no disco. Assim, enquanto os “carregadores” tradicionais mantém uma tabela de blocos no disco rígido (como o LILO), o GRUB pode rastrear o sistema de arquivos.

O processo de carregamento do sistema operacional no GRUB é feito por estágios como podemos observar a seguir:

1) O BIOS busca um dispositivo que faça o carregamento do SO (normalmente um disco rígido) e move o controle para o MBR ou Master Boot Record. O MBR é situado nos 512 primeiros bytes do disco.

2) O MBR contém o estágio 1 do GRUB. Dado o pequeno tamanho deste estágio, ele apenas carrega o próximo estágio do GRUB (que pode residir em qualquer locação do disco). O estágio 1 pode carregar o estágio 1.5 ou o estágio 2 diretamente.

3) O estágio 1.5 é localizado nos 30 primeiros Kb do disco imediatamente após o MBR. O estágio 1.5 carrega o estágio 2.

4) O estágio 2 recebe o controle, e mostra ao usuário o menu com as opções de sistemas operacionais instalados no sistema.

5) O GRUB carrega na memória o núcleo do SO escolhido (ou o padrão) e passa o controle a este núcleo. (Para sistemas operacionais não suportados totalmente pelo GRUB, o controle é passado para outro carregador que continua o processo até carregar o núcleo em memória)

 O GRUB pode ser a versão 1 (GRUB legacy) ou a versão 2:

a) GRUB 1 (GRUB legacy)

  • Sistemas de arquivos suportados: ext2/ext3, JFS da IBM, Iso9660, sistema de arquivos do MINIX, NTFS, ReiserFS, SGI’s XFS, UFS/UFS2., VFAT, assim como os sistemas FAT16, FAT32, NTFS utilizado pelo Microsoft Windows, sistema nativo VSTa.

  • O arquivo de configuração do GRUB geralmente está fixo em um lugar, que é o /boot/grub/menu.lst

  • A seguir, um exemplo de configuração para dois sistemas operacionais: Linux e Windows:

# Exemplo para dois sistemas Operacionais: Linux e Windows!
#
default=0
timeout=5
splashimage=(hd0,1)/boot/grub/splash.xpm.gz
# Partição Linux
title Fedora Core
root (hd0,1)
kernel /boot/vmlinuz-2.6.13-1.1532_FC4 ro root=/dev/hda1 vga=791
initrd /boot/initrd-2.6.13-1.1532_FC4.img
# Partição Windows
title Windows
rootnoverify (hd1,0)
chainloader +1

b) erros do GRUB

O GRUB exibe suas mensagens de erro de duas formas diferentes, uma para o primeiro estágio e outra para o segundo estágio de carregamento. Quando ocorre um erro no primeiro estágio o GRUB exibe uma mensagem compreensiva e para, o usuário deve então pressionar: <CTRL>+<ALT>+<DEL> para reiniciar .

Segue abaixo uma lista com os erros do estágio1:

- Hard Disk Error

O estágio 2 e o 1.5 estão sendo lidos do disco, e a tentativa de determinar o tamanho e os parâmetros do disco falharam.

– Floppy Error

O estágio 2 e o 1.5 estão sendo lidos de um disquete, e a tentativa de determinar o tamanho e os parâmetros do disquete falharam.

– Read Error

Ocorreu um erro na leitura do disco enquanto tentava ler o estágio 2 ou 1.5

– Geom Error

O local do estágio 2 ou 1.5 não está numa porção do disco suportado diretamente pelas chamadas do BIOS. Isso ocorre porque os parâmetros do BIOS foram mudados ou o disco foi removido para uma outra máquina ou para uma outra controladora, ou o GRUB não foi instalado usando a si mesmo (se isto acontecer, a versão do estágio 2 para esse erro deve ser vista).

A forma como o estágio 2 trata os seus erros é abortando a operação em questão, mostrando uma mensagem de erro na tela, e, se possível, continua a execução. A lista com os erros do segundo estágio pode ser encontrada em:

http://www.gnu.org/software/grub/manual/grub.html#Stage2-errors

GRUB 2

Menu de exemplo do 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. O GRUB anterior passa a ser referido como GRUB legacy.

a) Melhorias do GRUB 2

As melhorias em relação ao GRUB incluem :

– apoio de scripts
– módulo de carregamento dinâmico
– modo de recuperação
– menus personalizados
– temas
– suporte ao menu gráfico
– imagens iso de Live CD de boot diretamente do disco rígido
– nova estrutura de arquivos de configuração
– suporte universal a UUIDs (não apenas o Ubuntu)

b) Hierarquia de arquivos e diretórios

1-Arquivo /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.

2-Arquivo /etc/default/grub

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

3-Diretório /etc/grub.d/

Os arquivos nessa pasta são lidos durante a execução do comando sudo update-grub e suas instruções são incorporadas ao/boot/grub/grub.cfg.

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.

– 10_hurd : não usada.
– 10_linux : localiza os kernels para o sistema operacional em uso. Leva essa informação e estabelece os nomes apresentados no menu para estes kernels.
– 20_linux_xen : estabelece opção de maquinas em sistema de virtualização xen
– 20_memtest86+ : procura por /boot/memtest86+.bin e o inclue como opção no menu do GRUB 2.

– 30_os-prober : procura por Linux e outros sistemas operacionais. Resultados são colocados no grub.cfg baseando-se nos scripts desse arquivo.

– 40_custom : para adicionar entradas de menu personalizado que serão inseridas no grub.cfg depois de update-grub.

c) Configuração do GRUB 2

Alterações na configuração são normalmente feitas em /etc/defaul/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.

Arquivo /etc/default/grub

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

– 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).

– GRUB_DEFAULT=”xxxx”
Neste caso, a localização no menu não importa.
Exemplo: GRUB_DEFAULT=”Ubuntu, Linux 2.6.31-9-generic”

– GRUB_TIMEOUT= 5
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.

– #GRUB_DISABLE_LINUX_RECOVERY=true
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.

Diretório /etc/grub.d/

d) mensagens de erros comuns

– Unknown filesystem”(Sistema de arquivos não reconhecido)

– error: no such partition.
grub rescue>

LILO

Tela de boot do LILO

O nome LILO corresponde a Linux Loader, ou seja, carregador do Linux. Isto significa que o LILO gerencia o processo de inicialização da máquina, permitindo que o usuário escolha qual o sistema operacional que será executado (se houver mais de um sistema operacional residente na máquina). O LILO mantém uma tabela de blocos no disco rígido, portanto não reconhece o sistema de arquivos diferentemente do GRUB que pode rastrear o sistema de arquivos.

O LILO é configurado através de instruções existentes no arquivo/etc/lilo.conf. Um exemplo de um arquivo lilo.conf:
# Arquivo de configuração do LILO 
### Seção dos parâmetros globais do LILO 
### boot=/dev/hda vga=normal 
message=/boot/mensagem.txt prompt timeout=150
### Seção de partições do LILO 
### # Partição Linux image=/boot/vmlinuz-2.2.17 root=/dev/hda1 label=Linux read-only 
# Partição Windows
 other=/dev/hdb1 label=Windows table=/dev/hdb 
Como você pôde ver no exemplo acima, a configuração do LILO é divida em duas partes: configuração global e configuração de partições.

a) Seção de configuração Global

  • boot=/dev/hda

Aqui indica onde o LILO irá ser instalado. A maioria dos casos é ele ser instalado na MBR (Master Boot Record), que é o /dev/hda, e deve funcionar perfeitamente (a não ser que seu sistema tenha frescura). Mas se você não quiser instalar na Master Boot Record e quiser por exemplo, instalar em um disquete, substitua /dev/hda por /dev/fd0.

  • vga=normal

Esta opção indica o modo VGA que o console do Linux irá rodar. Há várias opções que deixam a tela maior, as letras pequenininhas, ou letras maiores com tela menor, o que seja. Se você colocar ‘vga=ask’, antes de bootar no sistema, ele vai te dar uma série de opções para você escolher. Cada opção irá deixar o tamanho do console diferente… Experimente! Outro jeito de mudar o tamanho do console é usando o programa SVGATextMode, que é muito melhor pois você não precisa reiniciar a máquina para escolher no LILO, qual resolução você quer.

  • message=/boot/mensagem.txt

Esta opção é combinada com a opção ‘prompt’. Antes do LILO dar o prompt, ele irá mostrar na tela o conteúdo do arquivo /boot/mensagem.txt. Você pode colocar um desenho ou qualquer coisa que quiser para ele mostrar durante o LILO. Um menu com as opções é o que a maioria das pessoas costuma colocar.

  • prompt

Indica que o LILO vai automaticamente para o prompt. Você pode não colocar esta opção, então o LILO simplesmente vai ficar esperando você apertar CTRL, ALT ou SHIFT para ativar o prompt e você poder digitar algo nele. Esta opção tem muito haver também com as outras opções ‘timeout’ e ‘delay’.

  • timeout=150

O tempo de duração que você tem para digitar algo no prompt. Se este tempo passar o LILO automaticamente vai bootar no sistema padrão. O tempo é determinado em décimos de segundos, ou seja, 150 corresponde a 15 segundos (tire/acrescente o zero do final).

  • delay=150

(Não usado no exemplo). Funciona da mesma maneira que o time out, só que ele serve para quando não se coloca o parâmetro time out. Ele vai esperar até você apertar o CTRL, ALT ou SHIFT para ativar o prompt, e se não digitar isso, boota no sistema padrão automaticamente.

  • password=1234

(Não usado no exemplo). Esta opção define uma senha para o usuário digitar toda vez que for bootar um sistema pelo LILO. Não existe forma de criptografar esta senha, então qualquer um que tiver acesso ao seu sistema poderá ver, se o arquivo /etc/lilo.conf tiver com permissão de leitura para todo mundo. Aqui a senha está como ‘1234’, mude para uma senha decente se quiser que aquele teu irmão chato não use seu computador.

  • single-key

(Não usado no exemplo). Esta opção é bem interessante. Ele permite que o usuário ao invés de digitar o nome do sistema no prompt e dar enter para bootar no sistema, possa simplesmente apertar uma tecla e pronto, o sistema boota. É muito mais prático, e é combinado com a opção ‘alias’ na configuração de partições.

b) Seção de configuração de partições

Aqui você vai colocar as partições/sistemas que vai querer bootar. Cada conjunto de linhas corresponde à um sistema diferente (veja no exemplo anterior, para um exemplo disso :)). Vejamos aqui os parâmetros para a partição Linux que definimos:

  • image=/boot/vmlinuz-2.2.17

Aqui você vai indicar onde está a imagem do kernel do Linux que você compilou ou que já vem na sua distribuição. Geralmente as imagens estão no diretório /boot (ou também na raiz), com o nome vmlinuz, ou vmlinux. No exemplo acima eu indiquei para ele usar o arquivo /boot/vmlinuz-2.2.17, que aqui é o kernel 2.2.17 que eu compilei.

  • root=/dev/hda1

Onde se encontra o seu Linux, aqui você só precisa indicar em que partição está localizado o seu sistema.

  • label=Linux

Aqui é o ‘nome’ que você vai dar para esta configuração de partição. No caso aqui é Linux, então quando aparecer o prompt do LILO (LILO boot: ), eu digito Linux, dou enter e o LILO boota o sistema. Também existe a opção ‘alias’, que é o equivalente só que para a opção ‘single-key’, descrita nas opções globais.

  • read-only

Partições Linux têm sempre de ter esta linha, pois ela indica que o LILO tem de montar a partição como somente leitura. Para que isso? Bem, no boot o Linux verifica seu sistema de arquivos, e para ele verificar, tem de estar somente-leitura. Depois que ele verifica, ele remonta a partição para leitura-escrita.

  • alias=1

(Não usado no exemplo). Esta opção é combinada com a opção global single-key. Ao invés de eu ter que digitar no prompt do LILO a palavra definida na opção ‘label’, eu apenas aperto uma tecla e ele boota. No exemplo que usei aqui a tecla para bootar a partição é o número 1.

Estas foram as opções para uma partição Linux. Se você quiser colocar uma Windows (como no exemplo que usei anteriormente), você só tem que substituir algumas coisinhas, como veremos a seguir:

  • other=/dev/hdb1

Equivale á opção ‘image’ da partição Linux. Aqui você indica em que partição seu Windows está instalado.

  • label=Windows

Mesma coisa que na partição Linux, só que aqui eu coloquei a palavra ‘Windows’ ao invés de ‘Linux’. Você pode colocar o nome que quiser à vontade.

  • table=/dev/hdb

O HD em que se encontra a partição.

Assim você poderá ir montando um arquivo de configuração com o quanto de sistemas quiser.

Nota: O sistema padrão é definido pela ordem que você coloca os sistemas na configuração de partições.

c) Mensagens de erro do LILO

Quando o LILO é carregado, ele mostra a palavra “LILO”. Cada letra é impressa na tela depois ou antes de alguma ação específica. Se o LILO falhar em alguma ação, as letras impressas na tela podem ser usadas para identificar o problema. Preste atenção que alguns digitos hexa podem aparecer depois do primeiro “L” se algum problema transitório ocorrer no disco rígido. A não ser que o LILO pare neste ponto, gerando uma corrente de erros sem fim, os digitos hexa não indicam um problema sério.

  • (nada): Nenhuma parte do LILO foi carregada. Ou o LILO não está instalado ou a partição em que o setor de boot está alocado nao está ativa.
  • L: O primeiro estágio do carregador de boot foi carregada e inicializada, mas não pode carregar o segundo estágio. O código de erro de dois digitos indica o tipo do problema. Isto geralmente indica um erro na mídia(o HD no caso) ou os parametros do HD não foram colocados corretamente.
  • LI: O primeiro estágio do carregador de boot pode carregar o segundo estágio, mas não pode executá-lo. Isto pode ser causado pelos parâmetros do HD não terem sido colocados corretamente ou por mover /boot/boot.b sem executar o instalador de map.
  • LIL: O segundo estágio do carregador de boot foi inicializado, mas não pode carregar a tabela de descrição do arquivo map. Isto geralmente é causado por um erro de mídia(HD) ou pelos parâmetros do HD não terem sido colocados corretamente.
  • LIL?: O segundo estágio do carregador de boot foi inicializado em um endereco incorreto. Isto pode ser causado pelos parâmetros do HD não terem sido colocados corretamente ou por mover /boot/boot.b sem executar o instalador de map.
  • LIL-: A tabela de descrição está corrompida. Isto pode ser causado pelos parâmetros do HD não terem sido colocados corretamente ou por mover /boot/boot.b sem executar o instalador de map.
  • LILO: Todas as partes do LILO foram carregadas com sucesso.

Windows 8

Desde o Windows XP, instalar dois Windows no mesmo computador,o que chamamos de “dual-boot”,se tornou um processo fácil e transparente. Basicamente, basta instalar o sistema mais velho primeiro e o mais novo por último e o dual-boot é criado automaticamente.

No entanto, efetuar configurações posteriores não era muito intuitivo. O Windows 8 traz algumas novidades nessa área, que prometem facilitar não somente a utilização do dual-boot, mas também suas configurações mais básicas.

Ao instalar o Windows 8 em dual-boot com uma versão anterior do Windows, como, por exemplo, o Windows 7, a tela do gerenciador de boot passa a ser exibida a cada inicialização para que o usuário possa escolher qual Windows deseja utilizar.

O gerenciador de boot foi totalmente reformulado e agora utiliza uma interface gráfica no estilo Metro para permitir a interação com o usuário através do mouse e, principalmente, de uma tela sensível ao toque, quando disponível.

Fontes

http://www.gnu.org/software/grub/manual/legacy/grub.html

http://pt.wikipedia.org/wiki/GNU_GRUB

http://trainingtecnologia.com.br/grub-2/

http://www.linuxnarede.com.br/artigos/fullnews.php?id=147%5D

http://www.devin.com.br/lilo/

http://www.infowester.com/linuxlilo.php

http://www.samueldiasneto.com/doc/boot.html#erro

http://ubuntuforum-pt.org/index.php?topic=108220.0

http://www.akkiri.com/dicas/grubrescue.php

http://www.ibm.com/developerworks/br/library/l-lpic1-v3-102-2/

http://howto.cnet.com/8301-11310_39-57511894-285/how-to-dual-boot-windows-7-with-windows-8/

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s