Booting → man telinit Man telinit ...jteles/AdmRedesLinux/AulasEduardo/aula1-28... · 1. Criar...

48
Booting → man telinit Man telinit http://pt.wikipedia.org/wiki/Parti%C3%A7%C3%A3o http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-ig-ppc-multi-pt_br-4/ap-partiti man inittab man update-rc.d man rcconf man file-rc http://www.linuxjournal.com/article/3016 http://www.freeos.com/articles/3243/ http://www.debian-administration.org/articles/28 http://www.debianadmin.com/manage-linux-init-or-startup-scripts.html http://www.debianadmin.com/manpages/runlevelconfmanpage.htm

Transcript of Booting → man telinit Man telinit ...jteles/AdmRedesLinux/AulasEduardo/aula1-28... · 1. Criar...

Booting → man telinit

Man telinithttp://pt.wikipedia.org/wiki/Parti%C3%A7%C3%A3o

http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-ig-ppc-multi-pt_br-4/ap-partitions.html

man inittabman update-rc.d

man rcconfman file-rc

http://www.linuxjournal.com/article/3016http://www.freeos.com/articles/3243/

http://www.debian-administration.org/articles/28http://www.debianadmin.com/manage-linux-init-or-startup-scripts.html

http://www.debianadmin.com/manpages/runlevelconfmanpage.htm

Curso de extensão em Administração de redes com GNU/Linux

Eduardo Júnior - [email protected]

Gestores da Rede Acadêmica de ComputaçãoDepartamento de Ciência da Computação

Universidade Federal da Bahia

Eduardo Júnior Administração de redes com GNU/Linux

Assuntos abordados

Inicialização do Sistema

Processo Init

Boot Loaders

Estrutura de Diretórios e Arquivos

Inicialização do Sistema

Inicialização do Sistema

Pré Boot

Runlevels

Scripts de Inicialização

Pré Boot

POST – Power On Self Test

BIOS passa para a MBR (Setor de Boot) a continuidade do processo de boot – primeiros 512 bytes do disco que estamos “zbootando”

Setor de boot sempre se localiza no mesmo local: track 0, cylinder 0 e head 0

No setor de boot temos os carregadores (loaders) de boot: GRUB ou LILO, que carregam o Sistema Operacional

Pré Boot

Controle do processo de boot é passado para o Kernel

No linux, ele ficam armazenado no /boot e é chamado de vmlinuz; /boot/vmlinuz

Kernel inicia tabelas internas, cria estrutura de dados apropriadas para o sistema na memória, termina de diagnosticar o hardware...

Kernel cria o init

O Processo Init::

Onde tudo começa!

INIT

Após o kernel ter sido carregado

Processo pai de todos os outros processos (PID 1)

Ler o arquivo /etc/inittab

Seta path, inicia swapping, checa file system...

Seta runlevel default

Inicia processos olhando no rc?.d adequado

Getty para cada console virtual

/etc/inittab

Id → identificador único; limitações de tamanho

Runlevel → indica o runleve para esta linha (uau!); pode ser null ou um valor númerico

Action → atividade

Process → o processo específico ou o programa a ser executado

Sintaxe:id:runlevel:action:process

/etc/inittab

id:2:initdefault:

~~:S:wait:/sbin/sulogin

si::sysinit:/etc/init.d/rcS

l0:0:wait:/etc/init.d/rc 0

ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

3:23:respawn:/sbin/getty 38400 tty3

Inicialização do Sistema

BSD vs. System V

Inicialização do Sistema – BSD Style

- Poucos scripts de inicialização - rc.K e rc.M - rc.init e rc.init2

- Apenas 2 modos de inicialização - single user - multi user

- Scripts dependentes e executados sequencialmente

- Semelhante ao processo de boot do DOS: config.sys e autoexec.bat

Inicialização do Sistema – System V Style

- Vários scripts de inicialização

- 6 modos de inicialização (mais outros não usados, mas disponíveis)

- Scripts de inicialização independentes por runlevel e por processo

Runlevels

0 – halt

1 – single user

2 – multi-user

3 – multi-user

4 – multi-user

5 – multi-user

6 – restart

S – Inicialização do sistema

/etc/rc?.d

- Diretórios separados por runlevel

- Links simbólicos para scripts em /etc/init.d

- Ordem de execução (S/KNN)

- /etc/rc.local

rc?.d

/etc/rc0.d

/etc/rc1.d

/etc/rc2.d

/etc/rc3.d

/etc/rc4.d

/etc/rc5.d

/etc/rc6.d

/etc/rcS.d

Mudar de runlevel

Nível atual → /etc/rc?.d/KNN*

