Sistema de boot, níveis de execução e shutdown

Este artigo trata do sistema de boot, níveis de execução e shutdown. Nele você encontrará as seguintes informações: gerenciadores de boot, enviando parâmetros para os módulos do kernel, mensagens de boot, níveis de execução, processo init, reinicialização e desligamento seguro, corrigindo problemas no processo de boot. Espero que ajude a comunidade. Obrigado!

[ Hits: 70.975 ]

Por: Cristian Alexandre Castaldi em 27/06/2006


Corrigindo problemas no processo de boot



Como nem tudo é um mar de rosas, é necessário que se entenda bem o processo de boot para assim podermos corrigir bem mais facilmente qualquer tipo de problema. Geralmente, podem ocorrer três tipos de problemas durante o processo de boot:
  • LILO com dados corrompidos;
  • Novas configurações de módulos e parâmetros do kernel;
  • Sistema de arquivos corrompidos.

Erros do LILO


As mensagens de erro do LILO podem ser oriundas de má instalação/configuração e quando o LILO carrega o boot do sistema. Os erros de instalação geralmente são óbvios e geram informações suficientes para corrigir o problema.

Já as informações de erros de boot não são mostradas como as de instalação/configuração. Quando o LILO é carregado ele mostra uma letra para cada fase. Usando estas informações podemos minimizar este tipo de problema.
  • <NADA> - Nenhuma parte do LILO foi carregada.
  • L<Código de Erro> - Primeiro estágio de boot carregado, porém erros encontrados durante o carregamento do segundo estágio. Veja a tabela de código de erros.
  • LI - Primeiro estágio de boot carregado e pronto para carregar o segundo, porém o sistema falha ao executar essa tarefa. Motivo: Configurações de geometria dos discos rígidos em desacordo ou o arquivo /boot.boot.b foi alterado sem executar o map installer.
  • LIL - O segundo estágio de boot é carregado, porém o descritor da tabela de partições para o arquivo /boot/map não é carregado. Motivo: Falhas de disco ou configurações de geometria dos discos rígidos em desacordo.
  • LIL? - O segundo estágio de boot é carregado, porém em um endereço incorreto. Motivo: Configurações de geometria dos discos rígidos em desacordo ou o arquivo /boot/boot.b foi alterado sem executar o map installer.
  • LIL- - O descritor da tabela de partições corrompido.Motivo:Configurações de geometria de um ou outros discos rígidos em desacordo com a tabela de partições ou o arquivo /boot/map foi alterado sem executar o map installer.
  • LILO - O LILO é carregado normalmente.

Códigos de erro

  • 0x00 - Erro interno. Motivo: Dados corrompidos na instalação do LILO ou o sistema tenta acessar um disco com mais de 1024 cilindros com o LILO configurado com a opção linear. Consulte a man do lilo.conf.
  • 0x01 - Comando ilegal. Motivo: Disco não suportado pela BIOS.
  • 0x02 - Endereço não encontrado. Motivo: Erro de mídia, reinicie o sistema.
  • 0x03 - Disco com proteção de escrita.
  • 0x04 - Setor não encontrado. Motivo: Geometria de disco inválida.
  • 0x06 - Mudança de linha ativa. Motivo: Este é um erro passageiro, reinicie o sistema.
  • 0x07 - Inicialização inválida. Motivo: A BIOS falha ao iniciar o controlador de discos.
  • 0x08 - DMA overrun. Motivo: Erros de DMA, reinicie o sistema.
  • 0x09 - O DMA atravessa a barreira do 64K. Motivo: Geometria de disco inválida. Remova a opção compact do arquivo lilo.conf.
  • 0x0C - Mídia inválida. Motivo: Erro de mídia.
  • 0x10 - Erro de CRC. Motivo: Problemas na Mídia, mova os arquivos de boot para outra localização para corrigir este problema.
  • 0x11 - ECC correction successful. Motivo: Um erro ocorre na leitura dos dados.
  • 0x20 - Erro de controle
  • 0x40 - Falha na inicialização do disco. Motivo: Disco corrompido.
  • 0x80 - Disk timeout. Motivo: Disco corrompido ou o disco não está girando.
  • 0xBB - Erro de BIOS. Motivo: O problema persiste depois de uma reinicialização, remova a opção compact do lilo.conf. Se o erro persistir analise as opções lba32 e linear.

Bootando o sistema como Monousuário (Single-user)


Às vezes por inconsistência do sistema ou por causa de um driver corrompido é necessário acessar o sistema como monousuário para fazer as devidas correções no sistema. Para acessar o sistema como single user, basta apenas digitar linux single no prompt do LILO. Como dito anteriormente nesse nível de execução somente o necessário é startado. Observe:

boot: linux S, s ou single

Criando discos de boot e de reparo


