Administração de Sistemas Informáticos I

Documentos relacionados
Arranque do Sistema. Iniciação do Kernel. Iniciação de Processo/Serviços. Runlevel(s) /etc/inittab. Runlevel(s)

Boot e shutdown. Administração de Sistemas 2015/2016 Pedro Brandão. Referências dos slides

Introdução ao Linux. Kernel Boot loaders: lilo e grub. Arranque do sistema. José Pedro Oliveira (jpo@di.uminho.pt)

Curso de Formação LPIC-1 Exame 101

Gerenciamento de Boot

Preparatório LPIC-1 Tópicos e 101.3

Administração de sistemas Linux. Os níveis de inicialização do sistemas (runlevel)


Formação de Administradores de Redes Linux LPI level 1. Aula 6 SENAC TI Fernando Costa

Turma: SD-R Área: Redes Informáticas Formador: Tomás Lima Mediadora: Maria Eduarda Luz Unidade: UFCD 17 - Linux - Instalação e configuração Curso:

Preparatório LPIC-1 Tópico 102

ps: Process Status - Apresenta o estado dos processos ps a: Outros utilizadores ps u: Info Utilizador

Introdução a Administração de Sistemas GNU/Linux

Gerenciamento do Processo de Inicialização do Linux

838 - Linux - administração. Administração avançada do Linux

V 1.6. LPI 101 Arquitetura do Sistema

SEMPRE FAÇA BACKUP DOS ARQUIVOS DE DADOS DE UMA MÁQUINA ANTES DE INSTALAR OUTRO SISTEMA OPERACIONAL

Sistemas Embarcados. Filesystem Hierarchy Standard (FHS) Root filesystem. Aula 06

BOOT E S H U T D O W N

Administração de Sistemas Operacionais. Prof.: Marlon Marcon

Gerenciando sistemas de arquivos

Transforme o seu CentOS num servidor Web (LAMP)

Aprenda a instalar o GLPI no Centos 6.5

Arquitetura de Sistemas Operativos

Sistemas Operacionais Prof. André Y. Kusumoto

Sistemas Operacionais Abertos

Formação de Administradores de Redes Linux LPI level 1

Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto

Introdução aos Sistemas Operativos

João Correia Lopes. v 1.0, Outubro de Introdução aos Sistemas Operativos v1.0 1

Hierarquia de Diretórios da Família Linux. Sistemas Operacionais 1

Administração de Redes em Software Livre Aula 04 GNU/Linux Gerenciador de Pacotes, Inicialização e Configuração rede

Disciplina: Sistemas Operacionais Professor: Cristiano Mariotti

Introdução à Ciência da Computação ICC0001 Prof. Diego Buchinger

Inicialização do sistema

Como criar utilizadores

Aprenda a instalar o novo ArchLinux passo a passo

Planificação Anual da Disciplina de Sistemas Operativos - 12º 1PI

Administração de sistemas Linux. Gerenciamento de serviços

PERIVER PLATAFORMA INSTALLATION MANUAL. Periver_InstallationManual_ _v1.0.doc. Versão v1.0

Informática Sistemas Operacionais Aula 5. Cleverton Hentz

Aprenda a instalar e configurar o FreeNAS (Parte I)

Aprenda a instalar a plataforma de monitorização Cacti

Disciplina: Segurança de Redes. Professor: Roitier Campos

O Linux Possui varias características que diferenciam dos outros sistemas operacionais e que aproximam do UNIX, sendo um dos motivos da sua escolha

Windows 95/98/Me/2000

Voltar. X Window System

Red Hat System Administration II

Técnico de Gestão e Programação de Sistemas Informáticos

PiPplware Algumas dicas de utilização (Parte II)

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

WINDOWS. 1. Baixar o software cwrsync e efetuar a instalação.

CURSO TÉCNICO DE INFORMÁTICA. Fundamentos de Hardware e Software

Sistemas Operacionais

Live Mesh - A rede de nós segundo a Microsoft

Administração de sistemas Linux. Estrutura de diretórios Linux O diretório /etc

Sistemas de Operação

Guia de configuração do servidor Apache nos PCs pessoais

Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores

Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores

Segurança em Sistemas Operativos

Manual de Instalação v7.60

Programação Aplicada a Redes de Computadores Shell Script

Administração Central Cetec Capacitações Capacitação Sistema Operacional Linux Semana III

Criar uma máquina virtual

Ashampoo Rescue Disc

BIOS: BOOT, POST e CMOS

Abortar a execução dum programa

Segurança em Sistemas Operativos

Segurança Informática e nas Organizações. Guiões das Aulas Práticas

1.2 Organização de directórios e ficheiros A linha de comandos

Técnico Subsequente em Redes de Computadores Introdução a Sistemas Abertos (ISA)

USB Type-C para Adaptador de Série

Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores

Administração de sistemas Linux. Estrutura de diretórios Linux

OpenVZ Criação de containers e instalação do sistema operativo

Relembrando. Em nossas primeiras aulas discutimos o conceito do que seria um processo! Quem lembra?

REDES DE COMUNICAÇÃO DE DADOS 11.º ANO

Instalação. Versão de 13/10/99. Volnys B. Bernal & Edson T. Midorikawa. Agenda. Instalação Linux. Introdução. Introdução.

Notas da Aula 2 - Fundamentos de Sistemas Operacionais

Marcelo Gomes de Paula

O Manual do Desktop Sharing. Brad Hards Tradução: Pedro Morais

Aprenda a instalar o FreeBSD 10 passo a passo

Se um rato não funciona bem deve-se:

É simples e intuitivo instalar o novo Linux CentOS 7.0

Boot, BIOS, Bootloader

1. Distinga hardware de software. 2. Complete o quadro seguinte assinalando com um X, os diversos componentes apresentados:

Aprenda a instalar o Windows 10 no VirtualBox

Precisa de um servidor por uma hora? Alugue-o

E você, sabe qual e? a diferenc?a entre BIOS e UEFI?

Sistemas Operacionais. Prof. MSc André Y. Kusumoto

Escola Secundária/3 Filipa de Vilhena

Sistemas Operativos. Luís Paulo Reis. Sistemas Operativos. Sumário

Programação para Servidores. Cassio Diego

Sistemas Operativos. Introdução

Guião para a instalação do Ubuntu (Versão 1.1 em 30 Set 07)

Programação para Servidores. Cassio Diego

Recupere o Linux após a instalação do Windows 8

Transcrição:

