View
221
Download
0
Category
Preview:
Citation preview
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 - ihtraum@dcc.ufba.br
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
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
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 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
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
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
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
...
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
- 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
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
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
Recommended