Às vezes nos deparamos com problemas no boot do sistema por causa de arquivos corrompidos, má configuração de gerenciadores de boot, instalação de um novo kernel etc. Nesses casos aparecem duas ferramentas simples e importantes para qualquer Administrador Linux, o disco de boot e o disco reparo. Estes discos podem garantir a disponibilidade do sistema em casos de emergência. Nunca pense que esse tipo de problema não irá acontecer com você então para a casa não cair à receita é simples. Observe:

Para criar um disco de boot do Debian faça:

# mkboot

Para criar um disco de boot no Red Hat faça:

# mkbootdsk --device /dev/fd0 --noprompt --verbose

Agora vamos criar um disco de recuperação de MBR no LILO, pois na MBR estão armazenadas informações sobre as partições dos discos como partição inicializável, se são primárias ou estendidas e tipo de sistema de arquivos utilizado.

# dd if=/dev/sda of=/dev/fd0 bs=512 count=1

Onde:
  • if=arquivo_de_entrada - Lê o arquivo,disco ou partição de entrada.
  • of=arquivo_de_saída - Grava no arquivo, disco ou partição de saída.
  • bs=bytes - Força ibs bytes e obs bytes (consulte man dd)
  • count=blocos - Conta somente à entrada de blocos.

Para restaurá-lo faça:

# dd if=/dev/fd0 of=/dev/sda bs=512 count=1

Vamos fazer uma simulação, tome cuidado, pois se fizer algo de errado pode comprometer o seu sistema. No meu caso estou usando o VMware para emular um ambiente Linux.

1. Apague a partição de boot usando o fdisk, no meu caso bootei o sistema usando um disquete de boot do Windows. Feito isso o seu sistema não bootará mais como antes. Ou seja, você precisará de um disco de boot para iniciar o seu sistema.

A:> fdisk

2. Reinicie o sistema usando o disco de reparação criado anteriormente com o utilitário dd. Lembre-se que ele possui informações das partições do sistema. Para visualizar a tabela de partições digite:

# fdisk -l

3. Para recuperar a tabela de partição digite o comando como citado anteriormente:

# dd if=/dev/fd0 of=/dev/sda bs=512 count=1

4. Reinicie o sistema sem o disco de recuperação, após a inicialização digite novamente "fdisk -l" e observe a tabela de partições. Você verá que a partição apagada foi restaurada. Parabéns.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Gerenciadores de Boot
   3. Enviando parâmetros para os módulos do kernel
   4. Visualizando mensagens de boot e entendendo os níveis de execução e o processo init
   5. Reinicialização e desligamento seguro do sistema
   6. Corrigindo problemas no processo de boot
   7. Bibliografia
Outros artigos deste autor

Instalando e configurando o servidor Samba

Usando partições e sistemas de arquivos

Trabalhando com shell e variáveis de ambiente

Gerenciando quotas de disco

Servidor CVS: Instalando, configurando e gerenciando no Linux

Leitura recomendada

Instalando o Lazarus no Slackware

Apache2 - Instalação e configuração com autenticação

Impressão usando LPRng e KPrinter

Instalando e configurando o Nagios com e sem MySQL

Configuração de Vídeo - SIS530, SIS620 e CIA...

  
Comentários
[1] Comentário enviado por diegotosco em 27/06/2006 - 22:36h

Muito bom artigo, já é um de meus favoritos. Particulamente, gostei da sessão 4. Também concordo com a inclusão da bibliografia utilizada, é de grande ajuda.

Valew

[2] Comentário enviado por PCMasterPB em 28/06/2006 - 09:08h

Faltou só falar mais sobre o GRUB, mas tirando isto tá muito o artigo, parabéns.

[3] Comentário enviado por thelinux em 28/06/2006 - 13:18h

Parabéns! Bom mesmo. Sucesso a você.

[4] Comentário enviado por math em 28/08/2006 - 08:01h

Parabéns pelo artigo

[5] Comentário enviado por demoreaux em 12/01/2007 - 08:29h

Muito bom o artigo

[6] Comentário enviado por willian.amaral em 08/09/2008 - 08:56h

Olá pessoal,
Sou novo no slack e estou apanhando um pouco..rsrs
Bem ... preciso passar o parametro irqpoll para o módulo do kernel (porque existe conflito de interrupção entre duas placas de rede, 3com e realtek).
Toda vez que ligo o pc preciso passar esse parametro na tela do lilo. Como faço pra isso ficar automaticamente? como escrevo a linha no arquivo modules do etc?
Obriogado.....

[7] Comentário enviado por arjolafe em 11/09/2008 - 17:26h

O artigo despertou o meu interesse. Tenho uma maquina que não da boot pelo pendrive. Gostaria que o autor ou quem possua um, disponibilizasse pelo site uma imagem de um disquete que passe o boot para o pendrive.
Tenho certeza que estaria realizando o sonha de milhares de usuarios como eu.
saudações


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts