Sistemas Operacionais
Sistemas Operacionais
Sistema de Inicialização
Sistema de Inicialização
BOOT
BOOT
15/10/09 08:58 PM
15/10/09 08:58 PM Prof. André LuizProf. André Luiz 22
Sistema de Boot
Sistema de Boot
POST e BIOS – Responsáveis pela inicialização do Hardware.
POST e BIOS – Responsáveis pela inicialização do Hardware.
Após realizar os testes iniciais (POST) a BIOS localiza o
Após realizar os testes iniciais (POST) a BIOS localiza o
Loader (ou gerenciador de partida) para subir o SO.
Loader (ou gerenciador de partida) para subir o SO.
O Gerenciador de Partida é um programa que carrega
O Gerenciador de Partida é um programa que carrega
um Sistema Operacional e/ou permite escolher qual será
um Sistema Operacional e/ou permite escolher qual será
iniciado. Normalmente, este programa é gravado no setor
iniciado. Normalmente, este programa é gravado no setor
de boot de uma partição ativa ou no Master Boot Record
de boot de uma partição ativa ou no Master Boot Record
(MBR) do disco rígido.
Sistema de Boot
Sistema de Boot
O MBR contém 512 bytes de informação da estrutura
organizacional do disco (partições, código de arranque do
sistema operativo, e assinatura desse código):
Estrutura do Master Boot Record
Código de
arranque do SO
Master Partition Table
Assinatura
446 bytes
bytes
16
bytes
16
bytes
16
bytes
16
2 bytes
15/10/09 08:58 PM
15/10/09 08:58 PM Prof. André LuizProf. André Luiz 44
Sistema de Boot
Sistema de Boot
Sistemas GNU/Linux possuem diversos sistemas de boot
Sistemas GNU/Linux possuem diversos sistemas de boot
(loaders). Sendo o LILO e o GRUB os principais loaders
(loaders). Sendo o LILO e o GRUB os principais loaders
utilizados, os quais são responsáveis pelo gerenciamento
utilizados, os quais são responsáveis pelo gerenciamento
da carga do Sistema Operacional.
da carga do Sistema Operacional.
O LILO e o GRUB, são responsáveis por passar ao Sistema
O LILO e o GRUB, são responsáveis por passar ao Sistema
operacional, informações de Hardware, estas informações
operacional, informações de Hardware, estas informações
estão em arquivos de configuração, pré-configurados.
Sistema de Boot
Sistema de Boot
15/10/09 08:58 PM
15/10/09 08:58 PM Prof. André LuizProf. André Luiz 66
Sistema de Boot - Loaders
Sistema de Boot - Loaders
Comparação entre os principais Loaders
Comparação entre os principais Loaders
http://en.wikipedia.org/wiki/Comparison_of_boot_loaders
http://en.wikipedia.org/wiki/Comparison_of_boot_loaders
Sistema de Boot
Sistema de Boot
Lilo – Linux Loader
Lilo – Linux Loader
15/10/09 08:58 PM
15/10/09 08:58 PM Prof. André LuizProf. André Luiz 88
Sistema de Boot
Sistema de Boot
Grub Legacy
Grub Legacy
Sistema de Boot
Sistema de Boot
Pode ocorrer que o GRUB ou LILO passem informações
ao Kernel, através de linha de comando, seguindo:
• Nome_da_imagem_do_kernel parametro
• Ou
• Nome_da_imagem_do_kernel parametro=valor
• Exemplo: #Linux root=/dev/hda6
15/10/09 08:58 PM
15/10/09 08:58 PM Prof. André LuizProf. André Luiz 1010
Sistema de Boot
Sistema de Boot
Sistema de Boot - Grub
Sistema de Boot - Grub
O GRUB (Grand Unified Boot Loader), é mais uma alternativa de gerenciador de inicialização, e apresenta alguns recursos extras com relação as outras opções disponíveis. Ele é flexível, funcional e poderoso, podendo inicializar sistemas operacionais como o Windows (9x, ME, NT, 2000 e XP), Dos, Linux, GNU Hurd, *BSD, OS/2 etc. Podemos destacar também o suporte aos sistemas de arquivos EXT2, EXT3 e ReiserFS, FAT16 e FAT32 (Win 9x/ME), FFS (Fast File System usado no *BSD), minix (MINIX OS) etc.
Por utilizar o padrão Multiboot, ele é capaz de carregar diversas imagens de inicialização (uma por vez) e módulos. Por esse motivo, ele é o único gerenciador de inicialização capaz de carregar o conjunto de servidores do GNU Hurd. O GRUB também permite buscar imagens do Kernel pela rede, por cabo seriais, suporta discos rígidos IDE, SATA e SCSI, informar a quantidade total de memória RAM ao sistema, tem interface voltada para linha de comandos ou menus de escolha, além de suportar sistemas sem discos e
15/10/09 08:58 PM
15/10/09 08:58 PM Prof. André LuizProf. André Luiz 1212
Sistema de Boot - Grub
Sistema de Boot - Grub
Principais diretórios e arquivos de configuração:
Lilo - /etc/lilo.conf
Grub Legacy - /boot/grub/menu.lst Grub 2 - /boot/grub/grub.cfg
O arquivo de configuração do GRUB 2 é formado automaticamente pela concatenação de todos os arquivos do diretório /etc/grub.d e possuem parâmetros muitos parecidos com o Grub Legacy, estes arquivos atendem o Padrão FHS:
Sistema de Boot - Grub
Sistema de Boot - Grub
Principais parâmetros globais de configuração do GRUB Legacy:
timeout = Define um tempo (em segundos) de espera. Se nenhuma tecla for
pressionada, carrega a imagem padrão.
default = Define qual será a opção padrão que deve ser automaticamente selecionada quando nenhuma outra for especificada em um tempo definido pelo parâmetro “timeout”.
fallback = Caso ocorra algum erro inesperado e a opção padrão não possa ser carregada, este parâmetro define qual a outra opção deve ser utilizada.
color = Permite que você escolha as cores usadas no menu de boot.
password = Permite que você especifique uma senha. Está será solicitada sempre que houver necessidade de realizar uma função que não seja carregar as imagens disponíveis, como por exemplo acessar a linha de comandos do GRUB.
15/10/09 08:58 PM
15/10/09 08:58 PM Prof. André LuizProf. André Luiz 1414
Sistema de Boot - Grub
Sistema de Boot - Grub
Principais parâmetros do grub legacy que afetam os SO disponíveis: /boot/grub/menu.lst title Windows hide (hd0,1) unhide (hd0,0) rootnoverify (hd0,0) chainloader +1 makeactive
title Debian GNU/Linux, kernel 2.6.18-4-486 root (hd0,0)
kernel /boot/vmlinuz-2.6.18-4-486 root=/dev/hda1 ro initrd /boot/initrd.img-2.6.18-4-486
Sistema de Boot - Grub
Sistema de Boot - Grub
Principais parâmetros do grub 2 que afetam os SO disponíveis: /etc/default/grub
/etc/grub.d/*
Entrada para SO MS Windows 7: $ cat /etc/grub.d/40_custom
#!/bin/sh
exec tail -n +3 $0
# This file is an example on how to add custom entries menuentry "Ruindows 7" {
set root=(hd0,1) chainloader +1
15/10/09 08:58 PM
15/10/09 08:58 PM Prof. André LuizProf. André Luiz 1616
Sistema de Boot - Grub
Sistema de Boot - Grub
Comandos mais utilizados: $ grub
Enter the GRand Unified Bootloader command shell. $ grub-install
Grub-install copies GRUB images into the DIR/boot directory specfied by --root-directory, and uses the grub shell to install grub into the boot sector.
$ update-grub
Sistema de Boot - Grub
Sistema de Boot - Grub
Comandos mais utilizados: $ grub-md5-crypt
Encrypt a password in MD5 format. $ grub-floppy
Create GRUB boot floppy. $ upgrade-from-grub-legacy
15/10/09 08:58 PM
15/10/09 08:58 PM Prof. André LuizProf. André Luiz 1818
grub> help
. FILE [ EXPRESSION ] blocklist FILE boot
cat FILE cmp FILE1 FILE2 configfile FILE cpuid
echo [-e|-n] FILE export ENVVAR halt [-n] help [PATTERN ...]
hexdump [OPTIONS] FILE_OR_DEVICE insmod MODULE loopback [-d|-p] DEVICENAME FILE ls [-l|-h|-a] [FILE]
lsmod reboot
rescue rmmod MODULE
search [-f|-l|-u|-s] NAME set [ENVVAR=VALUE] source FILE terminal [TERM...]
test EXPRESSION unset ENVVAR grub> ls
(host) (hd0) (hd0,1) (hd0,2) (hd0,5) (hd0,6) (hd0,7) grub> ls (hd0,1)
Partition hd0,1: Filesystem type ntfs, UUID f264f40564f3ca7d grub>
Sistema de Boot – Grub2 - Shell
Sistema de Boot – Grub2 - Shell
Sistema de Boot - Grub
Sistema de Boot - Grub
Removendo o GRUB do MBR
Não existe a necessidade de se remover o GRUB do MBR, pois não há utilização para o mesmo vazio. Mas caso você queira fazer isso de qualquer forma, há várias formas, uma delas é usar o utilitário “fdisk” do MS DOS, juntamente com o parâmetro “/mbr” (“fdisk /mbr”), outra forma mais arriscada inclusive, é usando o utilitário “dd” do GNU/Linux da seguinte forma, supondo que você esteja utilizando um disco conectado a controladora principal IDE:
15/10/09 08:58 PM
15/10/09 08:58 PM Prof. André LuizProf. André Luiz 2020
Sistema de Boot e Shutdown
Sistema de Boot e Shutdown
Durante o boot o Linux executa diversos
processos em uma ordem programada
chamada de “nível de execução” ou RunLevel.
Utilizando o comando init, pode-se indicar ao
Sistema Operacional, qual nível deseja
executar.
Sistema de Boot e Shutdown
Sistema de Boot e Shutdown
Modo multiusuário – não usado
5
Modo multiusuário – não usado
4
Modo multiusuário – não usado
3
Modo multiusuário
2
Manutenção do sistema – Monousuário
1
Desligamento elegante e rápido do Sistema
0
Descrição (Padrão Debian)
Runlevel
15/10/09 08:58 PM
15/10/09 08:58 PM Prof. André LuizProf. André Luiz 2222
Sistema de Boot e Shutdown
Sistema de Boot e Shutdown
O arquivo /etc/inittab, define o Runlevel
padrão.
• Em id:n:initdefault
Sistema de Boot e Shutdown
Sistema de Boot e Shutdown
O arquivo /etc/inittab também é responsável
por configurar a inicialização dos consoles
(/dev/ttyx) e pela associação de teclas de
funções como CRTL+ALT+DEL.
15/10/09 08:58 PM
15/10/09 08:58 PM Prof. André LuizProf. André Luiz 2424
Sistema de Boot e Shutdown
Sistema de Boot e Shutdown
Quando o Linux inicia, uma série de arquivo
são executados a partir do diretório /etc/rcS.d
• rc.sysinit
fstab (semelhantes)
• rc.local
Arquivo usado para carga do sistema,
montado pelo administrador
• /etc/init.d/
Diversos scripts para carga do
sistema.
Sistema de Boot e Shutdown
Sistema de Boot e Shutdown
O Debian GNU/Linux, possuí o seguinte padrão para definir se uma ligação simbólica em “/etc/rc[0-6].d” iniciará ou interromperá a execução de um serviço em “/etc/init.d”:
• Se um link é iniciado com a letra K (kill), quer dizer que o serviço será interrompido naquele nível de execução. O que ele faz na verdade, é executar o script do serviço em questão em “/etc/init.d” seguido da opção “stop”.
• Se um link é iniciado com a letra S (start), quer dizer que o serviço será iniciado naquele nível de execução. Isto fará com que o script do serviço em questão em “/etc/init.d” seja invocado seguido da opção “start”.
15/10/09 08:58 PM
15/10/09 08:58 PM Prof. André LuizProf. André Luiz 2626
Sistema de Boot e Shutdown
Sistema de Boot e Shutdown
OS níveis de serviços são definidos nos
diretório /etc/rc<n>.d.
Neste diretório encontra-se o que será
Sistema de Boot e Shutdown
Sistema de Boot e Shutdown
Por ordem, os links com a letra “K” são executado primeiro
seguido pelos que iniciam pela letra “S”. A ordem com que são
executados, depende também do valor numérico que acompanha
o link, por exemplo, os seguintes arquivos são executados em
seqüência:
S10sysklogd
S12kerneld
S20inetd
S20linuxlogo
S20lprng
15/10/09 08:58 PM
15/10/09 08:58 PM Prof. André LuizProf. André Luiz 2828
Sistema de Boot e Shutdown
Sistema de Boot e Shutdown
Para inserir ou remover scripts nos runlevels é interessante
utilizar a ferramenta update- rc.d, que é a maneira correta (eu
até diria: essa é a forma mais elegante) para controlar o uso dos
scripts de inicialização.
Exemplos de uso:
#update-rc.d ssh defaults
Insere o serviço ssh (/etc/ini.d/ssh) em todos os runlevels para iniciar e parar de foma correta dependendo de cada runlevel.
# update-rc.d ssh start 20 2 .
Insere o serviço ssh (/etc/ini.d/ssh) apenas no runlevel 2 para iniciar.
# update-rc.d -f ssh remove
Remove o serviço ssh (/etc/ini.d/ssh) de todos os runlevels em que está registrado.
Sistema de Boot e Shutdown
Sistema de Boot e Shutdown
shutdown [opções] horário [mensagem]
• Usado para desligar ou reiniciar a máquina.
• Opções
-r Reinicia o sistema
-h Paraliza o sistema
-k Manda mensagem de desligamento
15/10/09 08:58 PM
15/10/09 08:58 PM Prof. André LuizProf. André Luiz 3030
Sistema de Boot e Shutdown
Sistema de Boot e Shutdown