TEMA Arranque do sistema TEÓRICA-PRÁTICA 1. Introdução O arranque/iniciação de um sistema é composto por três passos elementares: Localização do Kernel. Iniciação do Kernel. Iniciação de processos/serviços. 2. Localização do Kernel Primeiro, é necessário localizar o kernel do sistema operativo a ser arrancado. A forma exacta como isto acontece depende da plataforma de hardware em questão. Tipicamente, temos uma memória ROM que contém um programa responsável pela alguma iniciação básica do hardware e por encontrar e executar um programa denominado bootstrap. No caso de um PC, a BIOS permite definir em que drive deve procurar o bootstrap. Assim, esta irá criar um ambiente básico que permita executar o bootstrap, localizado no primeiro sector da drive escolhida. Um exemplo de um programa bootstrap, utilizado em Linux, é o LILO. 2.1. LILO - Linux Loader O LILO é um programa bootstrap, baseado em chamadas da BIOS. Este programa pode ser instalado no MBR ou na partição raiz do sistema Linux. De notar que, por ser baseado em chamadas à BIOS, todos os ficheiros que o LILO precisa de aceder para executar a sua tarefa devem ser acessíveis pela BIOS. O ficheiro de configuração do LILO é o /etc/lilo.conf. Adicionalmente, sempre que é efectuada uma modificação na configuração do LILO, ou é instalado um novo kernel, é necessário reinstalar o programa, executando: /sbin/lilo. 2.2. GRUB Grand Unified Bootloader O GRUB é alternativa ao LILO uma vez que consegue endereçar o boot acima do cilindro 1024, ao contrário do LILO. O ficheiro de configuração do GRUB é o /etc/grub.conf. O problema do cilindro 1024, está relacionado com o facto da BIOS nas arqitecturas X86 usarem um esquema de 3 números para endereçar os sectores do disco. Cada sector é identificado pelo tripleto: número do cilindro: número da cabeça: numero do sector. Colectivamente conhecido por endereço CHS(C Cylinder; H Head; S Sector). O problema surge porque o numero de bits para representar o numero do cilindro é de 10 bits, ora 2 10 só permite endereçar 1024 cilindros. 2.3. Iniciação do Kernel Ao executar, o programa bootstrap deverá (utilizando chamadas à BIOS) carregar o Kernel do sistema operativo para a memória. Uma vez carregado em memória, o kernel irá efectuar os seguintes passos: Iniciar as estruturas de dados internas. Verificar o hardware do sistema. O kernel apenas procura por hardware sobre o qual tem conhecimento. Verificar a integridade do sistema de ficheiros raiz e mapear este sistema. Criar o processo 0 (swapper) e o processo 1 (init). 2.4. Iniciação de processos/serviços Nesta altura, o kernel foi carregado, as suas estruturas de dados iniciadas, o hardware foi encontrado e o sistema de ficheiros está pronto a ser utilizado. O processo responsável pela gestão da memória foi iniciado. Tudo isto é preparado para prestar suporte aos processos a serem executados no sistema operativo, no entanto existe uma questão. Acontece, que, em Linux/Unix, a única forma para criar processos é que um processo existente execute um fork. Um Pag. 1

fork cria um novo processo que contém uma cópia de todas as estruturas e código do processo original. Em muitos casos, o novo processo irá efectuar um exec, que substitui o código e estruturas originais pelas de um novo programa. Por esta razão, é criado o processo init. Este processo é o processo ancestral de todos os processos num sistema Linux. Ele tem sempre o PID (process ID) 1, é iniciado pelo kernel e é o único processo que não tem um processo como pai. Desta forma, o init, é responsável pela iniciação de todos os outros serviços do sistema. Os serviços que inicia encontram-se configurados no ficheiro /etc/inittab. O init é também responsável por colocar o sistema num runlevel. Um runlevel é uma configuração do software do sistema que permite que apenas um conjunto de serviços esteja activo. Os runlevels oferecem a flexibilidade de colocar uma máquina a funcionar em diferentes modos de operação. Por exemplo, uma máquina pode estar configurada como servidor de mail num runlevel e noutro ser configurada como uma estação de trabalho. Este mecanismo de iniciação, denominado System V, é utilizado num grande número de distribuições Linux. Existem no entanto algumas distribuições que funcionam de forma diferente. De uma forma geral, os vários runlevels existentes são num sistema Linux são: Runlevel Descrição 0 Paragem do sistema 1 Modo single user. Todos os sistemas de ficheiros encontram-se disponíveis, mas apenas um pequeno conjunto de serviços se encontram activos. Apenas o root pode entrar no sistema. 2 Modo multi-utilizador, sem partilha remota de ficheiros. 3 Modo multi-utilizador, com partilha remota de ficheiros, processos e serviços. 4 Não definido. 5 Modo semelhante ao 3, mas com X11 iniciado. 6 Desligar/reiniciar o sistema. S,s O mesmo que single user (runlevel 1). Em qualquer altura, um destes runlevels tem de se encontrar activo. Quando o sistema arranca, o init examina o ficheiro /etc/inittab para encontrar uma entrada initdefault. Esta entrada determina o runlevel inicial do sistema. Para mudar de runlevels, o root pode utilizar o programa telinit que aceita como argumento o runlevel para o qual se pretende mudar ou para indicar ao init que deve re-examinar o ficheiro /etc/inittab. Os runlevels encontram-se definidos sob a pasta /etc/rc.d. Nesta pasta encontra-se várias subpastas (rc0.d, rc1.d, rc2.d,...) que definem o estado dos serviços para cada runlevel. Na realidade o conteúdo destas sub-pastas não são mais do que links simbólicos para scripts, responsáveis por iniciar e parar os serviços do sistema, que se encontram sob a pasta /etc/rc.d/init.d. O nome dos links simbólicos das sub-pastas (rc0.d, rc1.d, rc2.d,...) tem a seguinte forma: XxxNomeServiço, onde X é o caracter K ou S conforme se deseje terminar ou iniciar o serviço e xx é um número inteiro utilizado para indicar a ordem pela qual os serviços devem ser terminados ou iniciados. O ficheiro /etc/rc (que é um script), é o responsável pela mudança de runlevel. Este recebe como argumento o runlevel para o qual deve mudar e executa os scripts indicados na respectiva pasta do runlevel. Antes de iniciar os serviços de qualquer runlevel é necessário efectuar algumas inicializações. Isto é feito pelo script rc.sysinit, localizado também em /etc/rc.d. Este script é razoavelmente longo, e é responsável por tarefas como: criação do sistema de ficheiros proc, criação da partição de swap, atribuição do nome da máquina, inicializações de teclado, etc. Adicionalmente, existe o script rc.local, que é o último script a ser executado e tem a tarefa de executar algum tipo de iniciação adicional, específica ao sistema em causa. Pode existir, em alguns sistemas, o script rc.serial, para configuração de interfaces série. O conteúdo do directório /etc/rc.d é o seguinte: Pag. 2

