Você está na página 1de 23

ApostilaDebian IntermedirioDesktop Parana

Apostila Debian Intermedirio - Desktop Parana

Direitosautorais:
Essa Apostila est licenciada sob uma Licena Creative Commons AtribuioUso NoComercial Compartilhamentopelamesmalicena2.0Brazil.Podesercopiada,distribudaemodificada.Paraveruma cpia desta licena, visite http://creativecommons.org/licenses/byncsa/2.0/br/ ou envie uma carta para CreativeCommons,559NathanAbbottWay,Stanford,California94305,USA.

Documento Verso Data de Reviso Equipe Tcnica

Apostila Debian Intermedirio - Desktop Parana 2.0-0 27 de Maio de 2010, por Andr Luiz de Souza Paula Mantenedor: Felipe Camargo de Pauli Revisor: Andre Luiz de Souza Paula Colaboradores: Coordenao do projeto: Jonsue Trapp Martins 23 pginas

Pginas

ndice
SISTEMA DE INICIALIZAO.............................................................................................5 CIRCUITO DE INICIALIZAO........................................................................................6 Power On Self Test (POST)...........................................................................................6 BIOS (Basic Input Output System) e SETUP................................................................6 Master Boot Record (MBR)...........................................................................................7 GERENCIADOR DE INICIALIZAO LOADER............................................................7 Linux Loader - Lilo.........................................................................................................8 Grub Legacy - Grand Unified Bootloader......................................................................8 Grub Version 2.............................................................................................................17 NVEIS DE EXECUO - RUNLEVEL...........................................................................19 Conhecendo os runlevels ...........................................................................................19

Apostila Debian Intermedirio - Desktop Parana

SISTEMA DE INICIALIZAO
A partir desta seo vamos descrever a ordem de inicializao dos sistemas GNU/Linux, lembrando sempre que devemos conhecer a cronologia em que os processos so iniciados, quais so os procedimentos bsicos de inicializao de hardware at a incluso de scripts avanados para personalizao da inicializao do Sistema operacional. Vamos observar o diagrama abaixo e tentar desvendar quais processos podemos identificar:

Boto Ligar (Power)

Ativa Circuito de Inicializao

Hardware (Placa me)

Sistema de Inicializao
Hardware ok
Basic Input Output System (BIOS)

ERRO Emitir Sinal Sonoro

Hardware Error

Power On Self Test (POST)

1 Parte
Load Partition Boot Record (PBR Boot Loader) Obtm e executa a MBR do dispositivo primrio de BOOT

2 Parte
Load Kernel Montagem da partio de Boot

MB Sem RL oad er

Gerenciador de Boot MBR Loader

3 Parte
/sbin/init Inittab RunLevel rcS.d - rc2.d

/etc/init.d /bin/sulogin

Login

Para facilitar o entendimento sobre a inicializao iremos dividir em trs partes distintas e cada parte ser uma subseo do nosso manual: 1 Parte Circuito de inicializao, POST, BIOS, SETUP e MBR; 2 Parte Gerenciador de Partida (Loader); 3 Parte Nveis de Execuo (Runlevels).

Apostila Debian Intermedirio - Desktop Parana

CIRCUITO DE INICIALIZAO
Toda a placa me (mainboard) possui um circuito de inicializao, so trs os principais programas que fazem parte deste circuito: POST, BIOS e SETUP. Esses programas encontram-se gravados em um chip composto por uma memria do tipo EEPROM, que no voltil mas permite atualizao (regravao) por software. Neste circuito tambm aproveitado uma outra memria, do tipo RAM, chamado por CMOS (complementary metal-oxide-semiconductor) que mantm as informaes de configurao utilizadas pelo SETUP para configurar o funcionamento do BIOS. A CMOS, atualmente, fica em uma parte do Chipset Sul e suas informaes so mantidas por uma bateria interna, pelo fato de ser voltil pode ser apagada a qualquer momento facilitando a correo Figura 1: Chip de BIOS do tipo PLCC de um possvel erro ou configurao mal feita.

Power On Self Test (POST)


O POST o primeiro programa que executado para identificar possveis erros de hardware, no que diz repeito ao funcionamento bsico de um computador. So detectados os dispositivos primrios (Placa me, processador, memria e placa de vdeo) e posteriormente realizados testes rpidos de leitura de me mria. Se algum erro for percebido sero apresentados sinais sonoros para que se possa identificar o pro blema. Seguem abaixo os principais cdigos de erros (sinais sonoros) que podem ser observados: 1 bip curto: POST realizado com sucesso, nenhum erro encontrado; Nenhum bip: Veja se os coolers esto funcionando, pode haver problemas de alimentao ou com o speaker; 2 bips: Erro genrico, no indica nada especfico, necessrio usar a tcnica de tentativa e erro; 1 bip longo e 1 bip curto: Problema com a placa me; 1 bip longo e 2 bips curtos ou 1 bip longo e 3 bips curtos: Problema com a placa de vdeo; 3 bips longos: Erro no teclado, o controlador est com defeito ou em curto-circuito; 2 (ou mais) bips longos: Problemas com as placas de memria RAM; 5, 6 ou 7 bips curtos: Problemas com o processador: Erro grave ou com super-aquecimento; 9 bips: Erro de gravao do BIOS ou na memria Flash onde est gravado.

BIOS (Basic Input Output System) e SETUP


O Sistema bsico de Entrada e Sada (BIOS) tem a funo de iniciar os dispositivos adicionais e identi ficar opes de inicializao para dar suporte a carga do sistema operacional atravs de um gerenciador de partida (Loader). As configuraes do BIOS so realizadas em um programa chamado SETUP e as informaes da configurao so armazenadas na CMOS. Atravs do SETUP podemos escolher a ordem de BOOT, para inicializar um sistema atravs de um disco rgido ou de um CDROM, muitas do suporte a iniciar um sistema por pendrive ou at atravs da rede (PXE).

Apostila Debian Intermedirio - Desktop Parana