Exceto os que aparecem tanto no atual quanto no antigo runlvel

Nível que se deseja → /etc/rc?.d/SNN*

Perigoso, pois caso não tenha total conhecimento das dependências de processos, pode travar a máquina

NUNCA setar os runlevels 0 e 6 para default

Adicionando “coisas” ao Boot

Adicionando links simbólicos

update-rc.d

rcconf

file-rc

Links Simbólicos

Processo manual

Colocar o script em /etc/init.d

ln -s /etc/init.d/script /etc/rc3.d/S22script

ln -s /etc/init.d/script /etc/rc3.d/S23script

uptade-rc.d

Sintaxe:

update-rc.d [-n] [-f] name remove

udpate-rc.d [-n] name defaults [NN | NN-start NN-stop]

updat-rc.d [-n] name start|stop NN runlevel runlevel start|stop NN runlevel runlevel

rcconf

file-rc

Arquivo de configuração centralizado

Boot Loaders

Boot Loaders- Bootstrap, bootstrap loader ou boot loader

- Multi boot - diferentes Sistemas Operacionais - diferentes versões de kernel - programas independentes de SO

- Carrega o Sistema Operacional (carrega o kernel e passa o controle do boot para o mesmo)

- Pode modificar o modo o Sistema Operacional será carregado, através de opções de linha de comando

GRUB

/boot/grub/menu.lst

Rótulos, delays, default

acpi=off

Noapic

Nolapic

Vga=771

init=/bin/bash

...

LILO

/boot/lilo.conf

Linux single

Linux <runlevel>

...

Boot Loaders

Parâmetro de boot de emergênciaemergência:-b

Diz ao init ler o arquivo /etc/inittab, mas não executar os comandos lá listados, pulando para o modo de manutenção

Exercícios 11. Inserir o script blah na inicialização do runlevel 4, com número de sequência 44, usando o comando ln

2. Insert links using the defaults

3. Equivalent command using explicit argument sets

4. More typical command using explicit argument sets

5. Desabilitar o apache e festival (se ativos) da inicialização do sistema usando o rcconf

6. Insert links at default runlevels when B requires A

7. Insert a link to a service that (presumably) will not be needed by any other daemon

8. Remover o script blih da iniciazalição de qualquer runlevel do sistema através do comando unlink

9. Insert links for a script that requires services that start/stop at sequence number 20

10. Disabling a service

11. Habilitar a desativação do script dccbar do runlevel 3 usando o comando unlink

Estrutura de Diretórios e Arquivos

Estrutura de Diretórios e Arquivos

- Padronização para a estrutura de diretórios e arquivos para Sistemas UNIX-like – FHS: Filesystem Hierarchy Standard

- Começou a ser escrito em 1994 e atualmente se encontra na versão 2.3

- Mantido pela Free Standards Group

Estrutura de Diretórios e Arquivos

Obetivos do FHS:

- Softwares possam dizer onde estão instalados os arquivos e diretórios

- Usuários saibam a localização de arquivos e diretórios instalados

Estrutura de Diretórios e Arquivos

O objetivos do FHS são alcançados:

- Com a especificação de princípios para cada área do sistema de arquivos

- Com a especificação do mínimo de arquivos e diretórios requeridos

- Com a enumeração de exceções para os princípios

- Com a enumeração de casos específicos, como por exemplo, por conflitos históricos ou por evoluções dos softwares

Root FileSystem

O diretório raíz - /

Segundo o FHS, o root filesystem ou diretório raíz contém conteúdo que deve ser adequado para boot, recuperação e reparação do sistema.

O objetivo primário é de se manter o root filesystem o menor possível, pelas seguintes razões:

- pode estar acessível de uma partição pequena (dispositivo com pouco espaço de armazenado disponível)

- por existir muitos arquivos específicos do sistema, evitando-se o uso excessivo para áreas não compartilháveis

- menor pré-disposição a falhas, e mais disposta a usabilidade e a operações de manutenção

Root FileSystem

Diretórios Requeridos para o “/”:

bin binários essenciaisbootarquivos estáticos do gerenciador de bootdev arquivos de dispositivosetc configurações do sistemalib bibliotecas compartilhadas essencias e módulos do kernelmedia ponto de montagem para dispositivos removíveis mediamnt ponto de montagem para sistemas de arquivos temporáriosopt aplicações extrassbinbinários essencias do sistema, utilizados pelo uruário rootsrv dados para serviçostmp arquivos temporáriosusr segunda hierarquiavar dados variáveis

Opcionais:

home diretório pessoal dos usuárioslib<qual> bibliotecas compartilhadas para arquiteturas específicasroot diretório pessoal do usuário root