drwxr-xr-x 10 root root 4096 Sep 26 20:57. drwxr-xr-x 61 root root 8192 Oct 22 11:20.. drwxr-xr-x 2 root root 4096 Oct 16 17:39 init.d -rwxr-xr-x 1 root root 2330 Jul 14 2002 rc drwxr-xr-x 2 root root 4096 Oct 10 17:00 rc0.d drwxr-xr-x 2 root root 4096 Oct 10 17:00 rc1.d drwxr-xr-x 2 root root 4096 Oct 10 17:00 rc2.d drwxr-xr-x 2 root root 4096 Oct 16 18:28 rc3.d drwxr-xr-x 2 root root 4096 Oct 16 18:28 rc4.d drwxr-xr-x 2 root root 4096 Oct 16 18:28 rc5.d drwxr-xr-x 2 root root 4096 Oct 10 17:00 rc6.d -rwxr-xr-x 1 root root 220 Jul 11 2001 rc.local -rwxr-xr-x 1 root root 22095 Aug 22 2002 rc.sysinit A tabela seguinte apresenta parte do conteúdo do directório /etc/rc3.d (runlevel 3): lrwxrwxrwx 1 root root 14 Sep 26 22:22 K05innd ->../init.d/innd lrwxrwxrwx 1 root root 19 Sep 26 20:57 K05saslauthd ->../init.d/saslauthd lrwxrwxrwx 1 root root 15 Sep 26 22:26 K15httpd ->../init.d/httpd lrwxrwxrwx 1 root root 20 Sep 26 22:25 K15postgresql ->../init.d/postgresql lrwxrwxrwx 1 root root 19 Sep 26 21:02 K50snmptrapd ->../init.d/snmptrapd lrwxrwxrwx 1 root root 13 Sep 26 22:27 K50tux ->../init.d/tux lrwxrwxrwx 1 root root 13 Sep 26 22:22 K54pxe ->../init.d/pxe lrwxrwxrwx 1 root root 17 Sep 26 22:26 K70aep1000 ->../init.d/aep1000 lrwxrwxrwx 1 root root 17 Sep 26 22:26 K70bcm5820 ->../init.d/bcm5820 lrwxrwxrwx 1 root root 14 Sep 26 21:36 K74ntpd ->../init.d/ntpd lrwxrwxrwx 1 root root 16 Sep 26 22:22 K74ypserv ->../init.d/ypserv lrwxrwxrwx 1 root root 16 Sep 26 22:22 K74ypxfrd ->../init.d/ypxfrd lrwxrwxrwx 1 root root 19 Sep 26 21:36 K95firstboot ->../init.d/firstboot lrwxrwxrwx 1 root root 15 Sep 26 21:01 S05kudzu ->../init.d/kudzu lrwxrwxrwx 1 root root 18 Sep 26 21:03 S08iptables ->../init.d/iptables lrwxrwxrwx 1 root root 13 Sep 26 21:12 S60lpd ->../init.d/lpd lrwxrwxrwx 1 root root 15 Oct 16 18:28 S65dhcpd ->../init.d/dhcpd lrwxrwxrwx 1 root root 18 Sep 26 21:02 S80sendmail ->../init.d/sendmail lrwxrwxrwx 1 root root 13 Sep 26 21:00 S85gpm ->../init.d/gpm lrwxrwxrwx 1 root root 15 Sep 26 21:04 S90crond ->../init.d/crond lrwxrwxrwx 1 root root 13 Sep 26 21:04 S90xfs ->../init.d/xfs lrwxrwxrwx 1 root root 17 Sep 26 21:04 S95anacron ->../init.d/anacron lrwxrwxrwx 1 root root 13 Sep 26 20:59 S95atd ->../init.d/atd lrwxrwxrwx 1 root root 15 Sep 26 21:04 S97rhnsd ->../init.d/rhnsd lrwxrwxrwx 1 root root 11 Sep 26 20:57 S99local ->../rc.local 2.5. /etc/ inittab Cada entrada (linha) no ficheiro /etc/inittab é constituída por quatro campos separados por : (identificador:runlevel(s):acção:processo): Identificador Um ou mais caracteres que servem para identificar a entrada. runlevel(s) Indica o(s) runlevel(s) em que esta entrada deve ser processada. O tipo de acção Indica como é que o init deve executar o processo. O processo O path absoluto do processo. Tipo de acções: respawn reinicia o processo quando este termina. sysinit executa o processo durante o arranque do sistema e antes de qualquer entrada com a acção boot ou bootwait wait o init espera que este processo termine para passar para a próxima entrada. once processar esta entrada uma vez, quando se entra no runlevel. Pag. 3