Funcionamento dp BIOS quando o computador ligado: 1. Leitura do CMOS, onde esto as configuraes personalizveis. 2. POST (autoteste de partida). Diagnsticos/testes realizados nos compo nentes fsicos. Os problemas so informados por uma combinao de sons numa determinada seqncia, ou exibidos na tela. 3. Ativao de outros BIOS possivelmente presentes em dispositivos instalados no computador. 4. Descompactao para a memria principal. Os dados so transferidos para a memria, e s a descompactados. 5. Leitura dos dispositivos de armazenamento, cujos detalhes e ordem de inicializao so arma zenados no CMOS. Se h um sistema operacional instalado no dispositivo, em seu primeiro setor esto as informaes necessrias para o BIOS encontr-lo.

Master Boot Record (MBR)


Master Boot Record (MBR) a rea inicial de um dispositivo de boot, em um disco rgido a MBR fica armazenada nos primeiros 512 Bytes. A MBR dividida em trs partes distintas, sendo elas: rea de loader (Code Area), tabela de parties e assinatura.
Endereo Hex Oct Dec 0 0000 0 01BC 0674 444 01BE 0676 446 01FE 0776 510 55h 01FF 0777 511 AAh

Descrio rea de Loader Tabela de parties primrias Assinatura da MBR MBR, tamanho total: 446 + 64 + 2 =

Tamanho em Bytes 446 64 2 512

Essa estrutura permite o armazenamento de um pequeno programa que poder dar a carga inicial do kernel do sistema operacional, com todas as opes necessrias para o suporte ao seu carregamento em memria. Atualmente entre os sistemas GNU/Linux o mais popular o GRUB2, mas abordaremos tambm o Grub Legacy e o Lilo por serem gerenciadores de partida que podem surgir em estaes com sistemas legados. Vamos descrever abaixo uma importante ferramenta de backup do contedo da MBR, o comando dd: # dd if=/dev/<disco> of=mbr.img Comando para restaurar a MBR (a partir da imagem gerada anteriormente): # dd if=mbr.img of=/dev/<disco>

GERENCIADOR DE INICIALIZAO LOADER


O gerenciador de partida o responsvel por carregar o sistema operacional durante o processo de inicializao alm de, nos casos onde houver mais de um sistema operacional, permitir que seja feita a escolha de qual sistema operacional dever ser carregado. Este programa geralmente fica gravado no setor
7

Apostila Debian Intermedirio - Desktop Parana

de boot de uma partio ativa ou na Master Boot Record (MBR) do disco. Vrias verses de gerenciadores de partidas (loaders) j foram escritos e esto disponveis para uso, muitos deles possuem suporte ao carregamento de diversos sistemas operacionais e podem estar presentes em diversas mdias como disco rgido, pendrive, cdrom, disquete, etc. Sendo os principais loaders: Lilo, Grub Legacy, Syslinux, Grub2, Windows Boot Manager, NTLDR, BootKey, Acronis OS Selector, etc. Uma lista comparativa pode ser encontrada no sitio da Wikipedia, mas no podemos garantir que a pgina permanea disponvel: http://en.wikipedia.org/wiki/Comparison_of_boot_loaders (disponvel em 26/05/2010 s 11:30 hs,)

Linux Loader - Lilo


O Linux Loader - Lilo est ficando cada vez menos utilizado, porm no podemos deixar de citar este loader por ser um gerenciador de partida muito robusto e precursor dos sistemas de inicializao de mais de um sistema operacional. Alm do que existem sistemas legados que precisam ser mantidos, para isso teremos que manter o conhecimento bsico sobre esse loader. Como obter o Lilo? # apt-get install lilo Abaixo esto listadas apenas as configuraes mais importantes relativas a manuteno do Lilo: # vim /etc/lilo.conf boot=/dev/hda # gravar o LILO na MBR do disco /dev/hda map=/boot/map install=/boot/boot.b password=senha # definio de senha para edio no modo execuo restricted # restringe o acesso prompt # mostrar o prompt do LILO timeout=50 # tempo de espera do prompt de 5 seg default=Debian # o Debian o sistema padro image=/boot/vmlinuz # arquivo com a imagem de kernel label=Debian # nome do linux no menu do LILO root=/dev/hda3 # partio da imagem do kernel read-only other=/dev/hda1 # partio do Windows (C:\>) label=WinXP # nome do Windows no menu do LILO table=/dev/hda # indica que o Windows est nesse HD

Aps qualquer alterao no arquivo lilo.conf deve-se regravar a mbr: # lilo

Grub Legacy - Grand Unified Bootloader


O GRUB (Grand Unified Boot Loader) o gerenciador de partida padro do Debian. Ele um dos mais poderosos e funcionais gerenciadores de partida, capaz de inicializar vrios sistemas operacionais como
8

Apostila Debian Intermedirio - Desktop Parana

Windows (9x, ME, NT, 2000, XP e Vista), Dos, Linux, GNU Hurd, *BSD, OS/2 etc. Podemos destacar tambm 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.

O instalarmos uma mquina com dual boot, com os sistemas operacionais Linux e Windows, devemos sempre instalar primeiro o sistema operacional Windows. Pois o mesmo, durante sua instalao, grava suas informaes de inicializao na MBR do disco sobrescrevendo todas as configuraes nela existentes, consequentemente apagan do o GRUB e suas configuraes fazendo que o Linux, mesmo instalado, seja ignorado e iniciado diretamente o sistema operacional Windows.

