domingo, 8 de abril de 2012

101.2 Sistema de BOOT

101 Arquitetura do Sistema

101.2 Sistema de Boot

Bem hoje vou falar um pouco sobre o seguinte contéudo cobrado na primeira prova da LPI-1 segundo o site lpi.org precisamos saber dos seguintes comandos, termos e utilitários:

O contéudo dentro de /var/log/messages
O comando "dmesg"
bootloader
BIOS
kernel
init





Bem vamos do inicio, ao ligar o computador e seu computador passar pelo teste de hardware feito pela BIOS o bootloader vai procurar no disco, claro caso a definição de busca esteja definida para o disco, mais precisamente na MBB.

O que é a MBR?

A MBR é onde fica alocada o gerenciador de boot do sistema e a tabela de particionamento do hd, os primeiros 512 bytes no primeiro setor do HD, Destes 512 bytes 446 bytes são reservados para o setor de boot e o restante fica para a tabela de particionamento.

Para meis detalhes segue de onde tirei o conteúdo:

site - Guia do hardware, escrito pelo Carlos E. Morimoto
http://www.hardware.com.br/termos/mbr
 
Dentro da MBR a BIOS vai procurar pelo bootloader (carregador de boot) para carregar o sistema.
No Linux os mais utilizado atualmente são o GRUB, mas também temos o LILO.

O bootloader carrega arquivos do kernel, nele também é possível passar informações para kernel ao carrega-lo, como:
Informações  sobre memória disponível, cpus, controloador de inicialização, resolução de video, são opções que podemos passar antes do kernel ser carregado.

Algumas opções que podemos passar ao grub, ao entrar em modo de edição na inicialização, você vai inserir estas opções no final da linha:


mem - definição de quanto de memória vai ser disponibilizado para inicialização
Exemplo: mem=512M

maxcups - define quantas cpus vão ser utilizadas
Exemplo: maxcpus=2

timeout - aqui você pode inserir quanto tempo a tela do grub vai ficar disponível para a seleção do usuário, caso não seja selecionada nenhuma, o GRUB inicializa automaticamente a entrada default
Exemplo: timeout 8 (8 segundos de espera)


quiet - Essa opção esconde quase todas as mensagens que são passadas na inicialização do sistema, pode ser inserida a acrescentando no final da linha de edição.

init - Você pode trocar o padrão de inicialização do init, o mesmo deve estar dessa forma "init=/sbin/init" podendo ser editando, mais a frente vamos conhecer um pouco mais sobre os processos do init.

vga -  Aqui você pode alterar a resolução do video para o modo texto, alterando o código do frame-buffer, lembrando que estas alterações não faram efeito na resolução do MODO GRÁFICO.

Exemplo: vga=773 (vai alterar para 1024x768, 8 bits de cor)

As opções são:
    vga=791 : 1024x768, 16 bits de cor.
    vga=790 : 1024x768, 15 bits de cor
    vga=773 : 1024x768, 8 bits de cor
    vga=788 : 800x600, 16 bits de cor
    vga=787 : 800x600, 15 bits de cor
    vga=771 : 800x600, 8 bits de cor
    vga=785 : 640x480, 16 bits
    vga=784 : 640x480, 15 bits
    vga=769 : 640x480, 8 bits.  
       
Temos ainda a opção de montar como somente leitura (r,o - read only) ou rw (read and write) leitura e escrita.

Certo vamos fazer algumas alterações no GRUB, ao iniciar e aparecer a seguinte tela do GRUB: 




Você vai selecionar apartir das setas a linha onde você quer estar fazendo as alteraçãoes, aperte (e) de edição, no caso minha distribuição já me levou a seguinte tela:



 Caso sua distro não leve diretamente a esta tela e apareça uma tela como a que mostra abaixo, você vai selecionar a linha que inicia com "kernel /vmlinuz-versãodoseukernel" e teclar enter novamente para poder editar esta linha.




Já na tela de edição vamos passar alguns parámetros que aprendemos acima:

No meu caso eu adicionei a linha referente a resolução para modo texto (vga=773) e maxcpus=1, no meu caso estou utilizando um Pentium 4, caso sua máquina sejá um duo core você pode definir 2 maxcpus.

Segue abaixo minhas alterações:



Depois de editarmos temos a opção de salvar teclando "enter" (no meu caso a opção é control + x) ou cancelar as alterações teclando "esc".



Kernel

O bootloader carrega o kernel, onde ele irá fazer toda a detecção do hardware e configuração, isso acontece quando o sistema está sendo inicializado, após detectar e configurar todo o hardware o kernel vai montar a partição raiz (/) ou root filesystem, onde o mesmo vai buscar dentro das configurações do arquivo do GRUB, que na maioria das distribuições fica em /boot/grub/menu.lst caso seja o LILO o bootloader, vai estar em /etc/lilo.conf , indicando ao kernel qual a partição raiz (/) a ser montada, e por fim será executado o processo init, onde o mesmo caso não tenha sido alterado vai carregar /sbin/init

O processo init

O processo init é o primeiro processo a ser carregado, todo processo vai receber um PID (process ID) o número do processo do init sempre vai ser 1, todo processo tem um processo pai, menos o init, onde o mesmo é pai de todos os processos.
Quando iniciamos um programa no linux, o mesmo irá receber um PID, este sempre vai estar abaixo do processo init, e estes PIDs sempre vão crescer conforme você for abrindo mais programas.

O comando pstree é usado para visualizar a árvore de processos do seu sistema, como ele vamos observar toda a hierarquia dos processos.


Como podemos ver o init vem antes de qualquer processo.



Conteúdo do var/log/messages

O arquivo messages contém informações sobre a inicilização, sobre o boot, é um arquivo de log, onde podemos verificar qualquer erro os erros na inicialização.
Para verificar o conteúdo deste arquivo vamos dar o seguinte comando.

# cat /var/log/messages | less ( | less estou usando para paginar, poís o arquivo é muito extenso)



Comando dmesg


Também existe um comando onde ele imprime informações sobre o boot do sistema, conteúdo guardado na memória, comando "dmesg"

# dmesg | less (também está sendo paginado, pelo fato da grande quantidade de informações contidas na memória)







Como podemos ver temos ai duas opções para estar administrando ainda melhor nosso sistema, acessando o arquivo "messages" em "/var/log/messages" onde podemos verificar e ler erros do boot do sitema. Lembrando que o "dmesg" é um comando onde podemos verificar informaçoes armazenadas na memória do computador, também sobre a inicialização do sistema.

Bem Senhores(a) é isso, bons estudos!!





Nenhum comentário:

Postar um comentário