- Gerenciamento de Boot é um meio de você configurar e trabalhar com diversos sistemas operacionais instalados. - Gerenciador de Boot é um pequeno software instalado no Master Boot Record (MBR) nas trilhas iniciais do Disco rígido. - Geralmente cada S.O. implementa um Gerenciador de Boot próprio Na família Linux os mais utilizado são o Lilo e o GRUB. - Existe Gerenciadores de Boot para cada Arquitetura (milo, yaboot e etc.)
- LILO Foi um dos primeiros e mais utilizados gerenciadores de boot do Linux. Era muito Simples de configurar. (/etc/lilo.conf) - Pode ser configurado atráves do comando liloconfig - Após configurado deve ser chamado o comando lilo
boot = /dev/hda # Onde Gravar o MBR prompt # Espera Seleção de SO timeout = 300 # Quanto esperar image = /boot/vmlinuz root = /dev/hda2 label = Slackware image = /boot/vmlinuz root = /dev/hda3 label = Conectiva
- GRUB É um gerenciador de boot flexível e poderoso. - Possui uma interface gráfica-textual que permite edição de parâmetros durante o boot do sistema. - O Arquivo de configuração do grub se encontra geralmente em /boot/grub/menu.lst - Para efetuar mudanças no boot basta alterar o arquivo de configuração que automaticamente estes valores já serão válidos.
Default 0 # Boot Default (primeiro da lista) Timeout 8 # Tempo em segundos para aguardar title opensuse 11.3-2.6.34-12 root (hd0,1) kernel /boot/vmlinuz-2.6.34-12-default root=/dev/sda2 splash=silent quiet showopts vga=0x314 initrd /boot/initrd-2.6.34-12-default
- Nomenclatura de Hds/Partições no Grub(Exemplo) Fisicamente (Hardware) Grub Linux 1a Disco 1a Partição do Disco (CD/HD) 1 = (hd0,0) = /dev/sda1 1a Disco 2a Partição do Disco (CD/HD) 1 = (hd0,1) = /dev/sda2 1a Disco 1a Partição do Disco (CD/HD) 2 = (hd1,0) = /dev/sdb1 1a Disco 2a Partição do Disco (CD/HD) 2 = (hd1,1) = /dev/sdb2 2a Disco 1a Partição do Disco (CD/HD) 3 = (hd2,0) = /dev/sdc1 2a Disco 2a Partição do Disco (CD/HD) 3 = (hd2,1) = /dev/sdc2 2a Disco 1a Partição do Disco (CD/HD) 4 = (hd3,0) = /dev/sdd1 2a Disco 2a Partição do Disco (CD/HD) 4 = (hd3,1) = /dev/sdd2
timeout Tempo em Segundos até que seja acionada a opção padrão default Opção Padrão root Disco que contém o S.O. Instalado. title Nome do SO a ser Carregado kernel caminho do kernel a ser carregado initrd caminho do initrd a ser carregado
- Durante o processo de boot é possivel alterar as entradas do Grub pressionado a tecla 'e' - Para acrescentar uma nova linha basta pressionar 'o' - Para efetuar as modificações e bootar o sistema pressione 'b' - As modificações feita durante o boot não são salvas no arquivo de configuração do grub e só são validas durante aquele boot. Para fazer mudanças permanentes modifique o arquivo /boot/grub/menu.lst
- É possivel passar parâmetros para o Kernel indepedente do Gerenciador de Boot. Estes parâmetros influirão no processo de inicialização. root=<dispositivo> - Especifica o dispositivo que contém o diretório raiz (/) do SO. init=<programa> - Especifica o programa init do SO. single Inicia no Runlevel 1 vga Tamanho do framebuffer da vga quiet Boot quieto sem muitas mensagens (verbose)
Inicialização do Sistema e RunLevels - POST -> Efetivado pelo Hardware - Boot -> Gerenciador de Boot MBR (Grub, Lilo e etc.) - Kernel -> Núcleo do S.O. Assume o controle - init -> Primeiro programa a ser carregado no S.O. - scripts -> Scripts em /etc/rc.d
Inicialização do Sistema e RunLevels - init é o processo que inicializa o sistema, carregando os principais serviço e disponbilizando o shell para o usuário. É o processo de PID 1. - Arquivo de configuração é o /etc/inittab - Carrega scripts no /etc/rc.d (Padrão System V Init) - Montam Sistema de Arquivos (fstab), configura ambiente e inicia principais serviços. - Existe diferenças nos arquivos /etc/rc.d conforme cada distribuição
System V Init define Runleves (niveis de execução) que definem o comportamento do sistema em relação aos serviços (daemons). 0 halt (sistema desligado) 1 single (monousuário, sem rede) 2 half-multiuser (sem fs remoto) 3 full multiuser (todos os sub-sistemas carregados) 4 fim particular da distribução 5 - modo gráfico 6 reboot S - manutenção
Inicialização do Sistema e RunLevels - Para saber qual nivel se encontra utilize o comando runlevel. - Para mudar o runlevel em tempo-real init 3 telinit 5 telinit 6
- /etc/inittab Arquivo que contém definições dos primeiros programas a serem executados em cada runlevel. Edite este arquivo usando o comando nano (nano /etc/inittab). Sintaxe ID:runlevels:palavra_chave_comando:linha_de_comando Exemplo: 1:2345:respawn:/sbin/mingetty --noclear tty1 l3:3:wait:/etc/init.d/rc 3 ca::ctrlaltdel:/sbin/shutdown -r -t 4 now
Inicialização do Sistema e RunLevels Sintaxe ID:runlevels:palavra_chave:linha_de_comando ID Identificador runlevels niveis de execução que irá carregar palavra_chave respawn ao terminar uma tarefa. reinicia-a wait o init espera a tarefa terminar once executa uma única vez boot executada durante o boot ctrlaltdel executa tarefa quando pressionadas linha_de_comando um comando a ser executado
Prática - /etc/inittab Alterar o comando ctrl+alt+del para que, quando pressionado estas teclas liste o diretório /bin no modo longo que o saida seja redirecionado para um arquivo em /tmp/lista_ctrl Redirecionar Date/Hora para o arquivo /tmp/data_hora ao alternar para o Console tty6 (alt+f6) init q (efetivar modificações no inittab sem bootar)
Inicialização do Sistema e RunLevels - O Primeiro script inicializado é o /etc/rc.d/rc ou /etc/rc.d/rc.sysinit - Entre as tarefas que ele inicia estão - Principais Log de Sistema - Seta Data e Hora do Sistema - Ativação do SWAP - Configuração de nome de Máquina - Verificar Dispositivo RAID (Software) - Inicializar Mapa de Teclado - Quotas
Inicialização do Sistema e RunLevels - /etc/rc.local Executado pelos runlevels 2, 3 e 5 - Utilizado para adicionar Comandos adicionais durante a inicialização do sistema. É o último script a ser carregado durante o boot do sistema. - Pode ser utilizado para executar tarefas como backup, limpeza de diretórios, carga de regras de firewall e etc.
Prática Ao iniciar sistema: - remover todos os arquivos do diretório /tmp/ sem apagar o diretório tmp. - Lista todo o contéudo do diretório /var/log/, no formato longo, e redirecionar a saida para o arquivo /tmp/arquivosdelog - Ler o Arquivo /etc/passwd, filtrar todos os usuários que usam o bash e criar uma lista no /tmp/loguser - Fazer uma copia do arquivo /var/log/messages para o diretorio /tmp