O GRUB utiliza o padro Multiboot o que o torna capaz de carregar diversas imagens de ini cializao (uma por vez) e mdulos. Alm de permitir buscar imagens do Kernel pela rede, por ca bos seriais, suporta discos rgidos IDE, SATA e SCSI, informar a quantidade total de memria RAM ao sistema, tem interface voltada para linha de comandos ou menus de escolha, alm de suportar sistemas sem discos e terminais remotos. Os principais arquivos utilizados pelo GRUB para inicializao do sistema encontram-se dentro dos di retrios /boot e /boot/grub. Dentro do diretrio /boot encontramos os arquivos de kernel que so os responsveis pelo carregamento do mesmo na memria. Dentro do diretrio /boot/grub, encontramos os arquivos dos quais so carregados os parmetros com as configura es para inicializao do sistema, dentre esses arquivos destacamos o menu.lst que o arquivo que nos possibilita customizar as configuraes do GRUB. TRABALHANDO COM DISCOS E PARTIES O GRUB trabalha com uma notao para apontar discos e parties, diferente da que esta mos acostumados a ver em sistemas operacionais Linux. Para o GRUB independente do tipo de disco (IDE, SATA ou SCSI) ele sempre ser representado pela sigla hd. O primeiro disco ser representado pelo nmero 0 o segundo pelo nmero 1 e assim por diante. As parties so representadas da mesma forma que os discos a primeira partio criada ser representada pelo nmero 0 a segunda pelo nmero 1 e assim por diante. Abaixo segue tabela comparativa, atravs dela fica mais fcil visualizar as diferenas acima descritas:
Disco IDE Disco SCSI ou SATA Dispositivo Dispositivo Dispositivo no Linux no Grub no Linux /dev/hda /dev/hda1 /dev/hda2 /dev/hdb /dev/hdb1 /dev/hdb2 (hd0) (hd0,0) (hd0,1) (hd0) (hd0,0) (hd0,1) /dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdb1 /dev/sdb2 Dispositivo no Grub (hd0) (hd0,0) (hd0,1) (hd1) (hd1,0) (hd1,1) Dispositivo no Linux /dev/fd0

Disquete
Dispositivo no Grub (fd0)

INSTALAO DO GRUB Aps instalado o GRUB dificilmente precisaremos reinstal-lo. As alteraes ou adies de novos sistemas a serem carregados como opo para inicializao so feitas atravs de alteraes no arquivo de configurao menu.lst, com o comando:
9

Apostila Debian Intermedirio - Desktop Parana

# vim /boot/grub/menu.lst Normalmente, durante a instalao do GNU/Debian voc ser questionado se deseja ou no instalar o GRUB, se selecionada a opo de sua instalao automaticamente todos os sistemas operacionais instala dos na mquina sero listados e configurados pelo GRUB para estarem disponveis como opes de sistemas que podem ser inicializados. Algumas situaes podem vir a apagar o GRUB da MBR do disco, por exemplo, como foi descrito anteriormente, uma mquina com dual-boot onde a instalao do sistema operacional Windows foi efetuada posterior a instalao do Linux. Nesses casos para podermos restaurar o GRUB e voltarmos a utilizar o siste ma operacional Linux instalado, podemos, dentre as vrias alternativas para restaurao do grub, executar o comando abaixo por exemplo: # grub-install /dev/hda Este comando grava o GRUB no MBR do primeiro disco rgido IDE do sistema e cria o diretrio /boot/grub, onde estaro os arquivos necessrios para o seu funcionamento. interessante tambm, executar o comando: # update-grub Este comando atualiza dinamicamente a lista de sistemas que podem ser carregados durante a inicia lizao da mquina, e os adiciona ao arquivo menu.lst automaticamente, conforme a instalao corrente. No entanto, para podermos executar os comando apresentados anteriormente para instalar o grub na MBR e para atualizar o arquivo menu.lst, precisamos primeiro iniciar a mquina a partir de um CD, pendrive, ou algum outro dispositivo que possua um sistema operacional que carregue um kernel que disponibilize um shell linux, montar a partio com o diretrio /boot, montar as parties /proc e /dev, transformar mos a partio montada no nosso / e s ento podemos utilizar aqueles comandos para restaurar o grub (instal-lo na MBR e atualiz-lo). Na linha de comando usar os seguintes comandos: # mount -t ext3 /dev/sda2* /mnt (para montar a partio com diretrio /boot) # mount -o bind /dev /mnt/dev # mount -o bind /proc /mnt/proc (para reconhecer o HD necessrio montar o /dev e o /proc) # chroot /mnt /bin/bash (para que a partio montada vire o /) # grub-install (para instalar o GRUB) # update-grub (para atualizar o GRUB para que aparea a instalao do Windows) * Neste momento deve ser indicada a partio que contenha o diretrio /boot CUSTOMIZANDO O ARQUIVO MENU.LST No arquivo menu.lst podemos fazer dois tipos de configuraes: as configuraes globais que afe tam o funcionamento do GRUB de forma mais genrica e as configuraes especificas que afetaram somen te as imagens a serem inicializadas. Abaixo mostraremos um exemplo do arquivo menu.lst configurado
10

Apostila Debian Intermedirio - Desktop Parana

onde sero inseridos comentrios explicando cada um dos parmetros configurados. # menu.lst - See: grub(8), info grub, update-grub(8) # grub-install(8), grub-floppy(8), # grub-md5-crypt, /usr/share/doc/grub # and /usr/share/doc/grub-doc/. ################################################################### ## default num # A opo default serve para que possamos escolher qual kernel (sistema) ser iniciado. Para isso basta passar como parmetro o nmero correspondente ao sistema a ser iniciado. A contagem para representao dos sistemas feita atravs da ordem de apario do parmetro title neste arquivo, deforma que a primeira ocorrncia corresponder ao nmero 0 a segunda ao nmero 1 e assim por diante. # possvel tambm especificar 'saved' como argumento da opo default. Nesse caso ser consi derado como opo padro aquela que apresentar junto s suas configuraes a opo 'saveddefault'. Default 0 ################################################################### ## timeout sec # A opo timeout permite a definio o tempo, em segundos, que o menu do GRUB ficar disponvel para escolha do sistema a ser iniciado antes de iniciar automaticamente a opo definida como padro. Timeout5 ################################################################### ## Pretty colours # A opo color permite que faamos customizaes das cores no menu do GRUB, atravs do co mando 'color a/b c/d'. Onde 'a' representa cor das opes, o 'b' representa a cor do fundo, o 'c' re presenta as letras sob o cursor e o 'd' representa acor do cursor. As cores que podem ser aplicadas so: black (preto), blue (azul), green (verde), cyan (ciano), red (vermelho), magenta (prpura), brown (marron) e ligth-gray (cinza claro). Ainda so possvel aplicar as cores das fontes ('a' e 'c') as cores: dark-gray (cinza-escuro), ligth-blue (azul-claro), ligth-green (verde-claro), ligth-cyan (cianoclaro), ligth-red (vermelho-claro), ligth-magenta (prpura-clara), yellow (amarelo) e white (branco). color cyan/blue white/blue ################################################################### ## password [--md5'] passwd # A opo password permite a definio de uma senha que dever ser informada para que seja possvel a edio das opes de inicializao dos sistemas assim como a utilizao da linha de comando do GRUB atravs do menu para escolha do sistema a ser iniciado. # possvel definirmos esta senha de duas formas sem criptografia ou com criptografia. A desvan tagem de utilizarmos a senha sem estar criptografada que qualquer usurio com permisso de leitura no arquivo menu.lst poder descobrir qual a senha setada. Para definirmos uma senha no criptografada basta inserimos a senha desejada logo aps a opo password, como mostra o exemplo abaixo. #password senha #Para definirmos uma senha criptografada basta inserirmos aps a opo password o parmetro '-md5' seguido da senha j criptografada, como mostra o exemplo abaixo: # password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/3