boot processar esta entrada uma vez durante o boot (ingnora os runlevels) boot-wait uma combinação de boot e wait. off não faz nada. initdefault especifica o runlevel de default da máquina. powerwait executado quando o init recebe o sinal de SIGPWR que normalmente indica uma falha de energia, o init espera que o processo termine. powerfail idem, mas o init não espera pelo processo. ctrlaltdel executado quando o init recebe o sinal SIGINT (ctrl+alt+del). De seguida apresenta-se um ficheiro /etc/inittab mínimo, para análise. # Default runlevel. The runlevels used by RHS are: # 0 - halt (Do NOT set initdefault to this) # 1 - Single user mode # 2 - Multiuser, without NFS # 3 - Full multiuser mode # 4 - unused # 5 - X11 # 6 - reboot (Do NOT set initdefault to this) # id:5:initdefault: # System initialization. si::sysinit:/etc/rc.d/rc.sysinit l0:0:wait:/etc/rc.d/rc 0 l1:1:wait:/etc/rc.d/rc 1 l2:2:wait:/etc/rc.d/rc 2 l3:3:wait:/etc/rc.d/rc 3 l4:4:wait:/etc/rc.d/rc 4 l5:5:wait:/etc/rc.d/rc 5 l6:6:wait:/etc/rc.d/rc 6 # Run gettys in standard runlevels 1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 4:2345:respawn:/sbin/mingetty tty4 5:2345:respawn:/sbin/mingetty tty5 6:2345:respawn:/sbin/mingetty tty6 # Run xdm in runlevel 5 x:5:respawn:/etc/x11/prefdm -nodaemon id:5:initdefault - Isto indica que o runlevel por omissão é o 5. si::sysinit:/etc/rc.d/rc.sysinit - Ordena que seja executado o script rc.sysinit. l0:0:wait:/etc/rc.d/rc0 - Indica que o script rc deve ser invocado com o argumento 0, para a lista de runlevels indicada no segundo campo, no caso apenas o runlevel 0. wait indica que deve esperar que o script termine. O primeiro campo (l0), é um campo descritivo que pode ser qualquer coisa. 1:2345:respawn:/sbin/mingetty tty1 - Indica que deve ser criado um terminal no tty1, em qualquer um dos runlevels de 2 a 5. Respawn indica que o processo deve ser iniciado de novo se, por alguma razão, for terminado. o Para abrir terminais, se o sistema estiver no runlevel 5, portanto no X: Shift+Ctrl+Alt+F(1-6) o Para abrir terminais, se o sistema modo consola: Alt+F(1-6) o Para abrir o X e o sistema estiver em modo consola: Pag. 4