Hierarquia /usr

- Segunda maior hierarquia do filesystem- Diretório compartilhável e somente leitura

Diretórios ou links simbólicos requeridos para o /usr:

bin maioria dos comandos dos usuáriosinclude arquivos cabeçalhos de programas Clib bibliotecaslocal hierarquia localsbin binários não vitais ao sistemashare dados independentes de arquitetura

Opcionais:

X11R6 hierarquia do Sistema Xwindows, versão 11 release 6games games e binários educativos)lib<qual> bibliotecas específicos para alguma arquitetura ou de foramato alternativosrc códigos fontes

Hierarquia /var- Contém arquivos e dados variáveis, como diretórios e arquivos de spool, informações administrativas e de logs e arquivos temporários.

- Algumas partes do /var não são compartilháveis, como /var/log, /var/lock e /var/run. Outras devem ser, como /var/mail, /var/cache/man /var/spool/news.

Diretórios ou links simbólicos requeridos no /var:

cache dados cacheados de aplicaçõeslib informações de estado variávellocal dados variáveis do /usr/locallock arquivos de locklog arquivos e diretórios de logsopt dados variáveis do /optrun informações relevantes de processos em execuaçãospool dados de spool de aplicaçõestmp arquivos temporários preservados entre reboots do sistema

Reservados e não devem ser usados por aplicações por conflitos históricos:

/var/backups/var/cron/var/msgs/var/preserve

Opcionais:

account logs do processo de contascrash dumps de crashs do sistemagames dados variáveis de gamesmail arquivos mailbox de usuáriosyp Informações do Serviço de Rede e arquivos de base de dados

FHS

Mais sobre o FHS...

Ver referências.

Partições e Sistemas de Arquivos

- Particionar um disco significa dividir o dispositivo em vários, podendo-se alocar mais de um sistema de arquivos em apenas um disco e, consequentemente, mais de um Sistema Operacional

- Uma partição possui os seguintes dados:- ponto de início e de término- se a partição está ativa- tipo da partição

Sistemas de Arquivos

O sistema de arquivo é criado quando da formatação da partição. Toda a estrutura pra leitura e gravação de arquivos e diretórios é criada.

Tipos da partição para Sistemas de arquivos:

Linux nativo – tipo 83Linux swap – tipo 82FAT32 – tip OBNTFS – tipo 7

Partições e Sistemas de Arquivos

No GNU/Linux, os dispositivos existentes em seu computador são identificados por um arquivo no

diretório /dev

A identificação de um disco rígido no GNU/Linux é feita da seguinte forma:

/dev/hda1/dev/sdb2

Partições e Sistemas de Arquivos

Tipos de Sistemas de Arquivos:

ext2 → ext3 → reisefs → fat32 → ntfs → iso9660 → jfs → ...

Partições e Sistemas de Arquivos – parte prática

- Particionamento:- cfdisk- fdisk

- Formatação:- mkswap e swapon- mkfs.ext2- mkfs.ext3- mkfs.reiserfs- mkfs.vfat

Acesso as partições e discos

Processo de montagem de disco/partição

Acesso as partições e discos

Comando mount:

mount <dispositivo> <ponto de montagem> <tipo> <opções>mount <dispositivo> <ponto de montagem> <tipo> <opções>

Montagem dos dispositivos durante a inicialização do sistema:

/etc/fstab

<dispositivo> <ponto de montagem> <tipo> <opções> <dump> <ordem>

proc /proc proc defaults 0 0/dev/hda1 / reiserfs notail 0 1

Exercício 2

1. Criar uma partição com tamanho 150 mb, sistema de arquivos reiserfs e montagem e disponibilizá-lo momentaneamente

2. Criar uma partição com 30 mb, FAT32, para armazenamento de códigos-fonte da disciplina Teoria dos Grafos, com ponto de montagem /mnt/grafos. Montagem deve ficar disponível após o reinício do sistema

3. Criar uma partição de 40 mb para área de troca com a memória principal. Mantê-la ativa após o reboot do sistema

4. Acesso a partição de 75 mb, somente leitura, tipo de sistema de arquivo ext2 e que fique disponível através do ponto de montagem /mnt/leitura. Deixá-la apenas disponível momentaneamente.

Referências

http://tldp.org/HOWTO/LILO.html

http://www.gnu.org/software/grub/

Man pages

Man init

Man update-rc.d

Man telinit

Man grub

Man lilo

Referências

Man cfdisk

Man fdisk

Man fsck

Man mount

Curso Extensão 2007.1 – Amadeu Barbosa

http://www.pathname.com/fhs/pub/fhs-2.3.html

http://www.linux-usb.org