11

Apostila Debian Intermedirio - Desktop Parana

################################################################### Para criptografarmos uma senha para utilizao no GRUB basta entrarmos na linha de comando do GRUB e digitarmos o comando md5crypt digitarmos a senha desejada e copiarmos o resultado criptografado apresentado para o arquivo de configurao (menu.lst). ##fallback num # Com esta opo podemos definir um segunda opo do menu do GRUB para ser carregada caso a inicializao do kernel definido como default falhar. Para o correto funcionamento deste parmetro o mesmo deve ser utilizado junto com o parmetro 'hidenmenu'. fallback 1 ################################################################### ##hidenmenu=opo # Este parmetro oculta a exibio do menu do GRUB de forma que exibida apenas uma mensa gem com opo para visualizao do menu de cordo com o tempo definido no parmetro 'timeout' e esgotado o tempo automaticamente iniciada a opo default. hidenmenu=true ################################################################### # Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST ## Abaixo encontraremos a seo de opes default, esta seo nunca deve ser descomentada. Os parmetros passados nesta seo sero utilizados na configurao do GRUB quando for executado o comando 'update-grub' ou quando for instalada alguma atualizao de segurana do GRUB. ## ## Start Default Options ## ## default kernel options ## default kernel options for automagic boot options ## If you want special options for specific kernels use kopt_x_y_z ## where x.y.z is kernel version. Minor versions can be omitted. ## e.g. kopt=root=/dev/hda1 ro ## kopt_2_6_8=root=/dev/hdc1 ro ## kopt_2_6_8_2_686=root=/dev/hdc2 ro # kopt=root=/dev/hda4 ro vga=791 quiet splash ## default grub root device ## e.g. groot=(hd0,0) # groot=(hd0,1) ## should update-grub create alternative automagic boot options ## e.g. alternative=true ## alternative=false # alternative=true ## should update-grub lock alternative automagic boot options ## e.g. lockalternative=true lockalternative=false ## lockalternative=false additional options to use with the default ## boot option, but not with the alternatives e.g ##defoptions=vga=791 resume=/dev/hda5 # defoptions= ## should update-grub lock old automagic boot options ## e.g. lockold=false ## lockold=true # lockold=false ## Xen hypervisor options to use with the default Xen boot option
12

Apostila Debian Intermedirio - Desktop Parana

# xenhopt= ## Xen Linux kernel options to use with the default Xen boot option # xenkopt=console=tty0 ## altoption boot targets option ## multiple altoptions lines are allowed ## e.g. altoptions=(extra menu suffix) extra boot options ## altoptions=(singleuser) single # altoptions=(singleuser mode) single ## controls how many kernels should be put into the menu.lst ## only counts the first occurence of a kernel, not the ## alternative kernel options ## e.g. howmany=all ## howmany=7 # howmany=all ## should update-grub create memtest86 boot option ## e.g. memtest86=true ## memtest86=false # memtest86=true ## should update-grub adjust the value of the default booted system ## can be true or false # updatedefaultentry=false ## ## End Default Options ## # Logo aps s opes padro comeam as configuraes especficas dos sistemas operacionais que sero disponibilizados como opo para boot. Abaixo temos listado como opo de sistema para inicializao o Debian com kernel 2.6.18-6-686. E logo abaixo temos esse mesmo sistema mas configurado para ser inicializado no modo singlemode (somente um usurio) que o mesmo sistema operacional com o mesmo kernel com que inicializado com parmetros, de kernel, diferentes. # Os parmetros abaixo representam: # title: define a forma de identificao que o sistema operacional (kernel) assumir no menu do GRUB durante a seleo do sistema a ser iniciado. Neste parmetro podemos inserir como argumento qualquer texto que nos ajude a identificar o sistema operacional que ser carregado. Ressaltamos que sempre deve ser evitado o uso de caracteres especiais. # root: nesta opo indicamos em qual partio encontram-se os arquivos de inicializao (indicamos qual a partio que contm o '/boot'). - kernel: nesta opo passamos qual o kernel dever ser iniciado e logo aps devemos indicar qual a partio que contm o diretrio '/', aps isso podemos passar alguns argumentos para o ker nel, que sero carregados durante sua inicializao. No exemplo abaixo estamos utilizando os argumentos: 'ro' que faz com que seja carregado como somente leitura e 'vga=791' que define a resoluo que ser utilizada pelo shell nesse caso 1024x768 com 65.536 cores. - initrd: nesta opo especificamos qual a imagem que ser utilizada como Initial RAM no incio do boot do sistema.4 - savedefault: salva uma informao de que no ultimo boot foi utilizado este bloco de configuraes e a partir de ento ser considerada como opo padro para inicializao no GRUB se na opo 'default' estiver configurada com o argumento 'saved'. title Debian GNU/Linux, kernel 2.6.18-6-686 root (hd0,1) kernel /vmlinuz-2.6.18-6-686 root=/dev/hda4 ro vga=791 initrd /initrd.img-2.6.18-6-686 savedefault
13

Apostila Debian Intermedirio - Desktop Parana