Alt+F7 x:5:respawn:/etc/x11/prefdm nodaemon - Diz para executar o comando prefdm quando o runlevel 5 inicia. Isto inicia o sistema gráfico X-Windows. PRÁTICA 1. Arranque do sistema 2. Ligar e desligar serviços chkconfig --list sshd chkconfig --level <runlevel(s)> service <on:off:reset> Criar um utilizador Fazer ssh com esse utilizador: ssh localhost l <username> Desligar o ssh no runlevel 3 Verificar que está a funcionar Mudar para outro runlevel: telinit 1 Voltar novamente ao runlevel 3 Voltar a fazer ssh com o mesmo utilizador Verifica-se que não funciona. Podia-se fazer: service sshd stop o service <service> <start: stop: restart> 2.1. Exercícios 3. Problema: 3.1. O Sistema Operativo não consegue arrancar, devido a problemas com o servidor X Arrancar em single user mode : No arranque carregar em a e depois digitar linux single Ir ao /etc/x11/xf86config... Section Screen Identifier screen0 Device RIVA TNT Monitor Monitor0 DefaultDept 16 Subsection Display Depth 16 Modes 1024X768 800X600 640X480 EndSubsection EndSection Mudar para runlevel 5. Realçar arrancamos com a máquina com permissões de root sem conhecermos a password de root. Solução colocar password no GRUB ou LILO. 4. Colocar password no GRUB Gerar password: o grub-md5-crypt o password: asi1 o $1$ONnZbO$jKUJPPaEebxhDjuCXp9Qy60 Acrescentar o hash no ficheiro /etc/grub.conf a seguinte linha: o password md5 $1$ONnZbO$jKUJPPaEebxhDjuCXp9Qy60 Pag. 5

default=0 timeout=10 splashimage=(hd0,1)/boot/grub/splash.xpm.gz password --md5 $1$ONnZbO$jKUJPPaEebxhDjuCXp9Qy60 title Red Hat Linux (2.4.18-14) root (hd0,1) kernel /boot/vnlinuz-2..4.18-14 ro root=label=/ initrd /boot/initrd-2.4.18-14. img title Windows 2000 Server rootnoverify (hd0,0) chainloader +1 5. Colocar password no LILO Para colocar uma password no LILO, basta editar o ficheiro /etc/lilo.conf e acrescentar a seguinte linha: o password <password> Executar o comando /sbin/lilo prompt timeout=50 default=dos boot=/dev/hda map=/boot/map install=/boot/boot.b message=/boot/message lba32 image=/boot/vmlinuz-2.4.18-14 password= password restricted label=linux initrd=/boot/initrd-2.4.18-14.img read-only append="root=label=/" other=/dev/hda1 optional label=dos Pag. 6