title Debian GNU/Linux, kernel 2.6.18-6-686 (single-user mode) root (hd0,1) kernel /vmlinuz- 2.6.18-6-686 root=/dev/hda4 ro vga=791 single initrd /initrd.img- 2.6.18-6-686 ### END DEBIAN AUTOMAGIC KERNELS LIST ################################################################### # As configuraes abaixo funcionam apenas como um separador que separa as opes de carregamento do Debian das opes dos demais sistemas operacionais disponveis. title Other operating systems: root ################################################################### # Abaixo (fora da seo DEBIAN AUTOMAGIC KERNELS LIST) encontramos as configuraes dos sistemas operacionais no-linux. Essas configuraes so escritas neste arquivo atravs do pacote os-prober que detecta todos os sistemas operacionais instalados e repassa essas informaes ao gerenciador de boot (GRUB). Por serem detectadas automaticamente dificilmente temos a necessidade de edio dessas configuraes. # Para configurarmos um sistema operacional windows no GRUB devemos utilizar os seguintes parmetros de configurao: # - title: define a forma de identificao que o sistema operacional (kernel) assumir no menu do GRUB durante a seleo do sistema a ser iniciado. # - root: para indicarmos em qual partio o Windows esta instalado. # - makeactive: para tornar a partio com o Windows ativa (o Windows s pode ser iniciado se sua partio for uma partio ativa). # - chainloder +1: faz com que seja feita a leitura do primeiro setor da partio carregando o gerenciador de boot do windows. title Microsoft Windows XP Professional root (hd0,0) savedefault makeactive chainloader +1 OUTROS PARMETROS DE CONFIGURAO DAS IMAGENS rootnoverify = Idntico ao parmetro anterior (root), mas no tenta montar a partio-alvo, o que necessrio para alguns sistemas como o DOS e o MS Windows. module = Faz com que algum mdulo necessrio para o boot seja carregado. Lembre-se que estes no so mdulos do kernel (mdulos de som, rede, etc.) e sim mdulos necessrios ao boot de alguns sistemas, como por exemplo os utilizados pelo GNU Hurd. lock = Quando voc desejar controlar se uma pessoa pode ou no iniciar um sistema que esteja lista do nas opes do menu de boot, voc pode utilizar esta opo que faz com que a senha especificada com o parmetro password seja solicitada no momento em que o usurio tentar carregar a imagem em questo. pause = Emite uma mensagem na tela e espera uma tecla ser pressionada. hide e unhide = Esconde/mostra uma partio respectivamente. Estas duas opes, so necessrias quando houver mais de uma verso do DOS ou do Windows na mquina em parties diferentes, j que es tes sistemas detectam automaticamente a partio. Vamos a um simples exemplo para ilustrar uma situao bem comum: Suponha que o Windows esteja instalado na primeira partio primria do primeiro disco rgido (hd0,0) e o DOS na segunda partio primria (hd0,1). Quando quisermos carregar estes sistemas, de vemos ajustar o arquivo /boot/grub/menu.lst, adicionando as seguintes configuraes:

14

Apostila Debian Intermedirio - Desktop Parana

# Poro do arquivo /boot/grub/menu.lst title Windows hide (hd0,1) unhide (hd0,0) rootnoverify (hd0,0) chainloader +1 makeactive title Dos hide (hd0,0) unhide (hd0,1) rootnoverify (hd0,1) chainloader +1 makeactive map = Alguns sistemas no permitem ser iniciados quando no esto no primeiro disco (DOS, Windows 9x etc). Para resolver esta e outras situaes deste tipo, o GRUB tem um comando que permite enga nar tal sistema mapeando as unidades de disco do modo como lhe for mais conveniente. Imagine que voc tenha o primeiro disco (hd0) com o GNU/Linux instalado e em um outro disco (hd1) com o Windows/DOS instalado. O Windows/DOS no permitem serem inicializados desta forma, e como soluo, voc poderia usar a seguinte entrada no arquivo de configuraes /boot/grub/menu.lst do GRUB: title Windows unhide (hd1,0) rootnoverify (hd1,0) chainloader +1 map (hd1) (hd0) makeactive Isso faz com que o disco (hd1), onde Windows/DOS est instalado, seja apresentado a este sistema como (hd0), um artifcio que permitir que estes sistemas sejam carregados normalmente. Atravs do menu do GRUB possvel alterar as configuraes para inicializao do sistema que estiver selecionado pressionando a tecla <e>. Sero exibidos os parmetros de configurao para inicializao daquele sistema, para alterar esses parmetros basta selecion-los e novamente novamente pressionar a tecla <e>, aps feitas as alteraes desejadas basta pressionar a tecla <enter> e para dar boot com as alteraes efetuadas basta digitar a letra <b>. LINHA DE COMANDO DO GRUB O GRUB possui tambm o recurso de linha de comandos. Na linha de comando podemos utilizar mai oria dos comandos usados no arquivo de configurao /boot/grub/menu.lst, alm outros comandos que so exclusivos para uso na linha de comado. Temos duas formas de acessar o menu do GRUB: Com o sistema operacional carregado digitando, na linha de comando como root # grub Pressionando a tecla <c> enquanto aparece a tela do menu de seleo do GRUB. Caso o parmetro password tenha sido especificado no arquivo /boot/grub/menu.lst, para que seja poder acessar o menu de comandos assim como as demais opes possveis ser necessrio pressionar
15

Apostila Debian Intermedirio - Desktop Parana

a tecla <p> e entrar com a senha vlida. Abaixo iremos fazer uma breve descrio de alguns comandos que podemos utilizar na linha de co mando do GRUB, onde s detalharemos os comandos mais relevantes. cat - Este comando permite verificar o contedo de um arquivo qualquer, o qual deve estar gravado em um dispositivo ligado a sua mquina. Embora seja um recurso til, nenhuma permisso de acesso verificada e qualquer pessoa que tenha acesso linha de comandos do GRUB, poder listar o contedo de arquivos importantes do seu sistema. Para contornar este problema, configure adequadamente o parmetro password no arquivo /boot/grub/menu.lst. No esquea que ainda possvel utilizar um disquete com o GRUB para iniciar a mquina, o que permite usar a linha de comandos pelo disquete. Para testar o comando cat siga os passos descritos a seguir: deixe o arquivo menu.lst somente com permisso de leitura e escrita para o dono (grupo e outros no devem ter nenhum tipo de permisso), com um usurio comum tente listar o contedo do arquivo menu.lst com o comando cat da linha de coman do do sistema operacional (dever ser exibida mensagem de permisso negada). Em seguida como root digite o comando grub para entrar na linha de comandos do GRUB, e seguida utilize, para listar o contedo do arquivo menu.lst, o comando cat passando, com a sintaxe do GRUB, qual a partio e o caminho onde se encontra o arquivo menu.lst e perceba que o contedo do arquivo ser exibido. Veja abaixo um exemplo de execuo dos comandos descritos nesse procedimento. # chmod 600 /boot/grub/menu.lst # su robsonp $ cat /boot/grub/menu.lst cat: /boot/grub/menu.lst: Permisso negada $ exit # grub grub> cat (hd0,0)/grub/menu.lst cmp - Este comando utilizado para comparar dois arquivos. grub> cmp (hd0,0)/arquivo1 (hd0,0)/arquivo2 configfile - Carrega um arquivo de configurao do GRUB. Com este comando ser aberto o menu do GRUB e decorrido o tempo configurado no arquivo menu.lst, caso nenhuma tecla seja pressionada, ocorrer uma tentativa de inicializao da opo definida na opo default, ser apresentada mensagem de erro de inconsistncia na estrutura do sistema de arquivos e retornar ao menu do GRUB ento basta digitar c para retornar a linha de comando. grub> configfile (hd0,0)/grub/menu.lst displayapm - Mostra informaes sobre APM. displaymem - Mostra informaes sobre a memria RAM. find - Permite encontrar um arquivo. A sada deste comando disponibiliza o nome completo do caminho para o arquivo e a partio onde o mesmo est localizado. geometry - Mostra informaes sobre a geometria reconhecida para seu dispositivo de armazenamento principal, e permite que voc defina uma geometria personalizada, caso esta esteja sendo reconhecida de forma errada. help um comando para ver a ajuda sobre a utilizao de outros comandos. grub> help cmp install - Instala o GRUB, embora no seja recomendado o uso deste comando diretamente, j que possvel cometer erros facilmente e sobrescrever a tabela de parties de seu disco. setup - Este comando configura e instala o GRUB automaticamente. Para instalao do GRUB atravs deste comando precisamos, antes, indicar em qual partio esto os arquivos de inicializao (qual a partio /boot) para depois podermos utilizar o comando setup para efetuarmos a instalao.
16

Apostila Debian Intermedirio - Desktop Parana

grub> root = (hd0,0) grub> setup = (hd0) quit - Abandona a linha de comandos do GRUB. reboot - Reinicia o computador. boot - Efetua o carregamento atravs das opes definidas via linha de comando. Suponha um sistema operacional Linux instalado com o /boot (os seus arquivos de inicializao) na partio /dev/sda1 (hd0,0) e o diretrio / na partio /dev/sda2 (hd0,1) utilizando o kernel 2.6.18-6-686. Levando em conta essas configuraes podemos passar os seguintes comandos na linha de comandos para efetuar o boot (a inicializao do sistema) pela linha de comando do GRUB. grub> root (hd0,0) grub> kernel /vmlinuz-2.6.18-6-686 root=/dev/sda1 ro vga=6 grub> initrd /initrd.img-2.6.18-6-686 grub> boot

Grub Version 2
O Grub2 uma evoluo da verso Legacy do Grub. O Grub, na verso 2, foi totalmente reescrito para atender normas de desenvolvimento, como o Filesystem Hierarchy Standard (FHS http://proton.pathname.com/fhs/), e pelo fato de ser desenvolvido de forma modular e prover maior portabilidade.

Processo de instalao do Grub 2 Checar a verso que est usando # grub-install -v Instalar verso atual do grub2 # apt-get install grub2 grub2-splashimages

Metas atingidas pelo projeto GRUB2 em relao ao Grub Legacy: Suporte de script, como condicionais, loops, variveis e funes. Interface grfica. Carregamento dinmico de mdulos de forma a estender-se no tempo de execuo e no no tempo de compilao. Portabilidade para vrias arquiteturas. Internacionalizao. Isso inclui suporte cdigo de caracteres no ASCII, como catlogos de mensagem gettext, fontes, grficos do console, e assim por diante. Gerenciamento de memria real, para fazer o GNU GRUB mais extensvel. Modular, hierrquica, objeto quadro orientado para os sistemas de arquivo, arquivos, dispositivos, discos, terminais, os comandos, as tabelas de partio e Load de OS. Cross-platform install, que permite a instalao do GRUB de uma arquitetura diferente. O modo de recuperao salva casos que no realizam boot. Corrigir erros de design no GRUB, que no pde ser resolvido para retro-compatibilidade, t como a forma de numerao parties. Fonte: http://www.gnu.org/software/grub/grub-2.en.html Algumas diferenas entre o Grub2 e o Grub Legacy: O arquivo de configurao: /boot/grub/grub.cgf Este arquivo no deve ser editado. Para configurao do Grub2 deve-se utilizar os arquivos do dire-

17

Apostila Debian Intermedirio - Desktop Parana

trio: /etc/grub.d/ Aps a atualizao de qualquer arquivo de configurao do Grub2 necessrio regerar o grub.cfg que feita de forma dinmica com o comando # update-grub2 O Grub2, at a verso 1.96, no possui suporte ao parmetro password, ou seja, se for necessrio implementar essa camada de segurana evite utilizar o Grub2. O arquivo grub.cfg montado automaticamente a partir a execuo e concatenao dos arquivos em /etc/grub.d. Esses arquivos so afetados por algumas variveis globais contidas em /etc/defaults/grub, as principais variveis so: GRUB_DEFAULT=0 # Define qual sistema dever iniciar por padro GRUB_TIMEOUT=5 # Configura o tempo em que o sistema padro ser iniciado automaticamente GRUB_CMDLINE_LINUX="vga=788" # Inclui opes padres ao carregamento do Kernel Linux. #GRUB_TERMINAL=console # Se decomentado desabilita terminal grfico #GRUB_DISABLE_LINUX_UUID=true # Desabilita a deteco e declarao das parties por UUID Os arquivos de configurao do Grub2: /etc/grub.d/00_header: Essas configuraes so importadas (/etc/defaults/grub); /etc/grub.d/05_debian_theme: Configura o splash de inicializao; Para obter mais opes de configurao basta instalar o pacote grub2-splashimages. Para alterar a imagem de fundo do Grub2 em tempo de execu o edite a seguinte linha: if [ "$GRUB_TERMINAL" = "gfxterm" ] ; then for i in {/boot/grub,/usr/share/images/desktop-base}/Lake_mapourika_NZ.{png,tga} ; do if is_path_readable_by_grub $i ; then O arquivo com a imagem deve estar no diretrio /boot/grub ou no diretrio /usr/share/images/desktopbase . Substitua o nome Lake_mapourika_NZ pelo nome do novo arquivo com a imagem. /etc/grub.d/10_hurd: Indica a deteco do Kernel Hurd no dispositivo; /etc/grub.d/10_linux: Indica a deteco do Kernel Linux no dispositivo; /etc/grub.d/20_memtest86+: Indica /boot/memtest86+.bin para o menu do Grub2; /etc/grub.d/30_os-prober: Indicam os Sistemas Operacionais instalados; /etc/grub.d/40_custom: Personalizar o menu, neste arquivo pode-se indicar o uso de um sistema operacional MS-Windows. Exemplo de uso: menuentry "Windows XP" { insmod ntfs set root=(hd0,1) search --no-floppy --fs-uuid --set CFFCFF9EECFF7F49 chainloader +1 }

18

Apostila Debian Intermedirio - Desktop Parana

NVEIS DE EXECUO - RUNLEVEL


Os runlevels so iniciados quando o kernel executa o init, que o primeiro processo a ser executado e tem o PID igual a um, conforme figura ?????. Uma caracterstica especfica deste processo que ele no pode ser finalizado foradamente. O init l o arquivo /etc/inittab, onde esto definidos os primeiros parmetros a serem configurados, como por exemplo, qual o runlevel, quais scripts devem ser executados por quais runlevels, quantos terminais virtuais ns teremos disponveis em nossa mquina, etc.

Conhecendo os runlevels
Runlevels, ou nveis de execuo, constituem uma maneira de controlar como a mquina ser utiliza da. Cada runlevel configurado para que um determinado nmero de processos especficos estejam em execuo. Convencionalmente temos 7 (sete) nveis de runlevels do 0 ao 6, onde, por padro no Debian, o nvel zero (0) utilizado para realizar o desligamento (shutdown) normal da mquina; o nvel 6 usado para reinicializar (reboot) o sistema; o nvel 1 (modo mono usurio) o modo no qual o Kernel do Linux s carre ga os recursos necessrios para o funcionamento bsico do SO e disponibiliza apenas acesso ao superusu rio do sistema (root), de modo geral, para que este possa realizar a manuteno de algum ponto falho do sistema. Os runlevels 2 a 5 so utilizados para carga dos diferentes servios providos pelo sistema, e possu em uma caracterstica comum entre si: atuarem no modo multiusurio. Atravs do comando init podemos alterar o nvel de execuo atual do sistema operacional. Para isso, devemos usar o comando init seguido de um nmero (de 0 a 6) representando o runlevel desejado. Abaixo um exemplo de uso do comando para alterar o nvel de execuo atual do sistema: # init 3 Nos sistemas Debian, aps a instalao do sistema operacional, os runlevels de 2 a 5 so todos iguais e apenas iniciam aplicaes. Ento, executando o comando acima, o script ir verificar que todos os servios j esto carregados e no far nada. IDENTIFICANDO O RUNLEVEL EM UTILIZAO Temos basicamente duas formas de se identificar o runlevel carregado. Uma delas atravs do co mando: # ps aux | grep init root 1 0.0 0.0 1984 688 ? Ss 07:45 0:01 init [2] root 4745 0.0 0.0 3264 816 pts/0 S+ 09:58 0:00 grep init Neste exemplo, o nvel de execuo atual do SO o 2, representado pela indicao init [2] pre sente na primeira linha da sada do comando. Outra forma de se identificar o runlevel carregado atravs do comando runlevel, como no exemplo abaixo: # runlevel N2 O N 2 da sada do comando runlevel, indica que o nvel de execuo atual do sistema o 2, se voc mudar o nvel para outro qualquer, o nvel anterior ser mostrado no lugar do N exibido na sada acima. Desta forma possvel verificar qual foi o ltimo e o corrente.

19

Apostila Debian Intermedirio - Desktop Parana

O ARQUIVO /ETC/INITTAB Durante o processo de inicializao, o init utiliza durante sua execuo o arquivo /etc/inittab para configurar cada runlevel do sistema. Este o principal arquivo de configurao do boot do sistema. Nele so especificadas diversas opes que definiro o perfil do sistema. A configurao deste arquivo, apesar de algumas variaes, obedece basicamente o seguinte padro: id:runlevel:ao:diretrio id - identificador "exclusivo" para cada linha do arquivo. Deve estar limitado a 2 caracteres. runlevel - identifica em qual runlevel esta linha deve ser executada. Pode definir um ou mais de um runlevels. ao - identifica a ao a ser tomada. O campo ao pode ter um dos seguintes valores: respawn - O processo ser reiniciado assim que for finalizado; wait - O processo ser executado quando o sistema entrar no runlevel especificado e o siste ma aguardar a finalizao deste processo; once - O processo ser executado quando o sistema entrar no runlevel especificado; boot - O processo ser executado durante o boot do sistema; bootwait - O processo ser executado durante o boot do sistema, que aguardar a sua finali zao para continuar; off - No faz nada; initdefault - especifica o runlevel que o sistema dever entrar aps o boot do sistema. Caso este parmetro no seja informado, o init ir questionar qual o runlevel a ser utilizado. O campo processo ignorado. sysinit - O processo ser executado durante o boot do sistema, antes de qualquer referencia dos parmetros boot ou bootwait. O campo runlevel ignorado; powerwait - O processo ser executado quando o init receber uma mensagem de falha na alimentao eltrica da mquina. O init aguardar a finalizao deste processo; powerfail - Idntico ao powerfail, com a diferena de que o init no aguardar a finalizao deste processo; powerokwait - O processo ser executado quando o init for informado de que a alimentao eltrica foi restabelecida; powerfailnow - O processo ser executado quando o init for informado de que a alimentao eltrica da mquina (bateria, no-break) est quase vazia, e que a energia est falhando. ctrlaltdel - O processo ser executado quando o init receber o sinal SIGINT, que significa que a sequencia de teclas <Ctrl>+<Alt>+<Del> foi pressionada; kbrequest - O processo ser executado quando o init receber um sinal do driver do teclado informando que uma sequencia especial de teclas foi pressionada. A documentao para esta funo ainda no est completa, para maiores informaes veja o pacote kbd-x-xx.

Diretrio caminho completo do diretrio onde se encontram os scripts a serem executados.

20

Apostila Debian Intermedirio - Desktop Parana

Analisando as principais linhas de configurao do arquivo /etc/inittab. # /etc/inittab: init(8) configuration. # $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $ # A linha abaixo esta definindo o runlevel padro. id:2:initdefault: # Primeira ao a ser executada durante o processo de boot, com inicializao dos scripts de # caregamento do kernel. si::sysinit:/etc/init.d/rcS # O que ser carregado no modo mono-usurio ~~:S:wait:/sbin/sulogin # Runlevel 0 desligar a mquina. # Runlevel 1 modo mono-usurio (single-user). # Runlevels 2-5 Modo Multiusurio (multi-user). # Runlevel 6 reinicializao do sistema. # As linhas abaixo configuram cada runlevel para serem executados quando o sistema entrar no runlevel especifico. l0:0:wait:/etc/init.d/rc 0 l1:1:wait:/etc/init.d/rc 1 l2:2:wait:/etc/init.d/rc 2 l3:3:wait:/etc/init.d/rc 3 l4:4:wait:/etc/init.d/rc 4 l5:5:wait:/etc/init.d/rc 5 l6:6:wait:/etc/init.d/rc 6 # Inicializando os terminais (tty) 1:2345:respawn:/sbin/getty 38400 tty1 2:23:respawn:/sbin/getty 38400 tty2 3:23:respawn:/sbin/getty 38400 tty3 4:23:respawn:/sbin/getty 38400 tty4 5:23:respawn:/sbin/getty 38400 tty5 6:23:respawn:/sbin/getty 38400 tty6

21

Apostila Debian Intermedirio - Desktop Parana

ENTENDENDO O FUNCIONAMENTO DOS RUNLEVELS Ao carregamos um runlevel simplesmente executamos um conjunto de scripts localizados no /etc/ini.d/ com uma determinada sequencia de prioridade, atravs de links simblicos existentes nos diretrios /etc/rc?.d. Na distribuio GNU/Debian, os diretrios /etc/rc[0-6].d contm as ligaes simblicas para arquivos em /etc/init.d, que so acionados pelo init no nvel de execuo correspondente. Por exemplo, o arquivo S10sysklogd em /etc/rc2.d, um link simblico para /etc/init.d/sysklogd. O nome desses links simblicos seguem um padro atravs do qual definido se o link simblico iniciar ou interromper a execuo de um servio em /etc/init.d, alm indicar a prioridade para execuo do script. Segue abaixo descrio sobre os padres de nomenclatura dos links. Se um link iniciado com a letra K (kill), quer dizer que o servio ser interrompido naquele nvel de execuo. O que ele faz na verdade, executar o script do servio em questo em /etc/init.d seguido da opo stop. Se um link iniciado com a letra S (start), quer dizer que o servio ser iniciado naquele nvel de exe cuo. Isto far com que o script do servio em questo em /etc/init.d seja invocado seguido da opo start. Por ordem, os links com a letra K so executado primeiro seguido pelos que iniciam pela letra S. A ordem com que so executados, depende tambm do valor numrico que acompanha o link, quanto menor o nmero antes ser executado, por exemplo, os seguintes arquivos so executados em sequencia: S10sysklogd S12kerneld S20inetd S20linuxlogo S20logoutd S20lprng S89cron S99xdm Note, que os arquivos que iniciam com o mesmo nmero (S20*), so executados por ordem alfabtica. INSERINDO/ REMOVENDO SCRIPTS DO RUNLEVEL A forma mais indicada para inserir ou remover scripts nos runlevels utilizando a ferramenta upda te-rc.d. Para reconfigurarmos um script de inicializao ou um novo script incluso no diretrio /etc/init.d que deve ser iniciado automaticamente basta usar: # update-rc.d nome start/stop NN runlevel . (...) Onde nome o nome do script em /etc/init.d, a opo start para iniciar ou stop para parar o proces so, NN faz referncia ordem de execuo (prioridade) e o runlevel em que deseja incluir ou reconfigurar o scrip. O ponto faz parte da sintaxe do comando para separar as configuraes realizadas atravs do upda te-rc.d, tambm havendo a necessidade de se colocar um ponto no final do comando. A Seguir alguns exemplos de uso: Vamos imaginar que criamos o script firewall.sh no /etc/init.d. Queremos que ele seja iniciado (argumento "start" passado) no runlevel de boot padro (2) e fechado (argumento "stop") quando se desliga ou
22

Apostila Debian Intermedirio - Desktop Parana

reinicia (runlevels 0 e 6) e queremos que ele seja um dos ltimos processos a ser iniciado/parado. Para isso devemos utilizar o comando update-rc.d com a seguinte sintaxe: # update-rc.d firewall.sh start 97 2 . stop 97 0 . stop 97 6 . Uma forma mais fcil de se utilizar o update-rc.d com a utilizao das configuraes padro, ou seja, iniciar nos runlevels 2, 3, 4 e 5 e finalizar nos 0, 1 e 6. Para isso basta usar o comando: # update-rc.d ssh defaults Tambm possvel utilizar a opo defaults do comando update-rc.d alterando sua prioridade de exe cuo. Para isso basta aps o parmetro defaults informar tambm o numero referente a prioridade deseja da. # update-rc.d ssh defaults 37 Para removermos um servio basta utilizarmos o comando update-rc.d com a sintaxe a se guir: # update-rc.d -f ssh remove Utilizando junto ao comando update-rc.d o parmetro -n somente ser mostrado na tela o resultado do comando, no sendo gravada nenhuma alterao nos runlevels. # update-rc.d -n ssh defaults

23