Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Linux foca intermediario, Notas de estudo de Informática

Apostila - Apostila

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 19/02/2009

julio-cesar-santos-8
julio-cesar-santos-8 🇧🇷

4 documentos

Pré-visualização parcial do texto

Baixe Linux foca intermediario e outras Notas de estudo em PDF para Informática, somente na Docsity! Guia Foca GNU/Linux Gleydson Mazioli da Silva <gleydson@guiafoca.org> Versão 5.60 - terça, 27 de novembro de 2007 Resumo Este documento tem por objetivo ser uma referência ao aprendizado do usuário e um guia de consulta, operação e configuração de sistemas Linux (e outros tipos de *ix). A última ver- são deste guia pode ser encontrada na Página Oficial do Foca GNU/Linux (http://www. guiafoca.org). Novas versões são lançadas com uma freqüência mensal e você pode rece- ber avisos de novos lançamentos deste guia preenchendo um formulário na página Web. Nota de Copyright Copyright © 1999-2007 - Gleydson Mazioli da Silva. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; A copy of the license is included in the section entitled “GNU Free Do- cumentation License”. SUMÁRIO iii 5.5.4 Convertendo de EXT3 para EXT2 . . . . . . . . . . . . . . . . . . . . . . . . 51 5.6 Sistema de arquivos reiserfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.6.1 Criando um sistema de arquivos reiserfs em uma partição . . . . . . . . . 52 5.6.2 Criando um sistema de arquivos reiserfs em um arquivo . . . . . . . . . . 53 5.6.3 Nomeando uma partição de disco . . . . . . . . . . . . . . . . . . . . . . . 53 5.6.4 Criando o diretório especial lost+found . . . . . . . . . . . . . . . . . . 54 5.6.5 dumpe2fs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 5.6.6 Partição EXT2 ou Arquivo? . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 5.7 Partição Linux Swap (Memória Virtual) . . . . . . . . . . . . . . . . . . . . . . . . 55 5.7.1 Criando sistema de arquivos Swap em uma partição . . . . . . . . . . . . 55 5.7.2 Criando um sistema de arquivos Swap em um arquivo . . . . . . . . . . . 56 5.7.3 Partição Swap ou Arquivo? . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 5.8 O sistema de arquivos /proc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 5.9 LVM - Logical Volume Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5.9.1 Representação gráfica do LVM . . . . . . . . . . . . . . . . . . . . . . . . . 59 5.9.2 Performance do LVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 5.9.3 Colocando LVM em seu sistema . . . . . . . . . . . . . . . . . . . . . . . . 60 5.9.4 Aumentando o tamanho de um volume lógico . . . . . . . . . . . . . . . . 61 5.9.5 Diminuindo um volume lógico . . . . . . . . . . . . . . . . . . . . . . . . . 62 5.10 Formatando disquetes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 5.10.1 Formatando disquetes para serem usados no Linux . . . . . . . . . . . . . 62 5.10.2 Formatando disquetes compatíveis com o DOS/Windows . . . . . . . . . 63 5.10.3 Programas de Formatação Gráficos . . . . . . . . . . . . . . . . . . . . . . . 63 5.11 Pontos de Montagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 5.12 Identificação de discos e partições em sistemas Linux . . . . . . . . . . . . . . . . 64 5.13 Montando (acessando) uma partição de disco . . . . . . . . . . . . . . . . . . . . . 65 5.13.1 fstab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 5.14 Desmontando uma partição de disco . . . . . . . . . . . . . . . . . . . . . . . . . . 68 6 Gerenciadores de Partida (boot loaders) 69 6.1 LILO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 SUMÁRIO iv 6.1.1 Criando o arquivo de configuração do LILO . . . . . . . . . . . . . . . . . 69 6.1.2 Opções usadas no LILO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 6.1.3 Um exemplo do arquivo de configuração lilo.conf . . . . . . . . . . . . . . 74 6.2 GRUB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 6.2.1 Como o GRUB trabalha com discos e partições . . . . . . . . . . . . . . . . 75 6.2.2 Instalando o GRUB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 6.2.3 No disco flexível (somente linha de comando) . . . . . . . . . . . . . . . . 77 6.2.4 No disco flexível (com interface de menu) . . . . . . . . . . . . . . . . . . . 77 6.2.5 Opções do arquivo de configuração . . . . . . . . . . . . . . . . . . . . . . 78 6.2.6 Um exemplo de arquivo de configuração . . . . . . . . . . . . . . . . . . . 80 6.2.7 Usando a linha de comandos do GRUB . . . . . . . . . . . . . . . . . . . . 82 6.2.8 Removendo o GRUB do MBR . . . . . . . . . . . . . . . . . . . . . . . . . . 83 6.2.9 Como obter informações mais detalhadas . . . . . . . . . . . . . . . . . . . 83 6.3 Parâmetros de inicialização passados ao kernel . . . . . . . . . . . . . . . . . . . . 83 6.4 LOADLIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 6.4.1 Opções do LOADLIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 6.4.2 Exemplo de inicialização com o LOADLIN . . . . . . . . . . . . . . . . . . 85 6.5 syslinux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 6.5.1 Criando um disquete de inicialização com o syslinux . . . . . . . . . . . . 86 6.5.2 O arquivo SYSLINUX.CFG . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 6.5.3 Formatação dos arquivos de tela do syslinux . . . . . . . . . . . . . . . . . 87 7 Execução de programas 89 7.1 Tipos de Execução de comandos/programas . . . . . . . . . . . . . . . . . . . . . 89 7.2 Executando programas em seqüência . . . . . . . . . . . . . . . . . . . . . . . . . 90 7.3 ps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 7.4 top . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 7.5 Controle de execução de processos . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 7.5.1 Interrompendo a execução de um processo . . . . . . . . . . . . . . . . . . 91 7.5.2 Parando momentaneamente a execução de um processo . . . . . . . . . . 92 7.5.3 jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 SUMÁRIO v 7.5.4 fg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 7.5.5 bg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 7.5.6 kill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 7.5.7 killall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 7.5.8 killall5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 7.5.9 Sinais do Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 7.6 nohup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 7.7 nice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 7.8 fuser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 7.9 tload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 7.10 vmstat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 7.11 pidof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 7.12 pstree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 7.13 Fechando um programa quando não se sabe como sair . . . . . . . . . . . . . . . 98 7.14 Eliminando caracteres estranhos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 8 Comandos para manipulação de diretório 101 8.1 ls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 8.2 cd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 8.3 pwd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 8.4 mkdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 8.5 rmdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 9 Comandos para manipulação de Arquivos 105 9.1 cat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 9.2 tac . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 9.3 rm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 9.4 cp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 9.5 mv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 SUMÁRIO viii 12.4 newgrp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 12.5 userdel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 12.6 groupdel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 12.7 lastlog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 12.8 last . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 12.9 sg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 12.10Adicionando o usuário a um grupo extra . . . . . . . . . . . . . . . . . . . . . . . 142 12.11chfn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 12.12id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 12.13logname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 12.14users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 12.15groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 13 Permissões de acesso a arquivos e diretórios 145 13.1 Donos, grupos e outros usuários . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 13.2 Tipos de Permissões de acesso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 13.3 Etapas para acesso a um arquivo/diretório . . . . . . . . . . . . . . . . . . . . . . 147 13.4 Exemplos práticos de permissões de acesso . . . . . . . . . . . . . . . . . . . . . . 147 13.4.1 Exemplo de acesso a um arquivo . . . . . . . . . . . . . . . . . . . . . . . . 147 13.4.2 Exemplo de acesso a um diretório . . . . . . . . . . . . . . . . . . . . . . . 148 13.5 Permissões de Acesso Especiais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 13.6 A conta root . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 13.7 chmod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 13.8 chgrp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 13.9 chown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 13.10Modo de permissão octal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 13.11umask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 14 Redirecionamentos e Pipe 157 14.1 > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 14.2 >> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 14.3 < . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 SUMÁRIO ix 14.4 << . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 14.5 | (pipe) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 14.6 Diferença entre o “|” e o “>” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 14.7 tee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 15 Rede 161 15.1 O que é uma rede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 15.2 Protocolo de Rede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 15.3 Endereço IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 15.3.1 Classes de Rede IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 15.3.2 Para instalar uma máquina usando o Linux em uma rede existente . . . . 163 15.3.3 Endereços reservados para uso em uma rede Privada . . . . . . . . . . . . 164 15.4 Interface de rede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 15.4.1 A interface loopback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 15.4.2 Atribuindo um endereço de rede a uma interface (ifconfig) . . . . . . . . . 165 15.5 Roteamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 15.5.1 Configurando uma rota no Linux . . . . . . . . . . . . . . . . . . . . . . . . 166 15.6 Resolvedor de nomes (DNS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 15.6.1 O que é um nome? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 15.6.2 Arquivos de configuração usados na resolução de nomes . . . . . . . . . . 169 15.6.3 Executando um servidor de nomes . . . . . . . . . . . . . . . . . . . . . . . 171 15.7 Serviços de Rede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 15.7.1 Serviços iniciados como Daemons de rede . . . . . . . . . . . . . . . . . . 172 15.7.2 Serviços iniciados através do inetd . . . . . . . . . . . . . . . . . . . . . . . 172 15.8 Segurança da Rede e controle de Acesso . . . . . . . . . . . . . . . . . . . . . . . . 175 15.8.1 /etc/ftpusers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 15.8.2 /etc/securetty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 15.8.3 O mecanismo de controle de acessos tcpd . . . . . . . . . . . . . . . . . . . 176 15.8.4 Firewall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 15.9 Outros arquivos de configuração relacionados com a rede . . . . . . . . . . . . . . 180 15.9.1 /etc/services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 15.9.2 /etc/protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 SUMÁRIO x 16 Kernel e Módulos 183 16.1 O Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 16.2 Módulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 16.3 Como adicionar suporte a Hardwares e outros dispositivos no kernel . . . . . . . 184 16.4 kmod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 16.5 lsmod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 16.6 insmod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 16.7 rmmod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 16.8 modprobe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 16.9 depmod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 16.10modconf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 16.11Recompilando o Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 16.12Arquivos relacionados com o Kernel e Módulos . . . . . . . . . . . . . . . . . . . 192 16.12.1 /etc/modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 16.12.2 modules.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 16.13Aplicando Patches no kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 17 Arquivos e daemons de Log 195 17.1 Formato do arquivo de log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 17.2 Daemons de log do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 17.2.1 syslogd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 17.2.2 klogd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 17.3 logger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 18 Compactadores 201 18.1 O que fazem os compactadores/descompactadores? . . . . . . . . . . . . . . . . . 201 18.1.1 Tipos de compactação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 18.2 Extensões de arquivos compactados . . . . . . . . . . . . . . . . . . . . . . . . . . 203 18.3 gzip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 18.4 zip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 18.5 unzip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 18.6 tar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 18.7 bzip2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 18.8 rar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 SUMÁRIO xiii 22 Impressão 241 22.1 Portas de impressora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 22.2 Imprimindo diretamente para a porta de impressora . . . . . . . . . . . . . . . . . 241 22.3 Imprimindo via spool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 22.4 Impressão em modo gráfico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 22.4.1 Ghost Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 22.5 Magic Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 22.5.1 Instalação e configuração do Magic Filter . . . . . . . . . . . . . . . . . . . 245 22.5.2 Outros detalhes técnicos sobre o Magic Filter . . . . . . . . . . . . . . . . . 245 23 Configuração do sistema 249 23.1 Acentuação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 23.1.1 Acentuação em modo Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 23.1.2 Acentuação em modo gráfico . . . . . . . . . . . . . . . . . . . . . . . . . . 251 23.2 Número de Cores do ambiente gráfico . . . . . . . . . . . . . . . . . . . . . . . . . 251 23.2.1 Configurando o número de cores para quem inicia pelo prompt . . . . . . 252 23.2.2 Configurando o número de cores para quem inicia pelo XDM . . . . . . . 253 23.2.3 Ajustando o alinhamento da imagem no X e outras configurações . . . . . 253 24 Executando tarefas diversas no Linux 255 24.1 Gravando CDs e DVDs no Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 24.1.1 Gravando CDs / DVDs de dados . . . . . . . . . . . . . . . . . . . . . . . . 255 24.1.2 Gravando um CD de audio . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 24.1.3 Cópia de CD para CD no mesmo gravador . . . . . . . . . . . . . . . . . . 257 24.1.4 Gravação massiva de CDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 24.1.5 Gravação de CDs diretamente através de arquivos mp3 ou Ogg . . . . . . 258 24.1.6 Backup de dados para 1 ou mais CDs . . . . . . . . . . . . . . . . . . . . . 258 24.1.7 Aplicações gráficas para gravação de CDs . . . . . . . . . . . . . . . . . . . 258 24.1.8 Criar a capa de frente e verso do CD/DVD . . . . . . . . . . . . . . . . . . 258 24.2 Executando vídeos DIVX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 24.3 Assistindo DVDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 24.4 Convertendo músicas no formato wav para mp3 . . . . . . . . . . . . . . . . . . . 259 24.5 Convertendo músicas do formato mp3 para cdr . . . . . . . . . . . . . . . . . . . 259 SUMÁRIO xiv 25 Compilação 261 25.1 O que é compilação? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 25.2 Compilador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 26 Manutenção do Sistema 263 26.1 Checagem dos sistemas de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . 263 26.1.1 fsck.ext2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 26.2 reiserfsck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 26.3 fsck.minix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 26.4 badblocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 26.5 defrag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 26.6 Verificando e marcando setores danificados em um HD . . . . . . . . . . . . . . . 267 26.7 Limpando arquivos de LOGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 26.8 Recuperando partições apagadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 26.9 Recuperando a senha de root perdida . . . . . . . . . . . . . . . . . . . . . . . . . 269 26.10Tarefas automáticas de manutenção do sistema . . . . . . . . . . . . . . . . . . . . 270 26.11cron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 26.11.1 O formato de um arquivo crontab . . . . . . . . . . . . . . . . . . . . . . . 271 26.12at . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 27 Principais arquivos de configuração do diretório /etc 275 27.1 Diretório /etc/alternatives . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 27.2 Arquivo /etc/default/devpts . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 27.3 Arquivo /etc/default/rcS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 27.4 Arquivo /etc/console-tools/config . . . . . . . . . . . . . . . . . . . . . . 276 27.5 Diretório /etc/menu-methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 27.6 Arquivo /etc/menu-methods/translate_menus . . . . . . . . . . . . . . . . 276 27.7 Arquivo /etc/networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 27.8 Arquivo /etc/network/interfaces . . . . . . . . . . . . . . . . . . . . . . . . 276 27.9 Arquivo /etc/networks/options . . . . . . . . . . . . . . . . . . . . . . . . . 278 27.10Diretório /etc/pam.d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 27.11Diretório /etc/ppp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 SUMÁRIO xv 27.12Diretório /etc/security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 27.13Arquivo /etc/security/access.conf . . . . . . . . . . . . . . . . . . . . . . 279 27.14Arquivo /etc/security/limits.conf . . . . . . . . . . . . . . . . . . . . . . 279 27.15Arquivo /etc/crontab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 27.16Arquivo /etc/fstab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 27.17Arquivo /etc/group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 27.18Arquivo /etc/gshadow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 27.19Arquivo /etc/host.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 27.20Arquivo /etc/hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 27.21Arquivo /etc/hosts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 27.22Arquivo /etc/hosts.allow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 27.23Arquivo /etc/hosts.deny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 27.24Arquivo /etc/hosts.equiv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 27.25Arquivo /etc/inetd.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 27.26Arquivo /etc/inittab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 27.27Arquivo /etc/inputrc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 27.28Arquivo /etc/issue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 27.29Arquivo /etc/issue.net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 27.30Arquivo /etc/lilo.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 27.31Arquivo /etc/login.defs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 27.32Arquivo /etc/modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 27.33Arquivo /etc/modules.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 27.34Arquivo /etc/motd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 27.35Arquivo /etc/mtab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 27.36Arquivo /etc/networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 27.37Arquivo /etc/passwd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 27.38Arquivo /etc/printcap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 27.39Arquivo /etc/protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 27.40Arquivo /etc/resolv.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 27.41Arquivo /etc/serial.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 27.42Arquivo /etc/services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 SUMÁRIO xviii 31.9 Documentação de Programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 31.10FAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 31.11RFC’s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 31.12Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353 31.12.1 Páginas Internet de Referência . . . . . . . . . . . . . . . . . . . . . . . . . 354 31.12.2 Listas de discussão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357 31.13Netiqueta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358 31.13.1 Recomendações Gerais sobre a Comunicação Eletrônica . . . . . . . . . . 359 31.13.2 Email . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 31.13.3 Talk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 31.13.4 ICQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 31.13.5 Listas de Discussão via Email . . . . . . . . . . . . . . . . . . . . . . . . . . 361 32 Apêndice 365 32.1 Sobre este guia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 32.2 Sobre o Autor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 32.3 Referências de auxílio ao desenvolvimento do guia . . . . . . . . . . . . . . . . . 366 32.4 Onde encontrar a versão mais nova do guia? . . . . . . . . . . . . . . . . . . . . . 366 32.5 Colaboradores do Guia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 32.6 Marcas Registradas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368 32.7 Futuras versões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368 32.8 Chave Pública PGP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368 1 Capítulo 1 Introdução Bem vindo ao guia Foca GNU/Linux. O nome FOCA significa FOnte de Consulta e Aprendizado. Este guia é dividido em 3 níveis de aprendizado e versão que esta lendo agora contém: • Intermediário Entre o conteúdo do guia, você encontrará: • Explicações necessárias para conhecer, operar, configurar, desenvolver, personalizar seu sistema Linux. • Uma lista de aplicativos clientes para serem usados em seu sistema GNU/Linux, com suas características, equipamento mínimo requerido e espaço em disco recomendado para instalação. • Particionamento de disco • Criação de partições e arquivos contendo o sistema de arquivos ext2, ext3, reiserfs ou xfs (para gravação de arquivos e diretórios) e swap (memória virtual) e as vanta- gens/desvantagens de se utilizar um arquivo ou partição para armazenamento de da- dos. • Compilação de programas/kernel, com explicações sobre cada uma das opções ajudando-o a decidir sobre a inclusão ou não. • Manipulação de módulos do kernel • Explicações sobre hardwares (Interrupções, DMA, Jumpers, Jumperless, Plug-and-Play) e como configura-los no Linux, valores padrões e resolução de conflitos entre hardwares. • Dicas de como avaliar e comprar bons hardwares para que seu computador tenha o me- lhor desempenho (também válido para DOS, Windows e outras plataformas). Desta ma- neira você saberá porque alguns dispositivos de boa qualidade, como placas de rede, custam até 3 vezes mais caro que outras e o que a placa traz de especial para ter este diferencial. Capítulo 1. Introdução 2 • Como modificar facilmente o idioma usado em seu sistema (localização) para o modo texto e modo gráfico. • Utilização de compactadores de arquivos • Mais opções para os comandos existentes na versão Iniciante do guia e novos comandos. • Conhecer os arquivos de configuração e arquivos básicos de segurança, entendendo para que eles servem e como usa-los. • Dicas de como saber escolher bons periféricos para uso no GNU/Linux e outros sistemas operacionais • Manutenção básica do computador (verificação do disco, desfragmentação) e manuten- ção automática feita através dos programas de e scripts configurados. • Introdução a rede no Linux (com a configuração de dispositivos de rede, etc.). • Configurações básicas de segurança de Rede • Gerenciadores de inicialização (boot), o que são e como funcionam e como criar um ar- quivo de inicialização para inicializar o GNU/Linux pelo disco rígido ou mais de um Sistema Operacional. • Criação de Memória virtual no disco rígido e em arquivo. • Os materiais contidos na versão intermediário são ideais para quem já tem um conheci- mento básico do sistema GNU/Linux mas que deseja se aprofundar neste sistema conhe- cendo os arquivos necessários para o funcionamento do GNU/Linux, como modifica-los e como estas modificações afetam o funcionamento do sistema. Para melhor organização, dividi o guia em 3 versões: Iniciante, Intermediário e Avançado. Sendo que a versão Iniciante é voltada para o usuário que não tem nenhuma experiência no GNU/Linux. A última versão deste guia pode ser encontrada em: Página Oficial do guia Foca GNU/Linux (http://www.guiafoca.org). Caso tiver alguma sugestão, correção, crítica para a melhoria deste guia, envie um e-mail para <gleydson@guiafoca.org>. O Foca GNU/Linux é atualizado freqüentemente, por este motivo recomendo que preencha a ficha do aviso de atualizações na página web em Página Oficial do guia Foca GNU/Linux (http://www.guiafoca.org) no fim da página principal. Após preencher a ficha do aviso de atualizações, você receberá um e-mail sobre o lançamento de novas versões do guia e o que foi modificado, desta forma você poderá decidir em copia-la caso a nova versão contenha modificações que considera importantes. Venho recebendo muitos elegios de pessoas do Brasil (e de paises de fora também) elogiando o trabalho e a qualidade da documentação. Agradeço a todos pelo apoio, tenham certeza que Capítulo 1. Introdução 5 1.3 O Linux O Linux é um sistema operacional criado em 1991 por Linus Torvalds na universidade de Hel- sinki na Finlândia. É um sistema Operacional de código aberto distribuído gratuitamente pela Internet. Seu código fonte é liberado como Free Software (software livre), sob licença GPL, o aviso de copyright do kernel feito por Linus descreve detalhadamente isto e mesmo ele não pode fechar o sistema para que seja usado apenas comercialmente. Isto quer dizer que você não precisa pagar nada para usar o Linux, e não é crime fazer cópias para instalar em outros computadores, nós inclusive incentivamos você a fazer isto. Ser um sistema de código aberto pode explicar a performance, estabilidade e velocidade em que novos recursos são adicionados ao sistema. Para rodar o Linux você precisa, no mínimo, de um computador 386 SX com 2 MB de memória (para um kernel até a série 2.2.x) ou 4MB (para kernels 2.4 e 2.6) e 100MB disponíveis em seu disco rígido para uma instalação básica e funcional. O sistema segue o padrão POSIX que é o mesmo usado por sistemas UNIX e suas variantes. Assim, aprendendo o Linux você não encontrará muita dificuldade em operar um sistema do tipo UNIX, FreeBSD, HPUX, SunOS, etc., bastando apenas aprender alguns detalhes encontrados em cada sistema. O código fonte aberto permite que qualquer pessoa veja como o sistema funciona (útil para aprendizado), corrija alguma problema ou faça alguma sugestão sobre sua melhoria, esse é um dos motivos de seu rápido crescimento, do aumento da compatibilidade de periféricos (como novas placas sendo suportadas logo após seu lançamento) e de sua estabilidade. Outro ponto em que ele se destaca é o suporte que oferece a placas, CD-Roms e outros tipos de dispositivos de última geração e mais antigos (a maioria deles já ultrapassados e sendo com- pletamente suportados pelo sistema operacional). Este é um ponto forte para empresas que desejam manter seus micros em funcionamento e pretendem investir em avanços tecnológicos com as máquinas que possui. Hoje o Linux é desenvolvido por milhares de pessoas espalhadas pelo mundo, cada uma fazendo sua contribuição ou mantendo alguma parte do kernel gratuitamente. Linus Torvalds ainda trabalha em seu desenvolvimento e na coordenação dos grupos de trabalho do kernel. O suporte ao sistema também se destaca como sendo o mais eficiente e rápido do que qualquer programa comercial disponível no mercado. Existem centenas de consultores especializados espalhados ao redor do mundo. Você pode se inscrever em uma lista de discussão e relatar sua dúvida ou alguma falha, e sua mensagem será vista por centenas de usuários na Internet e algum irá te ajudar ou avisará as pessoas responsáveis sobre a falha encontrada para devida correção. Para detalhes, veja ‘Listas de discussão’ on page 357. 1.3.1 Algumas Características do Linux • É livre e desenvolvido voluntariamente por programadores experientes, hackers, e con- tribuidores espalhados ao redor do mundo que tem como objetivo a contribuição para Capítulo 1. Introdução 6 a melhoria e crescimento deste sistema operacional. Muitos deles estavam cansados do excesso de propaganda (Marketing) e baixa qualidade de sistemas comerciais existentes • Também recebe apoio de grandes empresas como IBM, Sun, HP, etc. para seu desenvol- vimento • Convivem sem nenhum tipo de conflito com outros sistemas operacionais (com o DOS, Windows, OS/2) no mesmo computador. • Multitarefa real • Multiusuário • Suporte a nomes extensos de arquivos e diretórios (255 caracteres) • Conectividade com outros tipos de plataformas como Apple, Sun, Macintosh, Sparc, Alpha, PowerPc, ARM, Unix, Windows, DOS, etc. • Utiliza permissões de acesso a arquivos, diretórios e programas em execução na memória RAM. • Proteção entre processos executados na memória RAM • Suporte a mais de 63 terminais virtuais (consoles) • Modularização - O Linux somente carrega para a memória o que é usado durante o processamento, liberando totalmente a memória assim que o programa/dispositivo é finalizado • Devido a modularização, os drivers dos periféricos e recursos do sistema podem ser car- regados e removidos completamente da memória RAM a qualquer momento. Os drivers (módulos) ocupam pouco espaço quando carregados na memória RAM (cerca de 6Kb para a Placa de rede NE 2000, por exemplo) • Não há a necessidade de se reiniciar o sistema após a modificar a configuração de qual- quer periférico ou parâmetros de rede. Somente é necessário reiniciar o sistema no caso de uma instalação interna de um novo periférico, falha em algum hardware (queima do processador, placa mãe, etc.). • Não precisa de um processador potente para funcionar. O sistema roda bem em com- putadores 386Sx 25 com 4MB de memória RAM (sem rodar o sistema gráfico X, que é recomendado 32MB de RAM). Já pensou no seu desempenho em um Pentium, Xeon, ou Athlon? ;-) • Suporte nativo a múltiplas CPUs, assim processadores como Dual Core Athlon Duo, Quad Core tem seu poder de processamento integralmente aproveitado. • Suporte nativo a dispositivos SATA, PATA, Fiber Channel • Suporte nativo a virtualização, onde o Linux se destaca como plataforma preferida para execução de outros sistemas operacionais. • O crescimento e novas versões do sistema não provocam lentidão, pelo contrário, a cada nova versão os desenvolvedores procuram buscar maior compatibilidade, acrescentar recursos úteis e melhor desempenho do sistema (como o que aconteceu na passagem do kernel 2.0.x para 2.2.x, da 2.2.x para a 2.4.x). • Não é requerido pagamento de licença para usa-lo. O GNU/Linux é licenciado de acordo com os termos da GPL. • Acessa corretamente discos formatados pelo DOS, Windows, Novell, OS/2, NTFS, SunOS, Amiga, Atari, Mac, etc. • O LINUX NÃO É VULNERÁVEL A VÍRUS! Devido a separação de privilégios entre pro- cessos e respeitadas as recomendações padrão de política de segurança e uso de contas privilegiadas (como a de root, como veremos adiante), programas como vírus tornam- Capítulo 1. Introdução 7 se inúteis pois tem sua ação limitada pelas restrições de acesso do sistema de arquivos e execução. Qualquer programa (nocivo ou não) poderá alterar partes do sistema que possui permissões (será abordado como alterar permissões e tornar seu sistema mais res- trito no decorrer do guia). Frequentemente são criados exploits que tentam se aproveitar de falhas existentes em sistemas desatualizados e usa-las para danificar o sistema. Er- roneamente este tipo de ataque é classificado como vírus por pessoas mal informadas e são resolvidas com sistemas bem mantidos. Em geral, usando uma boa distribuição que tenha um bom sistema de atualização, 99.9% dos problemas com exploits são resolvidos. • Rede TCP/IP mais rápida que no Windows e tem sua pilha constantemente melhorada. O GNU/Linux tem suporte nativo a redes TCP/IP e não depende de uma camada in- termediária como o WinSock. Em acessos via modem a Internet, a velocidade de trans- missão é 10% maior. Jogadores do Quake ou qualquer outro tipo de jogo via Internet preferem o GNU/Linux por causa da maior velocidade do Jogo em rede. É fácil rodar um servidor Quake em seu computador e assim jogar contra vários adversários via In- ternet. • Roda aplicações DOS através do DOSEMU, QEMU, BOCHS. Para se ter uma idéia, é pos- sível dar o boot em um sistema DOS qualquer dentro dele e ao mesmo tempo usar a multitarefa deste sistema. • Roda aplicações Windows através do WINE. • Suporte a dispositivos infravermelho. • Suporte a rede via rádio amador. • Suporte a dispositivos Plug-and-Play. • Suporte a dispositivos USB. • Suporte nativo a cartões de memória • Suporte nativo a dispositivos I2C • Integração com gerenciamento de energia ACPI e APM • Suporte a Fireware. • Dispositivos Wireless. • Vários tipos de firewalls de alta qualidade e com grande poder de segurança de graça. • Roteamento estático e dinâmico de pacotes. • Ponte entre Redes, proxy arp • Proxy Tradicional e Transparente. • Possui recursos para atender a mais de um endereço IP na mesma placa de rede, sendo muito útil para situações de manutenção em servidores de redes ou para a emulação de “mais computadores” virtualmente. O servidor WEB e FTP podem estar localizados no mesmo computador, mas o usuário que se conecta tem a impressão que a rede possui servidores diferentes. • Os sistemas de arquivos usados pelo GNU/Linux (Ext3, Ext3, reiserfs, xfs, jfs) organiza os arquivos de forma inteligente evitando a fragmentação e fazendo-o um po- deroso sistema para aplicações multi-usuárias exigentes e gravações intensivas. • Permite a montagem de um servidor de publicação Web, E-mail, News, etc. com um baixo custo e alta performance. O melhor servidor Web do mercado, o Apache, é dis- tribuído gratuitamente junto com a maioria das distribuições Linux. O mesmo acontece com o Sendmail. • Por ser um sistema operacional de código aberto, você pode ver o que o código fonte (instruções digitadadas pelo programador) faz e adapta-lo as suas necessidades ou de Capítulo 1. Introdução 10 Nós não devemos aceitar a idéia de duas comunidades separadas para GNU e Linux. Ao con- trário, devemos disseminar o entendimento de que “sistemas Linux” são variantes do sistema GNU, e que os usuários destes sistemas são tanto usuários GNU como usuários Linux (usuá- rios do kernel do Linux). Usuários que têm conhecimento disto irão naturalmente dar uma olhada na filosofia GNU que fez estes sistemas existirem. Eu escrevi este artigo como um meio de fazer isto. Outra maneira é usar os termos “sistema GNU baseado em Linux (Linux-based GNU system)” ou “sistema GNU/Linux (GNU/Linux system)”, em vez de “sistema Linux”, quando você escreve sobre ou menciona este sistema. 11 Capítulo 2 Explicações Básicas Este capítulo traz explicações sobre os principais componentes existentes no computador e do sistema operacional. 2.1 Interpretador de comandos Também conhecido como “shell”. É o programa responsável em interpretar as instruções en- viadas pelo usuário e seus programas ao sistema operacional (o kernel). Ele que executa co- mandos lidos do dispositivo de entrada padrão (teclado) ou de um arquivo executável. É a principal ligação entre o usuário, os programas e o kernel. O GNU/Linux possui diversos ti- pos de interpretadores de comandos, entre eles posso destacar o bash, ash, csh, tcsh, sh, etc. Entre eles o mais usado é o bash. O interpretador de comandos do DOS, por exemplo, é o command.com. Os comandos podem ser enviados de duas maneiras para o interpretador: interativa e não-interativa: Interativa Os comandos são digitados no aviso de comando e passados ao interpretador de comandos um a um. Neste modo, o computador depende do usuário para executar uma tarefa, ou próximo comando. Não-interativa São usados arquivos de comandos criados pelo usuário (scripts) para o computador executar os comandos na ordem encontrada no arquivo. Neste modo, o computador executa os comandos do arquivo um por um e dependendo do término do comando, o script pode checar qual será o próximo comando que será executado e dar continuidade ao processamento. Este sistema é útil quando temos que digitar por várias vezes seguidas um mesmo co- mando ou para compilar algum programa complexo. O shell Bash possui ainda outra característica interessante: A completação dos nomes. Isto é feito pressionando-se a tecla TAB. Por exemplo, se digitar “ls tes” e pressionar <tab>, o Bash Capítulo 2. Explicações Básicas 12 localizará todos os arquivos que iniciam com “tes” e completará o restante do nome. Caso a completação de nomes encontre mais do que uma expressão que satisfaça a pesquisa, ou nenhuma, é emitido um beep. Se você apertar novamente a tecla TAB imediatamente depois do beep, o interpretador de comandos irá listar as diversas possibilidades que satisfazem a pesquisa, para que você possa escolher a que lhe interessa. A completação de nomes funciona sem problemas para comandos internos. Exemplo: ech (pressione TAB). ls /vm(pressione TAB) 2.2 Terminal Virtual (console) Terminal (ou console) é o teclado e tela conectados em seu computador. O GNU/Linux faz uso de sua característica multi-usuária usando os “terminais virtuais”. Um terminal virtual é uma segunda seção de trabalho completamente independente de outras, que pode ser acessada no computador local ou remotamente via telnet, rsh, rlogin, etc. No GNU/Linux, em modo texto, você pode acessar outros terminais virtuais segurando a tecla ALT e pressionando F1 a F6. Cada tecla de função corresponde a um número de terminal do 1 ao 6 (o sétimo é usado por padrão pelo ambiente gráfico X). O GNU/Linux possui mais de 63 terminais virtuais, mas apenas 6 estão disponíveis inicialmente por motivos de economia de memória RAM (cada terminal virtual ocupa aproximadamente 350 Kb de memória RAM, desative a quantidade que não estiver usando para liberar memória RAM para uso de outros programas!) . Se estiver usando o modo gráfico, você deve segurar CTRL+ ALT enquanto pressiona uma tela de <F1> a <F6>. Para voltar ao modo gráfico, pressione CTRL+ALT+ <F7>. Um exemplo prático: Se você estiver usando o sistema no Terminal 1 com o nome “joao” e desejar entrar como “root” para instalar algum programa, segure ALT enquanto pressiona <F2> para abrir o segundo terminal virtual e faça o login como “root”. Será aberta uma nova seção para o usuário “root” e você poderá retornar a hora que quiser para o primeiro terminal pressionando ALT+<F1>. 2.3 Curingas Curingas (ou referência global) é um recurso usado para especificar um ou mais arquivos ou diretórios do sistema de uma só vez. Este é um recurso permite que você faça a filtragem do que será listado, copiado, apagado, etc. São usados 4 tipos de curingas no GNU/Linux: • “*” - Faz referência a um nome completo/restante de um arquivo/diretório. • “?” - Faz referência a uma letra naquela posição. • [padrão] - Faz referência a uma faixa de caracteres de um arquivo/diretório. Padrão pode ser: 15 Capítulo 3 Hardware Hardware é tudo que diz respeito a parte física do computador. Nesta seção serão abordados assuntos relacionados com a configuração de hardwares, escolha de bons hardwares, disposi- tivos for Windows, etc. 3.1 Placa de expansão É um circuito eletrônico encaixado na placa mãe que tem por objetivo adicionar novas funcio- nalidades ao computador. Esta placa pode ser uma: • placa de som - para fazer o computador emitir sons, músicas, ligar um joystick, etc. • Placa de vídeo 3D - Para obter imagens mais rápidas para jogos e ambientes de desktop 3 dimensões • Placa de captura - Para assistir televisão/rádio e gravar a programação de TV em seu micro. • fax-modem - para enviar/receber fax, conectar-se a internet, acesso remoto, bina, etc. • rede - para permitir a comunicação com outros computadores em uma rede interna • controladora de periféricos - Para ligar discos rígidos, unidades de disquete, impressora, mouse, joystick, etc. • SCSI - Para ligar unidades de disco rígidos e periféricos de alto desempenho. • Controladora de Scanner - Para ligar um Scanner externo ao micro computador. O encaixe da placa mãe que recebe as placas de expansão são chamados de Slots. Capítulo 3. Hardware 16 3.2 Nomes de dispositivos Seria terrível se ao configurar CADA programa que utilize o mouse ou o modem precisássemos nos se referir a ele pela IRQ, I/O, etc. . . para evitar isso são usados os nomes de dispositivos. Os nomes de dispositivos no sistema GNU/Linux são acessados através do diretório /dev. Após configurar corretamente o modem, com sua porta I/O 0x2F8 e IRQ 3, ele é identificado auto- maticamente por /dev/ttyS1 (equivalente a COM2 no DOS). Daqui para frente basta se referir a /dev/ttyS1 para fazer alguma coisa com o modem. Você também pode fazer um link de /dev/ttyS1 para um arquivo chamado /dev/modem usando: ln -s /dev/ttyS1 /dev/modem, faça a configuração dos seus programas usando /dev/modem ao invés de /dev/ttyS1 e se precisar reconfigurar o seu modem e a porta serial mudar para /dev/ttyS3, será necessário somente apagar o link /dev/modem antigo e criar um novo apontando para a porta serial /dev/ttyS3. Não será necessário reconfigurar os programas que usam o modem pois eles estão usando /dev/modem que está apontando para a localização correta. Isto é muito útil para um bom gerenciamento do sistema. Abaixo uma tabela com o nome do dispositivo no GNU/Linux, portas I/O, IRQ, DMA e nome do dispositivo no DOS (os nomes de dispositivos estão localizados no diretório /dev): Dispos. Dispos. Linux DOS IRQ DMA I/O ttyS0 COM1 4 - 0x3F8 ttyS1 COM2 3 - 0x2F8 ttyS2 COM3 4 - 0x3E8 ttyS3 COM4 3 - 0x2E8 lp0 LPT1 7 3(ECP) 0x378 lp1 LPT2 5 3(ECP) 0x278 /dev/hda1 C: 14 - 0x1F0,0x3F6 /dev/hda2 D: * 14 - 0x1F0,0x3F6 /dev/hdb1 D: * 15 - 0x170,0x376 * A designação de letras de unidade do DOS não segue o padrão do GNU/Linux e depende da existência de outras unidades físicas/lógicas no computador. 3.3 Configuração de Hardware A configuração consiste em ajustar as opções de funcionamento dos dispositivos (periféricos) para comunicação com a placa mãe bem como a configuração do software correspondente para fazer acesso ao hardware. Um sistema bem configurado consiste em cada dispositivo funcio- nando com suas portas I/O, IRQ, DMA bem definidas, não existindo conflitos com outros dispositivos. Isto também permitirá a adição de novos dispositivos ao sistema sem problemas. Capítulo 3. Hardware 17 Dispositivos PCI, PCI Express, AMR, CNR possuem configuração automática de recursos de hardware, podendo apenas ser ligados na máquina para serem reconhecidos pela placa mãe. Após isso deverá ser feita a configuração do módulo do kernel para que o hardware funcione corretamente. Os parâmetros dos módulos do kernel usados para configurar dispositivos de hardware são a IRQ, DMA e I/O. Para dispositivos plug and play, como hardwares PCI, basta carregar o módulo para ter o hardware funcionando. 3.3.1 IRQ - Requisição de Interrupção Existem dois tipos básicos de interrupções: as usadas por dispositivos (para a comunicação com a placa mãe) e programas (para obter a atenção do processador). As interrupções de software são mais usadas por programas, incluindo o sistema operacional e interrupções de hardware mais usado por periféricos. Daqui para frente será explicado somente detalhes sobre interrupções de hardware. Os antigos computadores 8086/8088 (XT) usavam somente 8 interrupções de hardware ope- rando a 8 bits. Com o surgimento do AT foram incluídas 8 novas interrupções, operando a 16 bits. Os computadores 286 e superiores tem 16 interrupções de hardware numeradas de 0 a 15. No kernel 2.4 e superiores do Linux, a função APIC (Advanced Programmable Interruption Controller) permite gerenciar de forma avançada mais de 15 interrupções no sistema operacio- nal. Estas interrupções oferecem ao dispositivo associado a capacidade de interromper o que o processador estiver fazendo, pedindo atenção imediata. As interrupções do sistema podem ser visualizadas no kernel com o comando cat /proc/interrupts. Abaixo um resumo do uso mais comum das 16 interrupções de hard- ware: 0 Timer do Sistema - Fixa 01 Teclado - Fixa 02 Controlador de Interrupção Programável - Fixa. Esta interrupção é usada como ponte para a IRQ 9 e vem dos antigos processadores 8086/8088 que somente tinham 8 IRQs. Assim, pera tornar processadores 8088 e 80286 comunicáveis, a IRQ 2 é usada como um redirecionador quando se utiliza uma interrupção acima da 8. 03 Normalmente usado por /dev/ttyS1 mas seu uso depende dos dispositivos instalados em seu sistema (como fax-modem, placas de rede 8 bits, etc). 04 Normalmente usado por /dev/ttyS0 e quase sempre usada pelo mouse serial a não ser que um mouse PS2 esteja instalado no sistema. Capítulo 3. Hardware 20 DMA Barram. Uso 0 - Usada pelo circuito de refresh da memória DRAM 1 8/16 bits Normalmente usado por placas de som (canal 8 bits), porta paralela ECP, adaptadoras SCSI, placas de rede ou controladora de scanner. 2 8/16 bits Normalmente usado pela controladora de disquetes ou controladoras de tapes. 3 8/6 bits Usado pela porta paralela ECP, placa de som, controladoras de tapes, controladoras SCSI ou controladora de scanner antiga. 4 - Usada como ponte para a outra controladora de DMA (0-3) 5 16 bits Normalmente usada pela placa de som (canal 16 bits), placas controladoras SCSI, placas de rede ou controladora de scanner. 6 16 bits Placa de som (canal 16 bits), controladora de scanner ou placa de rede. 7 16 bits Placa de som (canal 16 bits), controladora de scanner ou placa de rede. Somente dispositivos ISA e derivados dele, como o EISA e VESA, usam os canais de DMA padrão. Os atuais dispositivos de alta taxa de transferência (normalmente PCI) possuem seu próprio controlador de DMA embutido, muito mais rápido do que a DMA padrão. Este con- trolador de DMA é chamado de Bus Mastering e muito usado nos discos rígidos atuais e pode atingir taxas de 33,3MB/s (no modo 2) e 66MB/s (no modo 4 - requer um cabo IDE com ater- ramento para evitar interferências de ruídos externos). Conflitos de DMA Um canal de DMA não pode ser compartilhado entre dispositivos. Ainda é possível configurar dois dispositivos para usarem um mesmo canal de DMA, desde que ele não seja usado ao mesmo tempo. Isto acontece com Scanners paralelos que compartilham a mesma porta paralela com a impressora. Se você for uma pessoa que explora os recursos de multitarefa de seu Linux e seu desempenho, evite estes tipos de dispositivos, prefira aqueles que utilizam seus próprios recursos. Quando ocorre um conflito de DMA, os dados podem ser misturados e ocorrerem coisas estra- nhas até o travamento total do sistema. Este tipo de conflito é difícil de se diagnosticar, a não ser que o técnico seja experiente o bastante e tenha desconfiado do que o problema se trata. . . 3.3.3 I/O - Porta de Entrada/Saída Cada dispositivo possui um endereço de porta. O endereço é uma localização da memória usada pelo computador para enviar dados ao dispositivo e onde o dispositivo envia dados ao computador. Ao contrários da IRQ e DMA, o dispositivo pode usar mais de uma porta de Capítulo 3. Hardware 21 Entrada/Saída ou uma faixa de endereços. Por exemplo, uma placa de som padrão usa as portas 0x220, 0x330 e 0x388, respectivamente audio digital, midi e opl3. As placas de rede normalmente transferem grandes quantidades de dados, assim ocupam uma faixa de endereços. Uma NE2000, por exemplo, ocupa a faixa de endereços 0x260 a 0x27F (0x260-0x27F). O tamanho da faixa de endereços varia de acordo com o tipo de dispositivo. Os endereços de I/O em uso no sistema podem ser visualizados com o comando cat /proc/ioports. Endereços das portas de entrada/saída não podem ser compartilhados 3.4 Hardwares configuráveis por jumpers, dip-switches, jumperless e Plug-and-Play. 3.4.1 Jumpers Hardwares configuráveis por jumpers (pinos metálicos protegidos por uma capa plástica) tem sua configuração alterada através da colocação, retirada ou mudança de posição física do pino. Este tipo de hardware, antigamente presente em placas ISA e VESA, não é mais usado atual- mente devido a configuração Plug and Play de dispositivos PCI, PCI express, etc. As disposição dos jumpers são normalmente definidas em fechado/aberto e multi-posição. Na disposição fechado/aberto, o jumper pode ou não ser colocado, definindo a configuração do dispositivo: ::|:: Esta disposição é facilmente encontrada na seleção de IRQ e I/O em placas de fax-modem. Na disposição multi-posição, os pinos de encaixe são numerados de 1 a 3 (ou 1 a 4, 1 a 5, etc) e os pinos podem ou não ser colocados na placa e a posição que são colocados também influencia os valores escolhidos para o funcionamento do dispositivo (a posição 1-2 especificam um valor enquanto 2-3 especificam outro). A associação entre a posição dos jumpers e a configuração desejada é feita consultando o mapa desenhado no circuito impresso da placa ou o manual de instruções da placa. A configuração de jumper através de multi-posição é normalmente usada em placas mãe para definir a freqüência de operação do barramento, a freqüência de multiplicação ou o tipo do processador. Se não possuir o mapa de configuração de sua placa e/ou o manual de instruções, será ne- cessário fazer um mapeamento manual da placa, mas para isto você precisará conhecer de- talhadamente a configuração de portas I/O, DMA, IRQ usadas na máquina que será usada e anotar as diferenças obtidas através da modificação da pinagem do dispositivo. Isto não é fácil, mas técnicos de informática experientes conhecerão as armadilhas encontradas pelo mapeamento manual de placas e farão o esquema de configuração completo do dispositivo, Capítulo 3. Hardware 22 obtendo um excelente manual de instruções. Nesta hora a experiência conta mais que o uso de programas de diagnóstico. Outra característica de hardwares configurados através de jumpers é que raramente apresen- tam problemas de funcionamento, a não ser que seus parâmetros como IRQ, DMA, ou I/O estejam em conflitos com outro dispositivo, mas isso não é culpa do fabricante e nem mesmo do dispositivo. . . 3.4.2 Dip-Switches É a mesma coisa que os hardwares configuráveis por jumpers exceto que são usados dip- switches no lugar de jumpers. O dip-switches é um conjunto de chaves numeradas que po- dem ser colocadas para cima ou para baixo (como um disjuntor ou vários interruptores LIGA/DESLIGA colocados um ao lado do outro) para se modificar a configuração do dispo- sitivo. 3.4.3 Jumperless (sem jumper) Os hardwares jumperless não possuem jumpers e são configurados através de um programa que acompanha a própria placa. Neste programa é escolhida a IRQ, DMA, I/O e a configuração é salva na própria placa ou restaurada após cada inicialização por um programa carregado na memória. Devido a configuração via software, se obtém uma configuração fixa com muito mais facilidade do que via jumpers (por não haver a necessidade de se retirar a placa). A maioria das placas jumperless podem funcionar também como Plug-and-Play. Existem mui- tas placas de rede, fax-modem, scanner jumperless no mercado. 3.4.4 Plug-and-Play O Plug-and-Play é um protocolo que lê os valores de operação disponíveis para a placa e per- mitem que o usuário possa especificar facilmente qual será sua IRQ, DMA, I/O. Hardwares PCI possuem configuração Plug-and-Play nativa, registrando suas interrupções, portas e dma na tabela de hardwares PCI do sistema. A diferença em relação ao modo jumperless é que toda a configuração do hardware (IRQ, DMA e I/O) é feita pelo kernel do Linux, onde ele passa a configuração detectada durante a inicialização do sistema para os módulos carregados, garantindo o perfeito funcionamento do dispositivos e evitando conflitos. Na época de hardwares ISA e VESA, o programa isapnp era a preferencia para a configuração de placas ISA Plug and Play. Veja a próxima seção para entender como funciona o arquivo de configuração isapnp.conf e assim poder ativar seu dispositivo Plug-and-Play. Capítulo 3. Hardware 25 3.8 Placas on-board / off-board Placas on-board são embutidas na placa mãe (motherboard). Placas off-board são placas externas encaixadas nos slots de expansão da placa mãe. No inicio da era do PC/XT todos as placas eram embutidas na placa mãe (na época eram somente a placa de vídeo e controladora). Com o surgimento do padrão AT, diversas empresas de informática desenvolveram dispositivos concorrentes e assim o usuário tinha a liberdade de escolha de qual dispositivo colocar em sua placa mãe (ou o mais barato ou o de melhor qualidade e desempenho), isto permitiu a adição de periféricos de qualidade sem romper com seu orçamento pessoal (comprando uma placa de som, depois uma de fax-modem, placa de vídeo melhor, etc). Atualmente parece que voltamos ao ponto de partida e tudo vem embutido na placa mãe (on-board) e o usuário não tem como escolher qual dispositivo usar em seu computador. É muito difícil (praticamente impossível) encontrar uma placa mãe que satisfaça completamente as necessidades do usuário ou recomendações de um bom técnico de informática (a não ser que seja um técnico experiente e encontre alguma alternativa). Certamente o único dispositivo que funciona melhor se embutido na placa mãe é a placa con- troladora de periféricos. Esta placa é usada para se conectar unidades de disquete, discos rígidos, CD-ROM, portas seriais, paralelas, joystick ao computador. Os HDs conectados em uma con- troladora embutida conseguem ter um desempenho muito maior do que em placas conectadas externamente, sem causar nenhum tipo de problema. Hardwares embutidos na placa mãe (como fax-modem, vídeo, som) são em média 30% mais baratos que os vendidos separadamente mas quase sempre são usados dispositivos de baixo desempenho e qualidade para reduzir o preço da placa mãe e quase sempre usados hardwares For Windows. Hoje em dia por causa do preço da placa mãe, é comum encontrar pessoas que verificam so- mente o preço e sequer procuram saber ou conhecem a qualidade das placas embutidas na placa mãe. Pior ainda é encontrar vendedores despreparados que sequer sabem explicar o porque que uma placa de som Sound Blaster 128 é mais cara que uma de modelo genérico. . . Geralmente dispositivos on-board trazem problemas caso tal dispositivo queime e geralmente é colocado um hardware de baixa qualidade para baratear o custo de placas mãe, que na mai- oria das vezes também oferece grande dificuldade para ser configurada no Linux. Outro periférico que traz problemas e carga para o processador é o fax-modem for Windows, HSP, AMR, micromodem, etc. utilizando o processador do sistema para realizar seu trabalho e algumas vezes não trazem nem mesmo o chip UART. Isso resulta em perda de qualidade na conexão e maior consumo telefônico. Se você estiver em uma situação destas, certamente os computadores de menor potência e com hardwares inteligentes (que possuem seus próprios chips de controle e processamento) não terão o desempenho comprometido. O preço pode ser maior mas você estará pagando por um dispositivo de melhor qualidade e que certamente trará benefícios a você e ao seu sistema. Consulte um técnico em informática experiente para te indicar uma placa mãe de bom preço Capítulo 3. Hardware 26 e de qualidade. É muito comum encontrar falta de profissionalismo em pessoas que não sa- bem distinguir as características, funções e vantagens entre uma placa de boa qualidade e um hardware for Windows a não ser o preço mais barato. 3.9 Hardwares específicos ou “For Windows” Esta seção foi retirada do manual de instalação da Debian GNU/Linux. Uma tendência que perturba é a proliferação de Modens e impressoras específicos para Windows. Em muitos casos estes são especialmente fabricados para operar com o Sistema Operacional Microsoft Windows e costumam ter a legenda WinModem, for Windows, ou Feito especialmente para computadores baseados no Windows. Geralmente estes dispositivos são feitos retirando os processadores embutidos daquele hard- ware e o trabalho deles são feitos por drivers do Windows que são executados pelo processador principal do computador. Esta estratégia torna o hardware menos caro, mas o que é poupado não é passado para o usuário e este hardware pode até mesmo ser mais caro quanto dispositi- vos equivalentes que possuem inteligência embutida. Você deve evitar o hardware baseado no Windows por duas razões: 1 O primeiro é que aqueles fabricantes não tornam os recursos disponíveis para criar um driver para Linux. Geralmente, o hardware e a interface de software para o dispositivo é proprietária, e a documentação não é disponível sem o acordo de não revelação, se ele estiver disponível. Isto impede seu uso como software livre, desde que os escritores de software grátis descubram o código fonte destes programas. 2 A segunda razão é que quando estes dispositivos tem os processadores embutidos re- movidos, o sistema operacional deve fazer o trabalho dos processadores embutidos, freqüentemente em prioridade de tempo real, e assim a CPU não esta disponível para executar programas enquanto ela esta controlando estes dispositivos. Assim o usuário típico do Windows não obtém um multi-processamento tão intensivo como um usuário do Linux, o fabricante espera que aquele usuário do Windows sim- plesmente não note a carga de trabalho que este hardware põe naquela CPU. No entanto, qualquer sistema operacional de multi-processamento, até mesmo Windows 9X, XP e Vista, são prejudicados quando fabricantes de periféricos retiram o processador embu- tido de suas placas e colocam o processamento do hardware na CPU. Você pode ajudar a reverter esta situação encorajando estes fabricantes a lançarem a documen- tação e outros recursos necessários para nós desenvolvermos drivers para estes hardwares, mas a melhor estratégia é simplesmente evitar estes tipos de hardwares até que ele esteja lis- tado no HOWTO de hardwares compatíveis com Linux. Note que hoje já existem muitos drivers para WinModems e outros hardwares for Windows para o Linux. Veja a lista de hardwares compatíveis no HARDWARE-HOWTO ou procure o driver no site do fabricante de seu dispositivo. Mesmo assim a dica é evitar hardwares for Windows e comprar hardwares inteligentes onde cada um faz sua função sem carregar a CPU. Capítulo 3. Hardware 27 3.10 Dispositivos específicos para GNU/Linux Esta seção foi retirada do manual de instalação da Debian GNU/Linux. Existem diversos ven- dedores, agora, que vendem sistemas com a Debian ou outra distribuição do GNU/Linux pré-instaladas. Você pode pagar mais para ter este privilégio, mas compra um nível de paz de mente, desde então você pode ter certeza que seu hardware é bem compatível com GNU/Linux. Praticamente todas as placas que possuem processadores próprios funcionam sem nenhum problema no Linux (algumas placas da Turtle Beach e mwave tem suporte de som limitado). Se você tiver que comprar uma máquina com Windows instalado, leia cuidadosamente a li- cença que acompanha o Windows; você pode rejeitar a licença e obter um desconto de seu vendedor. Se não estiver comprando um computador com GNU/Linux instalado, ou até mesmo um com- putador usado, é importante verificar se os hardwares existentes são suportados pelo kernel do GNU/Linux. Verifique se seu hardware é listado no Hardware Compatibility HOWTO, na documentação do código fonte do kernel no diretório Documentation/sound ou consulte um técnico de GNU/Linux experiente. Deixe seu vendedor (se conhecer) saber que o que está comprando é para um sistema GNU/Linux. Desta forma isto servirá de experiência para que ele poderá recomendar o mesmo dispositivo a outras pessoas que procuram bons dispositivos para sistemas GNU/Linux. Apóie vendedores de hardwares amigos do GNU/Linux. 3.11 Configurações de Dispositivos As seções abaixo explicam como fazer configurações em dispositivos diversos no sistema Linux como placas de rede, som, gravador de CD entre outras. 3.11.1 Configurando uma placa de rede Para configurar sua placa de rede no Linux siga os passos a seguir: 1 Identifique se sua placa de rede é ISA ou PCI. Caso seja ISA, pode ser preciso alterar a configuração de jumpers ou plug-and-play, evitando conflitos de hardware ou o não fun- cionamento da placa (veja como configura-la em ‘Hardwares configuráveis por jumpers, dip-switches, jumperless e Plug-and-Play.’ on page 21. 2 Identifique a marca/modelo de sua placa. O programa lshw é útil para isto. Caso sua placa seja PCI ou CNR, execute o comando lspci e veja a linha “Ethernet”. Em último caso, abra a máquina e procure a marca na própria placa. Quase todos os fabricantes colocam a marca da placa no próprio circuito impresso ou no CI principal da placa (nor- malmente é o maior). 3 Depois de identificar a placa, será preciso carregar o módulo correspondente para ser usada no Linux. Em algumas instalações padrões o suporte já pode estar embutido no Capítulo 3. Hardware 30 zar a configuração da unidade IDE com emulação SCSI, assim como utilizava no kernel 2.4 e inferiores seguindo as instruções abaixo. Para configurar seu gravador de CD/DVD IDE para ser usado no Linux usando o método para o kernel 2.4 e inferiores, siga os seguintes passos: 1 Tenha certeza que compilou o suporte as seguintes características no kernel: Em "ATA/IDE/MFM/RLL support" marque as opções: * Include IDE/ATAPI CDROM support * SCSI emulation support Depois em "SCSI support" marque as opções: * SCSI support M SCSI CD-ROM Support M SCSI Generic Support As opções marcadas como “*” serão embutidas no kernel e as “M” como módulos. Note que ambas as opções “IDE/ATAPI CDROM” e “SCSI Emulation” foram marcadas como embutidas. Isto faz com que o driver ATAPI tenha prioridade em cima do SCSI, mas vou explicar mais adiante como dizer para o kernel para carregar o suporte a SCSI para de- terminada unidade. Isto é útil quando temos mais de 1 unidade de CD IDE no sistema e queremos configurar somente o gravador para SCSI, pois alguns aplicativos antigos não se comunicam direito tanto com gravadores SCSI como emulados. Você também pode marcar somente a opção “SCSI Emulation” para que sua(s) unidade(s) seja(m) automati- camente emulada(s) como SCSI. Caso tenha usado esta técnica, vá até a seção ‘Testando o funcionamento’ on the next page. 2 O próximo passo é identificar o dispositivo de CD/DVD. Isto é feito através do comando dmesg. Supondo que sua unidade de CD é “hdc” (primeiro disco na segunda controla- dora IDE) e que compilou ambos o suporte a “IDE ATAPI” e “SCSI emulation” no kernel, adicione o argumento “hdc=ide-scsi” no /etc/lilo.conf ou no grub: # Lilo vmlinuz=/vmlinuz append="hdc=ide-scsi" Isto diz para o kernel que a unidade “hdc” usará emulação “ide-scsi”. Caso tenha outras unidades de CD no sistema, estas ainda utilização ATAPI como protocolo de comunicação padrão. Execute o lilo para gerar novamente o setor de inicialização com as modificações e reinicie o computador. OBS: Cuidado ao colocar um disco rígido IDE como hdc! A linha hdc=ide-scsi deverá ser retirada, caso contrário, seu disco rígido não será detectado. Agora, siga até ‘Testando o funcionamento’ on the facing page. Configurando o suporte a um gravador SCSI Caso tenha um autentico gravador SCSI, não será preciso fazer qualquer configuração de emu- lação, a unidade estará pronta para ser usada, desde que seu suporte esteja no kernel. As seguintes opções do kernel são necessárias para funcionamento de gravadores SCSI: Capítulo 3. Hardware 31 Depois em "SCSI support" marque as opções: * SCSI support M SCSI CD-ROM Support M SCSI Generic Support Além disso, deve ser adicionado o suporte EMBUTIDO no kernel a sua controladora SCSI. Se o seu disco rígido também é SCSI, e seu CD está ligado na mesma controladora SCSI, ela já está funcionando e você poderá seguir para o passo ‘Testando o funcionamento’ on the current page. Caso contrário carregue o suporte da sua placa adaptadora SCSI antes de seguir para este passo. Testando o funcionamento Para testar se o seu gravador, instale o pacote wodim e execute o comando: wodim -scanbus para verificar se sua unidade de CD-ROM é detectada. Você deverá ver uma linha como: scsibus0: 0,0,0 0) ’CREATIVE’ ’CD-RW RWXXXX ’ ’1.00’ Removable CD-ROM 0,1,0 1) * 0,2,0 2) * O que significa que sua unidade foi reconhecida perfeitamente pelo sistema e já pode ser usada para gravação. Vá até a seção ‘Gravando CDs e DVDs no Linux’ on page 255 para aprender como gravar CDs no Linux. Note que gravadores IDE nativos, não são listados com esse comando. 3.11.4 Configurando o gerenciamento de energia usando o APM O APM (Advanced Power Management - Gerenciamento Avançado de Energia) permite que sistemas gerenciem características relacionadas com o uso e consumo de energia do computador. Ele opera a nível de BIOS e tenta reduzir o consumo de energia de várias formas quando o sistema não estiver em uso (como reduzindo o clock da CPU, desligar o HD, desligar o monitor, etc.). O uso de advanced power management também permite que computadores com fonte de alimentação ATX sejam desligados automaticamente quando você executa o comando halt. Caso sua máquina tenha suporte a ACPI, este deverá ser usado como preferência ao invés do APM por ter recursos mais sofisticados (veja ‘Configurando o gerenciamento de energia usando ACPI’ on the next page). Para ativar o suporte a APM no Linux, compile seu kernel com o suporte embutido a APM e também a “Advanced Power Management” (senão sua máquina não desligará sozinha no halt). Caso deseje compilar como módulo, basta depois carregar o módulo apm adicionando no Capítulo 3. Hardware 32 arquivo /etc/modules. Depois disso instale o daemon apmd para gerenciar as características deste recurso no sistema. Você pode desativar o uso de APM de 3 formas: removendo seu suporte do kernel, passando o argumento apm=off (quando compilado estaticamente no kernel) ou removendo o nome do módulo do arquivo /etc/modules (quando compilado como módulo). Depois disso remova o daemon apmd. 3.11.5 Configurando o gerenciamento de energia usando ACPI O ACPI (Advanced Configuration and Power Interface - Interface de Configuração e Gerenciamento de Energia Avançado) é uma camada de gerenciamento de energia que opera a nível de sistema operacional. Apresenta os mesmos recursos que o APM, e outros como o desligamento da máquina por teclas especiais de teclado, controle de brilho e contraste de notebooks, suspend para RAM, suspend para disco, redução de velocidade de CPU manualmente, monitoramento de periféricos, temperatura, hardwares, etc. Desta forma, o ACPI varia de sistema para sistema em questões relacionadas com suporte a recursos especiais, estes dados são armazenados em tabelas chamadas DSDT. O Linux inclui suporte a recursos ACPI genéricos entre placas mãe, recursos específicos devem ser extraídos diretamente da BIOS e disassemblados manualmente para a construção de um kernel com suporte específico a tabela DSDT do hardware (não falarei das formas de se fazer disso aqui, somente do suporte genérico). Quanto mais nova a versão do kernel, maiores as chances do seu hardware ser suportado plenamente pelo ACPI, principalmente no caso de notebooks. Para compilar estaticamente, marque com Y a opção ACPI, depois marque os módulos que você quer que ele monitore: button (botão power), fan (ventoinhas), etc. Se compilou como módulo, adicione o nome do módulo acpi no arquivo /etc/modules. Não há problema em compilar também o suporte a APM, pois não causará problemas com um kernel com ACPI também compilado. Caso não saiba quais módulos ACPI seu sistema aceita, marque o suporte a todos e carregue- os. Após isto, entre no diretório /proc/acpi e de um ls entrando nos diretórios e vendo se existem arquivos dentro deles. Remova o módulo correspondente daqueles que não tiver conteúdo. Após isto, instale o daemon acpid e configure-o para monitorar algumas características do seu sistema. Por padrão o acpid monitora o botão POWER, assim se você pressionar o power, seu sistema entrará automaticamente em run-level 0, fechando todos os processos e desligando sua máquina. O suporte a ACPI pode ser desativado de 3 formas: Removendo seu suporte do kernel, pas- sando o argumento acpi=off ao kernel (caso esteja compilado estaticamente) ou removendo o módulo de /etc/modules (caso tenha compilado como módulo. Após isto, remova o dae- mon acpid do seu sistema. 35 Capítulo 4 Para quem esta migrando (ou pensando em migrar) do DOS/Windows para o Linux Este capítulo explica as diferenças e particularidades do sistema GNU/Linux comparado ao Windows, DOS e uma lista de equivalência entre comandos e programas executados no CMD do Windows/DOS e GNU/Linux, que pode servir de comparação para que o usuário possa co- nhecer e utilizar os comandos/programas GNU/Linux que tem a mesma função no ambiente DOS/Windows. 4.1 Quais as diferenças iniciais • Quando entrar pela primeira vez no GNU/Linux (ou qualquer outro UNIX, a primeira coisa que verá será a palavra login: escrita na tela. A sua aventura começa aqui, você deve ser uma pessoa cadastrada no sistema (ter uma conta) para que poder entrar. No login você digita seu nome (por exemplo, gleydson) e pressiona Enter. Agora será lhe pedida a senha, repare que a senha não é mostrada enquanto é digitada, isto serve de segurança e para enganar pessoas que estão próximas de você “tocando” algumas teclas a mais enquanto digita a senha e fazendo-as pensar que você usa uma grande senha ;-) (com os asteriscos aparecendo isto não seria possível). Caso cometa erros durante a digitação da senha, basta pressionar a tecla Back Space para apagar o último caracter digitado e terminar a entrada da senha. Pressione Enter, se tudo ocorrer bem você estará dentro do sistema e será presenteado com o símbolo # (caso tenha entrado como usuário root) ou $ (caso tenha entrado como um usuário normal). Existe um mecanismo de segurança que te alerta sobre eventuais tentativas de entrada no sistema por intrusos usando seu login, faça um teste: entre com seu login e digite a senha errada, na segunda vez entre com a senha correta no sistema. Na penúltima linha Capítulo 4. Para quem esta migrando (ou pensando em migrar) do DOS/Windows para o Linux 36 das mensagens aparece uma mensagem “1 failure since last login”, o que quer dizer “1 falha desde o último login”. Isto significa que alguém tentou entrar 1 vez com seu nome e senha no sistema, sem sucesso. • A conta root não tem restrições de acesso ao sistema e pode fazer tudo o que quiser, é equivalente ao usuário normal do DOS e Windows. Use a conta root somente para manutenções no sistema e instalação de programas, qualquer movimento errado pode comprometer todo o sistema. Para detalhes veja ‘A conta root’ on page 150. • No GNU/Linux os diretório são identificados por uma / e não por uma \ como acontece no DOS. Para entrar no diretório /bin, você deve usar cd /bin. • Os comandos são case-sensitive, o que significa que ele diferencia as letras maiús- culas de minúsculas em arquivos e diretórios. O comando ls e LS são completamente diferentes. • A multitarefa lhe permite usar vários programas simultaneamente (não pense que mul- titarefa somente funciona em ambientes gráficos, pois isto é errado!). Para detalhes veja ‘Execução de programas’ on page 89. • Os dispositivos também são identificados e uma forma diferente que no DOS por exem- plo: DOS/Windows Linux ------------- --------------- A: /dev/fd0 B: /dev/fd1 C: /dev/hda1 ou /dev/sda1 LPT1 /dev/lp0 LPT2 /dev/lp1 LPT3 /dev/lp2 COM1 /dev/ttyS0 COM2 /dev/ttyS1 COM3 /dev/ttyS2 COM4 /dev/ttyS3 • Os recursos multiusuário lhe permite acessar o sistema de qualquer lugar sem instalar nenhum driver, ou programa gigante, apenas através de conexões TCP/IP, como a In- ternet. Também é possível acessar o sistema localmente com vários usuários (cada um executando tarefas completamente independente dos outros) através dos Terminais Vir- tuais. Faça um teste: pressione ao mesmo tempo a tecla ALT e F2 e você será levado para o segundo Terminal Virtual, pressione novamente ALT e F1 para retornar ao anterior. • Para reiniciar o computador, você pode pressionar CTRL+ALT+DEL (como usuário root) ou digitar shutdown -r now. . • Para desligar o computador, digite shutdown -h now e espere o aparecimento da men- sagem Power Down para apertar o botão LIGA/DESLIGA do computador. Capítulo 4. Para quem esta migrando (ou pensando em migrar) do DOS/Windows para o Linux 37 4.2 Comandos equivalentes entre DOS/CMD do Windows e o Linux Esta seção contém os comandos equivalentes entre estes dois sistemas e a avaliação entre am- bos. Grande parte dos comandos podem ser usados da mesma forma que no DOS, mas os comandos Linux possuem avanços para utilização neste ambiente multiusuário/multitarefa. O objetivo desta seção é permitir as pessoas com experiência em DOS fazer rapidamente no GNU/Linux as tarefas que fazem no DOS. A primeira coluna tem o nome do comando no DOS, a segunda o comando que possui a mesma função no GNU/Linux e na terceira coluna as diferenças. DOS Linux Diferenças -------- ------------ -------------------------------------------------- cls clear Sem diferenças. dir ls -la A listagem no Linux possui mais campos (as permissões de acesso) e o total de espaço ocupado no diretório e livre no disco deve ser visto separadamente usando o comando du e df. Permite também listar o conteúdo de diversos diretórios com um só comando (ls /bin /sbin /...). dir/s ls -lR Sem diferenças. dir/od ls -tr Sem diferenças. cd cd Poucas diferenças. cd sem parâmetros retorna ao diretório de usuário e também permite o uso de "cd -" para retornar ao diretório anteriormente acessado. del rm Poucas diferenças. O rm do Linux permite especificar diversos arquivos que serão apagados (rm arquivo1 arquivo2 arquivo3). Para ser mostrados os arquivos apagados, deve-se especificar o parâmetro "-v" ao comando, e "-i" para pedir a confirmação ao apagar arquivos. md mkdir Uma só diferença: No Linux permite que vários diretórios sejam criados de uma só vez (mkdir /tmp/a /tmp/b...). copy cp Poucas diferenças. Para ser mostrados os arquivos enquanto estão sendo copiados, deve-se usar a opção "-v", e para que ele pergunte se deseja substituir um arquivo já existente, deve-se usar a opção "-i". echo echo Sem diferenças. path path No Linux deve ser usado ":" para separar os diretórios e usar o comando "export PATH=caminho1:/caminho2:/caminho3:" para definir a variável de ambiente PATH. O path atual pode ser visualizado através Capítulo 4. Para quem esta migrando (ou pensando em migrar) do DOS/Windows para o Linux 40 • minfo - Mostra detalhes sobre a unidade de disquetes • mlabel - Cria um volume para unidades DOS • mmd - Cria diretórios • mmount - Monta discos DOS • mmove - Move ou renomeia arquivos/subdiretórios • mpartition - Particiona um disco para ser usado no DOS • mrd - Remove um diretório • mren - Renomeia arquivos • mtype - Visualiza o conteúdo de arquivos (equivalente ao cat) • mtoolstest - Exibe a configuração atual do mtools • mshowfat - Mostra a FAT da unidade • mbadblocks - Procura por setores defeituosos na unidade • mzip - Altera modo de proteção e ejeta discos em unidades Jaz/ZIP • mkmanifest - Cria um shell script para restaurar nomes extensos usados no UNIX • mcheck - Verifica arquivos na unidade 4.4 Programas equivalentes entre Windows/DOS e o Linux Esta seção contém programas equivalentes para quem está vindo do DOS e Windows e não sabe o que usar no GNU/Linux. Esta seção também tem por objetivo permitir ao usuário que ainda não usa GNU/Linux decidir se a passagem vale a pena vendo se o sistema tem os programas que precisa. Note que esta listagem mostra os programas equivalentes entre o DOS/Windows e o GNU/Linux cabendo a você a decisão final de migrar ou não. Lembrando que é possível usar o Windows, OS/2, DOS, OS/2 e GNU/Linux no mesmo disco rígido sem qualquer tipo de conflito. A listagem abaixo pode estar incompleta, se encontrar algum programa que não esteja listado aqui, por favor entre em contato pelo E-Mail <gleydson@guiafoca.org> para inclui-lo na listagem. DOS/Windows Linux Diferenças ----------- ---------- ------------------------------- MS Word Open Office, O Open Office possui todos os recursos do Word além de ter a interface gráfica igual, menus e teclas de atalho idênticas ao Word, o que facilita a migração. Também trabalha com arquivos no formato Word97/2000 e não é vulnerável a vírus de macro. É distribuído gratuitamente e não requer pagamento de licença podendo ser instalado em quantos computadores você quiser (tanto domésticos como de empresas). Capítulo 4. Para quem esta migrando (ou pensando em migrar) do DOS/Windows para o Linux 41 MS Excel Open Office Mesmos pontos do acima e também abre arquivos Excel97/2000. MS PowerPoint Open Office Mesmos pontos do acima. MS Access MySQL, PostgreSQL Existem diversas ferramentas de Oracle conceito para bancos de dados corporativos no Linux. Todos produtos compatíveis com outras plataformas. MS Outlook Pine, evolution Centenas de programas de E-Mail mutt, sylpheed, tanto em modo texto como em icedove modo gráfico. Instale, avalie e escolha. MS Internet Explorer Firefox, Opera, Os três primeiros para modo Mozilla, lynx. gráfico e o lynx opera em modo texto. ICQ LICQ, PIDGIM, SIM Muito prático e fácil de operar. Possibilita a mudança completa da aparência do programa através de Skins. A organização dos menus deste programa é outro ponto de destaque. MSN AMSN, PIDGIM Permite conversar diretamente com usuários do Microsoft MSN. Photo Shop The Gimp Fácil de usar, possui muitos scripts que permitem a criação rápida e fácil de qualquer tipo de efeito profissional pelo usuário mais leigo. Acompanha centenas de efeitos especiais e um belo manual em html com muitas fotos (aproximadamente 20MB) que mostra o que é possível se fazer com ele. Corel Photo Paint GIMP Corel Photo-Paint para Corel Draw Inkscape, Sodipodi Programas equivalentes Autocad Qcad Programa com funções genéricas Visio dia Possui funcionalidades identicas e ótimo conjunto de ícones winamp xmms Possui todos os recursos do programa para Windows além de filtros que permite acrescentar efeitos digitais da música (em tempo real), eco, etc. media player mplayer,playmidi Programas para execução de xwave, arquivos de música e videos Capítulo 4. Para quem esta migrando (ou pensando em migrar) do DOS/Windows para o Linux 42 multimídia. Existem outras alternativas, a escolha depende de seu gosto e da sofisticação do programa. Agente de Sistema cron Pouca diferença. O cron da mais liberdade na programação de tarefas a serem executadas pelo Linux. Mixer aumix, cam Sem diferenças. Bate-Papo talk, ytalk O talk e o ytalk permite a conversa de dois usuários não só através de uma rede local, mas de qualquer parte do planeta, pois usa o protocolo tcp/ip para comunicação. Muito útil e fácil de usar. MIRC Bitchx, xchat Clientes IRC para Linux IIS, Pers. Web Server Apache O apache é o servidor WEB mais usado no mundo (algo em torno de 75% das empresas), muito rápido e flexível de se configurar. Exchange, NT Mail Postfix, Sendmail 72% da base de servidores de Exim, Qmail emails no mundo atualmente roda em software livre. Os mais recomendados são o Postfix e o qmail, devido a segurança, velocidade e integridade de mensagem Wingate, MS Proxy Squid, Apache, A migração de um servidor proxy ip masquerade, para Linux requer o uso de nat, diald, vários programas separados para exim, que se tenha um resultado profissional. Isto pode parecer incomodo no começo, mas você logo perceberá que a divisão de serviços entre programas é mais produtivo. Quando desejar substituir um deles, o funcionamento dos outros não serão afetados. Não vou entrar em detalhes sobre os programas citados ao lado, mas o squid é um servidor proxy Web (HTTP e HTTPS) completo e também apresenta um excelente serviço FTP. Possui outros módulos como dns, ping, restrições de acesso, limites de 45 Capítulo 5 Discos e Partições Este capítulo traz explicações de como manipular discos rígidos e partições no sis- tema GNU/Linux e como acessar seus discos de CD-ROM e partições DOS, Windows 9X/XP/Vista no GNU/Linux. Também será ensinado como formatar uma partição ou arquivo em formato EXT2, EXT3, reiserfs e usar a ferramenta mkswap (para criar uma partição ou arquivo de memória vir- tual). 5.1 Partições São divisões existentes no disco rígido que marcam onde começa onde termina um sistema de arquivos. Por causa destas divisões, nós podemos usar mais de um sistema operacional no mesmo computador (como o GNU/Linux, Windows e DOS), ou dividir o disco rígido em uma ou mais partes para ser usado por um único sistema operacional. Para gravar os dados, o disco rígido deve ser primeiro particionado (usando o fdisk), escolher o tipo da partição (Linux Native, Linux Swap, etc) e depois aquela partição deve ser formatada com o mkfs.ext2 (veja ‘Partição EXT2 (Linux Native)’ on page 47). Após criada e formatada, a partição será identificada como um dispositivo no diretório /dev (veja ‘Identificação de discos e partições em sistemas Linux’ on page 64) . e deverá ser montada (‘Montando (acessando) uma partição de disco’ on page 65) para permitir seu uso no sistema. Uma partição de disco não interfere em outras partições existentes, por este motivo é possível usar o Windows, GNU/Linux e qualquer outro sistema operacional no mesmo disco. Para escolher qual deles será inicializado, veja ‘Gerenciadores de Partida (boot loaders)’ on page 69. Para particionar (dividir) o disco rígido em uma ou mais partes é necessário o uso de um programa de particionamento. Os programas mais conhecidos para particionamento de discos no GNU/Linux são fdisk, cfdisk e o Disk Druid. Lembre-se: Capítulo 5. Discos e Partições 46 • Quando se apaga uma partição, você estará apagando TODOS os arquivos existentes nela! • A partição do tipo Linux Native (Tipo 83) é a usada para armazenar arquivos no GNU/Linux. Para detalhes veja ‘Partição EXT2 (Linux Native)’ on the facing page. • A partição do tipo Linux Swap (Tipo 82) é usada como memória virtual. Para detalhes veja ‘Partição Linux Swap (Memória Virtual)’ on page 55. • Em sistemas novos, é comum encontrar o Windows instalado em uma partição que con- some TODO o espaço do disco rígido. Uma solução para instalar o GNU/Linux é apagar a partição Windows e criar três com tamanhos menores (uma para o Windows, uma para o GNU/Linux e outra para a Memória Virtual do Linux (SWAP). Ou criar apenas 2 se você não quiser mais saber mais do Windows ;-) A outra é usar o parted (e gparted sua versão gráfica), um bom exemplo de programa de reparticionamento não destrutivo (que usa o espaço livre existente) que trabalha com FAT16, FAT32, NTFS. Esta técnica também é chamada de Reparticionamento não destrutivo (e o outro obviamente Reparticionamento destrutivo). Para mais detalhes sobre discos, partições ou como particionar seu disco, veja algum bom documento sobre particionamento (como a página de manual e documentação do fdisk, cfdisk, parted ou Disk Druid). 5.2 Sistema de Arquivos É criado durante a “formatação” da partição de disco (quando se usa o comando mkfs.ext2). Após a formatação toda a estrutura para leitura/gravação de arquivos e diretórios pelo sistema operacional estará pronta para ser usada. Normalmente este passo é feito durante a instalação de sua distribuição GNU/Linux. Cada sistema de arquivos tem uma característica em particular mas seu propósito é o mesmo: Oferecer ao sistema operacional a estrutura necessária para ler/gravar os arquivos/diretórios. Entre os sistemas de arquivos existentes posso citar: • Ext2 - Usado em partições Linux Nativas para o armazenamento de arquivos. É identifi- cado pelo código 83. Seu tamanho deve ser o suficiente para acomodar todo os arquivos e programas que deseja instalar no GNU/Linux (você encontra isto no manual de sua distribuição). Para detalhes veja ‘Partição EXT2 (Linux Native)’ on the facing page. • Ext3 - Este sistema de arquivos possui melhorias em relação ao ext2, como destaque o recurso de jornaling. Ele também é identificado pelo tipo 83 e totalmente compatível com o ext2 em estrutura. O journal mantém um log de todas as operações no sistema de arqui- vos, caso aconteça uma queda de energia elétrica (ou qualquer outra anormalidade que interrompa o funcionamento do sistema), o fsck verifica o sistema de arquivos no ponto em que estava quando houve a interrupção, evitando a demora para checar todo um sis- tema de arquivos (que pode levar minutos em sistemas de arquivos muito grandes). Para detalhes veja ‘Partição EXT3 (Linux Native)’ on page 49. • Swap - Usado em partições Linux Swap para oferecer memória virtual ao sistema. Note que é altamente recomendado o uso de uma partição Swap no sistema (principalmente Capítulo 5. Discos e Partições 47 se você tiver menos que 16MB de memória RAM). Este tipo de partição é identificado pelo código 82. Para detalhes veja ‘Partição Linux Swap (Memória Virtual)’ on page 55. • proc - Sistema de arquivos do kernel (veja ‘O sistema de arquivos /proc’ on page 57). • FAT12 - Usado em disquetes no DOS • FAT16 - Usado no DOS e oferece suporte até discos de 2GB • FAT32 - Também usado no DOS e oferece suporte a discos de até 2 Terabytes 5.3 Partição EXT2 (Linux Native) A partição EXT2 é o tipo usado para criar o sistema de arquivos Linux Native usado para armazenar o sistema de arquivos EXT2 (após a formatação) e permitir o armazenamento de dados. Para detalhes de como criar uma partição EXT2 veja ‘Criando um sistema de arquivos EXT2 em uma partição’ on this page. Este tipo de partição é normalmente identificado pelo código 83 nos programas de particio- namento de disco. Note que também é possível criar um sistema de arquivos EXT2 em um arquivo (ao invés de uma partição) que poderá ser montado e acessado normalmente pelo sis- tema de arquivos (veja ‘Criando um sistema de arquivos EXT2 em um arquivo’ on the next page. Logo que foi inventado, o GNU/Linux utilizava o sistema de arquivos Minix (e conseqüente- mente uma partição Minix) para o armazenamento de arquivos. Com a evolução do desen- volvimento, foi criado o padrão EXT (Extended Filesystem) e logo evoluiu para o EXT2 (Second Extended Filesystem) que é o usado hoje em dia. Você deve escolher este tipo de partição para armazenar seus arquivos, é o padrão atualmente, é o mais rápido, não se fragmenta tão facilmente pois permite a localização do melhor lugar onde o arquivo se encaixa no disco, etc. Isto é útil para grandes ambientes multiusuário onde várias pessoas gravam/apagam arquivos o tempo todo. 5.3.1 Criando um sistema de arquivos EXT2 em uma partição O utilitário usado para formatar uma partição EXT2 é o mkfs.ext2. Após terminar este passo, seu sistema de arquivos EXT2 estará pronto para ser usado. Após particionar seu disco rígido e criar uma (ou várias) partições EXT2, use o comando: mkfs.ext2 /dev/hda? Onde a “?” em hda? significa o número da partição que será formatada. A identificação da partição é mostrada durante o particionamento do disco, anote se for o caso. hda é o primeiro disco rígido IDE, hdb é o segundo disco rígido IDE. Discos SCSI são identificados por sda?, sdb?, etc. Para detalhes sobre a identificação de discos, veja ‘Identificação de discos e partições em sistemas Linux’ on page 64. Algumas opções são úteis ao mkfs.ext2: Capítulo 5. Discos e Partições 50 O uso deste sistema de arquivos comparado ao ext2, na maioria dos casos, melhora o desem- penho do sistema de arquivos através da gravação seqüencial dos dados na área de metadados e acesso mhash a sua árvore de diretórios. A estrutura da partição ext3 é semelhante a ext2, o journaling é feito em um arquivo cha- mado .journal que fica oculto pelo código ext3 na partição (desta forma ele não poderá ser apagado, comprometendo o funcionamento do sistema). A estrutura idêntica da partição ext3 com a ext2 torna mais fácil a manutenção do sistema, já que todas as ferramentas para recupe- ração ext2 funcionarão sem problemas. 5.5.1 Criando um sistema de arquivos EXT3 em uma partição Para criar uma partição ext3, utilize o comando mkfs.ext3 ou o mkfs.ext2 junto com a opção -j. As opções usadas pelo mkfs.ext3 são idênticas a do mkfs.ext2 (documentado em ‘Criando um sistema de arquivos EXT2 em uma partição’ on page 47). A única vantagem desta ferramenta comparada ao mkfs.ext2 é que a opção -j é automaticamente adicionada a linha de comando para criar um sistema de arquivos com journal. Se você é daqueles que querem ter um controle maior sobre o tamanho do arquivo de journal, use a opção -J [tam] (onde tamanho é o tamanho em Megabytes). Quando uma partição ext3 é criada, o arquivo .journal é criado no raíz da partição, sendo usado para gravar os metadados das transações de journaling. A estrutura da partição ext2 não difere em nada da ext3, a não ser este arquivo e a opção “has_journal” que é passada a partição. Por exemplo, para criar uma partição ext3 em /dev/hda1: mkfs.ext3 /dev/hda1 ou mkfs.ext2 -j /dev/hda1 Basta agora montar a partição com o comando mount /dev/hda1 /teste -t ext3 (para montar a partição em /teste. Após isto, modifique o /etc/fstab para montar a partição como ext3 quando o Linux for iniciado. Para mais detalhes veja ‘Montando (acessando) uma partição de disco’ on page 65. ). Caso o suporte a ext3 tenha sido compilado no kernel, ele tentará detectar e montar a partição como ext3, caso contrário, ele usará ext2. Sua partição agora está montada como ext3, para conferir digite: df -T. OBS: Quando criar um sistema de arquivos ext3 em uma partição raíz (/), tenha certeza de incluir o suporte a ext3 embutido no kernel, caso contrário a partição será montada como ext2. 5.5.2 Criando um sistema de arquivos EXT3 em um arquivo As instruções para criar um sistema de arquivos ext3 em um arquivo não difere muito das instruções de ‘Criando um sistema de arquivos EXT2 em um arquivo’ on page 48, apenas Capítulo 5. Discos e Partições 51 utilize a opção -j ou -J [tamanho_em_mb] (como explicado em ‘Criando um sistema de arquivos EXT3 em uma partição’ on the preceding page). 5.5.3 Fazendo a conversão do sistema de arquivos EXT2 para EXT3 Se você já possui um uma partição ext2 e deseja converte-la para ext3 isto poderá ser feito facilmente, de forma segura (sem qualquer risco de perda de dados) e você poderá voltar para o sistema ext2 caso deseje (veja ‘Convertendo de EXT3 para EXT2’ on this page). Primeiro, execute o comando tune2fs na partição que deseja converter com a opção -j ou -J [tamanho_journal] para adicionar o suporte a Journaling na partição. Este comando poderá ser executado com segurança em uma partição ext2 montada, após converter remontar a partição usando os comandos umount /particao e mount /particao. Após a conversão para ext3 é desnecessária a checagem periódica do sistema de arquivos (que por padrão é após 20 montagens e a cada 30 dias). Você pode desativar a checagem após o número máximo de montagens com a opção -c [num_vezes], e o número de dias máximos antes de verificar novamente com a opção -i [num_dias] (o uso de 0 desativa). Por exemplo: tune2fs -c 0 -i 90 /dev/hda2 Desativa a checagem após número máximo de montagens (-c 0) e diz para a partição ser verificada a cada 90 dias (-i 90). O último passo é modificar o /etc/fstab para que a partição seja montada como ext3 na inicialização e depois desmontar (umount /dev/hda2 e remonta-la (mount /dev/hda2) para usar o suporte ext3. Confira se ela está usando ext3 usando o comando df -T. OBS: Caso a partição convertida para ext3 seja a raíz (/), tenha certeza de incluir o suporte a ext3 embutido no kernel, caso contrário, a partição será montada como ext2. 5.5.4 Convertendo de EXT3 para EXT2 Remover o suporte a ext3 de uma partição é simples, rápido e seguro. Execute os seguintes passos: 1 Execute o comando tune2fs -O^has_journal /dev/hdxx na partição que deseja remover o Journal. Este comando poderá ser executado em uma partição montada. 2 Modifique o /etc/fstab e altere a partição para ext2. 3 Desmonte e monte novamente a partição com os comandos: umount /dev/hdxx e mount /dev/hdxx. 4 Pronto! a partição agora é novamente uma partição ext2 normal, confira digitando df -T. Pronto, o suporte a ext3 foi removido do seu sistema e agora poderá usar a partição como ext2 normalmente (confira digitando df -T). Capítulo 5. Discos e Partições 52 5.6 Sistema de arquivos reiserfs Este é um sistema de arquivos alternativo ao ext2/3 que também possui suporte a journaling. Entre suas principais características, estão que ele possui tamanho de blocos variáveis, suporte a arquivos maiores que 2 Gigabytes (esta é uma das limitações do ext3) e o acesso mhash a árvore de diretórios é um pouco mais rápida que o ext3. Para utilizar reiserfs, tenha certeza que seu kernel possui o suporta habilitado (na seção File Systems) e instale o pacote reiserfsprogs que contém utilitários para formatar, ve- rificar este tipo de partição. 5.6.1 Criando um sistema de arquivos reiserfs em uma partição Para criar uma partição reiserfs, primeiro instale o pacote reiserfsprogs (apt-get install reiserfsprogs). Para criar uma partição reiserfs, primeiro crie uma partição ext2 normal, e então use o comando: mkreiserfs /dev/hda? Onde a “?” em hda? significa o número da partição que será formatada com o sistema de arquivos reiserfs. A identificação da partição é mostrada durante o particionamento do disco, anote se for o caso. hda é o primeiro disco rígido IDE, hdb é o segundo disco rígido IDE. Discos SCSI são identificados por sda?, sdb?, etc. Para detalhes sobre a identificação de discos, veja ‘Identificação de discos e partições em sistemas Linux’ on page 64. Algumas opções são úteis ao mkreiserfs: • -s [num] - Especifica o tamanho do arquivo de journal em blocos. O valor mínimo é 513 e o máximo 32749. O valor padrão é 8193. • -l [NOME] - Coloca um nome (label) no sistema de arquivos. • -f - Força a execução do mkreiserfs. • -d - Ativa a depuração durante a execução do mkreiserfs. Agora para acessar a partição deverá ser usado o comando: mount /dev/hda? /mnt -t reiserfs Para mais detalhes veja ‘Montando (acessando) uma partição de disco’ on page 65. Note que é possível criar um sistema de arquivos no disco rígido sem criar uma partição usando /dev/hda, /dev/hdb, etc. usando a opção -f EVITE FAZER ISSO! Como não estará criando uma partição, o disco estará divido de maneira incorreta, você não poderá apagar o sistema de arquivos completamente do disco caso precise (lembre-se que você não criou uma partição), e a partição possui uma assinatura apropriada que identifica o sistema de arquivos. Capítulo 5. Discos e Partições 55 • O arquivo EXT2 é útil para guardarmos dados confidenciais em disquetes ou em qualquer outro lugar no sistema. Você pode perfeitamente gravar seus arqui- vos confidenciais em um arquivo chamado libBlaBlaBla-2.0 no diretório /lib e ninguém nunca suspeitará deste arquivo (acho que não. . . ). Também é pos- sível criptografa-lo para que mesmo alguém descobrindo que aquilo não é uma lib, não poder abri-lo a não ser que tenha a senha (isto é coberto no documento Loopback-encripted-filesystem.HOWTO). • O uso do arquivo EXT2 é útil quando você está perdendo espaço na sua partição EXT2 e não quer re-particionar seu disco pois teria que ser feita uma re-instalação completa e tem muito espaço em um partição de outro SO (como o Windows). Você poderia fa- cilmente copiar o conteúdo de /var, por exemplo, para o arquivo EXT2 ext2-l criado no diretório Raíz do Windows, apagar o conteúdo de /var (liberando muito espaço em disco) e então montar ext2-l como /var. A partir de agora, tudo o que for gravado em /var será na realidade gravado no arquivo ext2-l. Para o sistema acessar o arquivo, deve passar pelo sistema de arquivos loop e FAT32, isto causa um desempenho menor. 5.7 Partição Linux Swap (Memória Virtual) Este tipo de partição é usado para oferecer o suporte a memória virtual ao GNU/Linux em adição a memória RAM instalada no sistema. Este tipo de partição é identificado pelo tipo 82 nos programas de particionamento de disco para Linux. Para detalhes de como criar uma partição Linux Swap veja ‘Criando sistema de arquivos Swap em uma partição’ on the current page. Somente os dados na memória RAM são processados pelo processador, por ser mais rápida. Desta forma quando você está executando um programa e a memória RAM começa a encher, o GNU/Linux move automaticamente os dados que não estão sendo usados para a partição Swap e libera a memória RAM para a continuar carregando os dados necessários pelo. Quando os dados movidos para a partição Swap são solicitados, o GNU/Linux move os dados da par- tição Swap para a Memória. Por este motivo a partição Swap também é chamada de Troca ou memória virtual. A velocidade em que os dados são movidos da memória RAM para a partição é muito alta. Note também que é possível criar o sistema de arquivos Swap em um arquivo ao invés de uma partição (veja ‘Criando um sistema de arquivos Swap em um arquivo’ on the following page). 5.7.1 Criando sistema de arquivos Swap em uma partição O programa usado para formatar uma partição Swap é o mkswap. Seu uso é simples: mkswap /dev/hda? Novamente veja ‘Identificação de discos e partições em sistemas Linux’ on page 64 caso não souber identificar seus discos e partições. O nome do dispositivo da partição Swap pode ser vi- sualizado através de seu programa de particionamento, você pode usar o comando fdisk -l /dev/hda para listar as partições no primeiro disco rígido e assim verificar qual dispositivo corresponde a partição Swap. Capítulo 5. Discos e Partições 56 A opção -c também pode ser usada com o mkswap para checar se existem agrupamentos danificados na partição. Com a partição Swap formatada, use o comando: swapon /dev/hda? para ativar a partição Swap (lembre-se de substituir ? pelo número de sua partição Swap). Observações: Os Kernels do GNU/Linux 2.0.xx e anteriores somente suportam partições Swap de até 128MB. Caso precise de mais que isso, crie mais partições Swap ou atualize seu sistema para trabalhar com o kernel 2.2.xx Se utilizar mais que 1 partição Swap, pode ser útil o uso da opção -p NUM que especifica a prioridade em que a partição Swap será usada. Pode ser usado um valor de prioridade entre 0 e 32767, partições com número maior serão usadas primeiro, sendo que na montagem automática através de “mount -a” podem ser designados números negativos. Procure usar o número maior para partições mais rápidas (elas serão acessadas primeiro) e números maiores para partições mais lentas. Caso precise desativar a partição Swap, use o comando: swapoff /dev/hda?. 5.7.2 Criando um sistema de arquivos Swap em um arquivo Também é possível criar um arquivo que poderá ser usado como memória virtual. Veja passo a passo como fazer isso: 1 Use o comando dd if=/dev/zero of=/tmp/troca bs=1024 count=16000 para criar um arquivo chamado troca vazio de 16Mb de tamanho em /tmp. Você pode mo- dificar os parâmetros de of para escolher onde o arquivo será criado, o tamanho do arquivo poderá ser modificado através de count. 2 Execute mkswap /tmp/troca para formatar o arquivo. Após concluir este passo, o sistema de arquivos Swap estará criado e pronto para ser usado. 3 Digite sync para sincronizar os buffers para o disco, assim você não terá problemas em um servidor com muito I/O. 4 Ative o arquivo de troca com o comando swapon /tmp/troca. 5 Confira se o tamanho da memória virtual foi modificado digitando cat /proc/meminfo ou free. Observações: • Podem ser usadas partições de troca e arquivos de troca juntos, sem problemas. • Caso seu sistema já tenha uma partição de Swap, é recomendável deixar o acesso ao arquivo Swap com uma prioridade menor (usando a opção -p NUM com o comando swapon). Capítulo 5. Discos e Partições 57 5.7.3 Partição Swap ou Arquivo? Criar uma partição de Troca ou um arquivo de troca? Abaixo algumas vantagens e desvanta- gens: • A partição Swap é mais rápida que o arquivo Swap pois é acessada diretamente pelo Kernel. Se o seu computador tem pouca memória (menos que 32Mb) ou você tem certeza que o sistema recorre freqüentemente a memória virtual para executar seus programas, é recomendável usar uma partição Swap. • O arquivo de troca permite que você crie somente uma partição Linux Native e crie o arquivo de troca na partição EXT2. • Você pode alterar o tamanho do arquivo de troca facilmente apagando e criando um novo arquivo como descrito em ‘Criando um sistema de arquivos Swap em um arquivo’ on the facing page. • É possível criar um arquivo de troca em outros tipos de partições como FAT16, FAT32, etc. • O arquivo de troca estará disponível somente após o sistema de arquivos que o armazena (ext2, fat32, etc) estar montado. Isto é um problema para sistemas com pouca memória que dependem do arquivo de troca desde sua inicialização. 5.8 O sistema de arquivos /proc É o sistema de arquivos do Kernel do GNU/Linux. Ele oferece um método de ler, gravar e modificar dinamicamente os parâmetros do kernel, muito útil para curiosos (como eu) e programas de configuração. A modificação dos arquivos do diretório /proc é o método mais usado para modificar a configuração do sistema e muitos programas também dependem deste diretório para funcionar. Nele você tem todo o controle do que o seus sistema operacional está fazendo, a configuração dos hardwares, interrupções, sistema de arquivos montado, execução de programas, memória do sistema, rede, etc. Agora entre no diretório /proc digite ls e veja a quantidade de arquivos e diretórios que ele possui, dê uma passeada por eles. Abaixo a descrição de alguns deles (todos podem ser visualizados pelo comando cat): • Diretórios com números - Estes identificam os parâmetros de um processo em exe- cução. Por exemplo, se o PID (identificação do processo) do inetd for 115, você pode entrar no diretório 115 e verificar as opções usadas para execução deste programa atra- vés de cada arquivos existente dentro do diretório. Alguns são: – cmdline - O que foi digitado para iniciar o processo (pode também ter sido iniciado através de um programa ou pelo kernel). – environ - Variáveis de Ambiente existentes no momento da execução do processo. Capítulo 5. Discos e Partições 60 1 Nós temos dois volumes físicos representados por hda1 e hdb1. Cada um desses volu- mes físicos tem um Phisical Extend (PE) de 4M (o padrão). 2 Estes dois volumes físicos acima representam o espaço total do grupo de volume lvmdisk em /dev/lvmdisk. 3 Do grupo de volume lvmdisk são criados dois volumes lógicos chamados var e home, estando disponíveis para particionamento através de /dev/lvmdisk/var e /var /lvmdisk/home. Na prática, o espaço do volume lógico é definido alocando-se alguns Phisical Extends (PE) dos volumes físicos como logical extends (LE) dos volumes lógicos. Desta forma, o tamanho de todos os PEs e LEs existentes dentro de um mesmo grupo de volume devem ser iguais. 5.9.2 Performance do LVM Um sistema com LVM tem sua performance um pouco reduzida quanto ao acesso a disco, devido as camadas adicionais de acesso aos dados, sendo afetadas operações em caracteres e inteligentes de acesso a dados. Entretanto, a performance de leitura/gravação de blocos é melhorada consideravelmente após a adoção do LVM. O LVM também garante que o sistema não mostre sintomas de paradas durante o esvaziamento de cache de disco, mantendo sempre uma certa constância na transfe- rência de dados mesmo em operações pesadas de I/O no disco. Depende de você avaliar estes pontos e considerar sua adoção. 5.9.3 Colocando LVM em seu sistema Nesta seção não tenho a intenção de cobrir todos os detalhes técnicos da implantação do LVM, a idéia aqui é fornecer uma referência básica e prática para uso em qualquer sistema normal (desconsiderando usos críticos). A idéia aqui é mostrar de forma prática como implantar LVM em sua máquina e preparar seu uso nos discos. Antes de começar, retire QUALQUER CD que estiver inserido na unidade de CD-ROM, pois eles podem causar erro no pvscan, pvdisplay, etc. 1 No particionamento, defina as partições do tipo 8E (Linux LVM). A partição Linux LVM é exatamente igual a Linux Native (82), a única vantagem é que o LVM utilizará auto detecção para saber quais partições ele deve utilizar no pvscan. 2 Instale o pacote lvm10 e uma imagem de kernel 2.4 que tenha suporte a LVM, ou compile seu próprio kernel (caso goste de máquinas turbinadas :-) 3 Execute o pvscan para detectar as partições marcadas como LVM e criar sua configura- ção em /etc/lvmtab.d. OBS: É normal o sistema procurar dispositivos de CD-ROM durante a execução do pvscan, apenas não deixe um CD na unidade para evitar grandes sustos se estiver desatento com os passos :-) 4 Rode o pvcreate no disco ou partição para dizer que ela será um volume físico do LVM: pvcreate /dev/hda1 ou pvcreate /dev/hda Em caso de dúvida sobre qual é a partição LVM, digite: fdisk -l /dev/hda (supondo que /dev/hda é o disco rígido que está configurando o LVM). Capítulo 5. Discos e Partições 61 5 Rode o pvdisplay /dev/hda1 para verificar se o volume físico foi criado. Recomendo que deixe a partição raíz (/) de fora do LVM para não ter futuros problemas com a ma- nutenção do seu sistema, a menos que tenha muitas opções de inicialização com suporte a LVM em mãos, ou algo mais complexo baseado em initrd :-) 6 Crie o grupo de volume na partição vgcreate lvmdisk /dev/hda1 /dev/hdb7. . . Note que partições de discos diferentes podem fazer parte de um mesmo grupo de volume (VG) do LVM. Caso use o devfs, será preciso usar o caminho completo do dispositivo ao invés do link: vgcreate lvmdisk /dev/ide/host0/bus0/target0/lun0/part1 O valor padrão do “Phisical Ex- tend” é de 4MB mas pode ser alterado pelo parâmetro “-s tamanho”, assim o tamanho máximo do grupo de volume será de 256GB (4MB * 64.000 extends que são suportados por volume lógico). Os valores do Phisical Extend (PE) pode ser de 8k a 16GB. Não é possível modificar o tamanho do PE após ele ser definido. 7 Verifique o grupo de volume (VG) recém criado com o comando: vgdisplay ou vgdisplay /dev/hda6. Atente para a linha “Free PE / tamanho”, que indica o es- paço livre restante para criar os volumes lógicos (LV). 8 Crie o volume lógico (LV) com o comando: lvcreate -L1500 -ntmp lvmdisk Que vai criar uma partição LVM de 1500MB (1,5GB) com o nome tmp (acessível por /var /lvmdisk/tmp) dentro do grupo lvmdisk. Você deverá fazer isso com as outra partições. 9 Agora resta criar um sistema de arquivos (ext3, reiserfs, xfs, jfs, etc) como faria com qualquer partição física normal: mkfs.ext3 /dev/lvmdisk/tmp mkfs.reiserfs /dev/lvmdisk/tmp OBS: Caso deseje montar automaticamente o volume LVM, coloque o caminho completo do LVM ao invés do volume físico no /etc/fstab: /dev/lvmdisk/tmp. 5.9.4 Aumentando o tamanho de um volume lógico O processo para aumentar o tamanho do volume lógico consiste em primeiro aumentar o ta- manho do VG com o lvextend e depois ajustar o tamanho do sistema de arquivos: # Aumenta o espaço do volume lógico tmp para 1G lvextend -L1G /dev/lvmdisk/tmp # Aumenta em 200MB o espaço no volume lógico tmp lvextend -L+200M /dev/lvmdisk/tmp As unidades Kk,Mm,Gg,Tt podem ser usadas para especificar o espaço. Após modificar o volume lógico, será preciso aumentar o tamanho do sistema de arquivos para ser exatamente igual ao tamanho do LV. Isto depende do seu sistema de arquivos: ext2/3 resize2fs /dev/lvmdisk/tmp O ext2/3 ainda vem com o utilitário e2fsadm que exe- cuta os dois comandos (lvextend e resize2fs) de uma só vez: e2fsadm -L+1G /dev/lvmdisk/tmp OBS: Você deverá desmontar o sistema de arquivos antes de al- terar o tamanho de um sistema de arquivos ext2 ou ext3. Para alterar o tamanho durante a execução do sistema operacional, é necessária a aplicação do patch ext2online no kernel. Capítulo 5. Discos e Partições 62 reiserfs resize_reiserfs -f /dev/lvmdisk/tmp O tamanho do sistema de arquivos reiserfs poderá ser modificado on-line, assim não precisa parar seu servidor para esta operação. xfs xfs_growfs /tmp Note que deve ser especificado o ponto de montagem ao invés do dispo- sitivo. O sistema de arquivos deverá ser montado antes de ser modificado e incluido no /etc/fstab. 5.9.5 Diminuindo um volume lógico Para diminuir o tamanho de um volume lógico, certifique-se de ter calculado o espaço correta- mente para acomodar todos os dados que já existem na partição. A diferença para o processo de aumentar o LV é que neste o sistema de arquivos é reduzido primeiro e depois o LV: ext2/3 e2fsadm -L-1G /dev/lvmdisk/tmpVocê também poderá usar o resize2fs e de- pois o lvreduce, mas deverá dizer o tamanho em blocos para o resize2fs que varia de acordo com o tamanho do sistema de arquivos: resize2fs /dev/lvmdisk/tmp 524288 lvreduce -L-1G /dev/lvmdisk/tmp OBS: Você deverá desmontar o sistema de arquivos antes de alterar o tamanho do sis- tema de arquivos, a não ser que tenha o patch ext2online aplicado no kernel. reiserfs resize_reiserfs -s-1G /dev/lvmdisk/tmp lvreduce -L-1G /dev/lvmdisk/tmp O tama- nho do sistema de arquivos reiserfs poderá ser modificado on-line, assim não precisa parar seu servidor para a modificação. xfs Não é possível diminuir o tamanho de um sistema de arquivos XFS em sua versão atual (12/2003). 5.10 Formatando disquetes As subseções seguintes explicarão maneiras de formatar seus disquetes para serem usados no GNU/Linux e DOS/Windows. 5.10.1 Formatando disquetes para serem usados no Linux Para formatar disquetes para serem usados no GNU/Linux use o comando: mkfs.ext2 [-c] [/dev/fd0] Em alguns sistemas você deve usar mke2fs no lugar de mkfs.ext2. A opção -c faz com que o mkfs.ext2 procure por blocos danificados no disquete e /dev/fd0 especifica a primeira unidade de disquetes para ser formatada (equivalente a A: no DOS). Mude para /dev/fd1 para formatar um disquete da segunda unidade. OBS: Este comando cria um sistema de arquivos ext2 no disquete que é nativo do GNU/Linux e permite usar características como permissões de acesso e outras. Isto também faz com que o disquete NÃO possa ser lido pelo DOS/Windows. Para formatar um disquete no GNU/Linux usando o FAT12 (compatível com o DOS/Windows) veja próxima seção. Exemplo: mkfs.ext2 -c /dev/fd0 Capítulo 5. Discos e Partições 65 • /dev/fd1 - Segunda unidade de disquetes. • /dev/hda - Primeiro disco rígido na primeira controladora IDE do micro (primary master). • /dev/hda1 - Primeira partição do primeiro disco rígido IDE. • /dev/hdb - Segundo disco rígido na primeira controladora IDE do micro (primary slave). • /dev/hdb1 - Primeira partição do segundo disco rígido IDE. • /dev/sda - Primeiro disco rígido na primeira controladora SCSI ou SATA. • /dev/sda1 - Primeira partição do primeiro disco rígido SCSI ou SATA. • /dev/sdb - Segundo disco rígido na primeira controladora SCSI ou SATA. • /dev/sdb1 - Primeira partição do segundo disco rígido SCSI ou SATA. • /dev/sr0 - Primeiro CD-ROM SCSI. • /dev/sr1 - Segundo CD-ROM SCSI. • /dev/xda - Primeiro disco rígido XT. • /dev/xdb - Segundo disco rígido XT. As letras de identificação de discos rígidos podem ir além de hdb, em meu micro, por exemplo, a unidade de CD-ROM está localizada em /dev/hdg (Primeiro disco - quarta controladora IDE). É importante entender como os discos e partições são identificados no sistema, pois será ne- cessário usar os parâmetros corretos para monta-los. 5.13 Montando (acessando) uma partição de disco Você pode acessar uma partição de disco usando o comando mount. mount [dispositivo] [ponto de montagem] [opções] Onde: dispositivo Identificação da unidade de disco/partição que deseja acessar (como /dev/hda1 (disco rígido) ou /dev/fd0 (primeira unidade de disquetes). ponto de montagem Diretório de onde a unidade de disco/partição será acessado. O diretório deve estar vazio para montagem de um sistema de arquivo. Normalmente é usado o diretório /mnt para armazenamento de pontos de montagem temporários. Capítulo 5. Discos e Partições 66 -t [tipo ] Tipo do sistema de arquivos usado pelo dispositivo. São aceitos os sistemas de arqui- vos: • ext2 - Para partições GNU/Linux usando o Extended File System versão 2 (a mais comum). • ext3 - Para partições GNU/Linux usando o Extended File System versão 3, com su- porte a journaling. • reiserfs - Para partições reiserfs, com suporte a journaling. • xfs - Para partições xfs, com suporte a journaling. • vfat - Para partições Windows 95 que utilizam nomes extensos de arquivos e dire- tórios. • msdos - Para partições DOS normais. • iso9660 - Para montar unidades de CD-ROM. É o padrão. • umsdos - Para montar uma partição DOS com recursos de partições EXT2, como per- missões de acesso, links, etc. Para mais detalhes sobre opções usadas com cada sistema de arquivos, veja a página de manual mount. -r Caso for especificada, monta a partição somente para leitura. -w Caso for especificada, monta a partição como leitura/gravação. É o padrão. Existem muitas outras opções que podem ser usadas com o comando mount, mas aqui procu- rei somente mostrar o básico para “montar” seus discos e partições no GNU/Linux (para mais opções, veja a página de manual do mount). Caso você digitar mount sem parâmetros, se- rão mostrados os sistemas de arquivos atualmente montados no sistema. Esta mesma listagem pode ser vista em /etc/mtab. A remontagem de partição também é muito útil, especialmente após reparos nos sistema de arquivos do disco rígido. Veja alguns exemplos de remontagem abaixo. É necessário permissões de root para montar partições, a não ser que tenha especificado a opção user no arquivo /etc/fstab (veja ‘fstab’ on this page). Exemplo de Montagem: • Montar uma partição Windows (vfat) de /dev/hda1 em /mnt somente para leitura: mount /dev/hda1 /mnt -r -t vfat • Montar a primeira unidade de disquetes /dev/fd0 em /floppy: mount /dev/fd0 /floppy -t vfat • Montar uma partição DOS localizada em um segundo disco rígido /dev/hdb1 em /mnt: mount /dev/hdb1 /mnt -t msdos. • Remontar a partição raíz como somente leitura: mount -o remount,rw / • Remontar a partição raíz como leitura/gravação (a opção -n é usada porque o mount não conseguirá atualizar o arquivo /etc/mtab devido ao sistema de arquivos / estar mon- tado como somente leitura atualmente: mount -n -o remount,rw /. 5.13.1 fstab O arquivo /etc/fstab permite que as partições do sistema sejam montadas facilmente es- pecificando somente o dispositivo ou o ponto de montagem. Este arquivo contém parâmetros sobre as partições que são lidos pelo comando mount. Cada linha deste arquivo contém a par- Capítulo 5. Discos e Partições 67 tição que desejamos montar, o ponto de montagem, o sistema de arquivos usado pela partição e outras opções. fstab tem a seguinte forma: Sistema_de_arquivos Ponto_de_Montagem Tipo Opções dump ordem /dev/hda1 / ext2 defaults 0 1 /dev/hda2 /boot ext2 defaults 0 2 /dev/hda3 /dos msdos defaults,noauto,rw 0 0 /dev/hdg /cdrom iso9660 defaults,noauto 0 0 Onde: Sistema de Arquivos Partição que deseja montar. Ponto de montagem Diretório do GNU/Linux onde a partição montada será acessada. Tipo Tipo de sistema de arquivos usado na partição que será montada. Para partições GNU/Linux use ext2, para partições DOS (sem nomes extensos de arquivos) use msdos, para partições Win 95 (com suporte a nomes extensos de arquivos) use vfat, para unida- des de CD-ROM use iso9660. Opções Especifica as opções usadas com o sistema de arquivos. Abaixo, algumas opções de montagem para ext2/3 (a lista completa pode ser encontrada na página de manual do mount): • defaults - Utiliza valores padrões de montagem. • noauto - Não monta os sistemas de arquivos durante a inicialização (útil para CD- ROMS e disquetes). • ro - Monta como somente leitura. • user - Permite que usuários montem o sistema de arquivos (não recomendado por motivos de segurança). • sync é recomendado para uso com discos removíveis (disquetes, zip drives, etc) para que os dados sejam gravados imediatamente na unidade (caso não seja usada, você deve usar o comando ‘sync’ on page 119 antes de retirar o disquete da unidade. dump Especifica a frequência de backup feita com o programa dump no sistema de arquivos. 0 desativa o backup. Ordem Define a ordem que os sistemas de arquivos serão verificados na inicialização do sis- tema. Se usar 0, o sistema de arquivos não é verificado. O sistema de arquivos raíz que deverá ser verificado primeiro é o raíz “/” (a não ser que você tenha um sistema de ar- quivos de outro tipo que não é montado dentro do diretório raíz e possui seu suporte embutido no kernel) . Após configurar o /etc/fstab, basta digitar o comando mount /dev/hdg ou mount /cdrom para que a unidade de CD-ROM seja montada. Você deve ter notado que não é neces- sário especificar o sistema de arquivos da partição pois o mount verificará se ele já existe no /etc/fstab e caso existir, usará as opções especificadas neste arquivo. Para maiores detalhes veja as páginas de manual fstab e mount. 5.14 Desmontando uma partição de disco Para desmontar um sistema de arquivos montado com o comando umount, use o comando umount. Você deve ter permissões de root para desmontar uma partição. Capítulo 6. Gerenciadores de Partida (boot loaders) 70 arquivos, tabela de partição, o arquivo que será carregado na memória para inicializar o sis- tema, etc. Abaixo um modelo do arquivo /etc/lilo.conf para sistemas que só possuem o GNU/Linux instalado: boot=/dev/hda1 compact install=text map=/boot/map vga=normal delay=20 lba32 image=/vmlinuz root=/dev/hda1 label=Linux read-only Para criar um novo gerenciador de partida através do arquivo /etc/lilo.conf , execute o comando lilo. No exemplo acima, o gerenciador de partida será instalado em /dev/hda1 (veja ‘Identifica- ção de discos e partições em sistemas Linux’ on page 64) , utilizará um setor de boot compacto (compact), modo de vídeo VGA normal (80x25), esperará 2 segundos antes de processar auto- maticamente a primeira seção image= e carregará o kernel /vmlinux de /dev/hda1. Para detalhes sobre opções que podem ser usadas neste arquivo veja ‘Opções usadas no LILO’ on page 72. Para mostrar o aviso de boot:, você deverá ligar as teclas Caps Lock ou Scrool lock na partida ou pressionar a tecla Shift durante os dois segundos de pausa. Outro método é incluir a opção prompt na seção global para que o aviso de boot: seja mostrado automaticamente após carregar o Lilo. Abaixo uma configuração para computadores com mais de um sistema operacional (Usando GNU/Linux e DOS): boot=/dev/hda1 compact lba32 install=menu map=/boot/map vga=normal delay=20 prompt image=/vmlinuz root=/dev/hda1 Capítulo 6. Gerenciadores de Partida (boot loaders) 71 label=linux read-only other=/dev/hda2 table=/dev/hda label=dos O exemplo acima é idêntico ao anterior, o que foi acrescentado foi a opção prompt na seção geral (para que seja mostrado imediatamente o aviso de boot: no momento em que o LILO for carregado), e incluída uma imagem de disco DOS localizado em /dev/hda2. No momento da inicialização é mostrada a mensagem boot: e caso seja digitado DOS e pressionado ENTER, o sistema iniciará o DOS. Caso a tecla Enter seja pressionada sem especificar a imagem, a primeira será carregada (neste caso o GNU/Linux). Você pode substituir a palavra GNU/Linux da opção label por o número 1 e DOS por 2, desta forma o número pode ser digitado para iniciar o sistema operacional. Isto é muito útil para construir um menu usando a opção message. Para detalhes veja ‘Opções usadas no LILO’ on the following page. A seção Geral vem do inicio do arquivo até a palavra delay=20. A partir do primeiro apare- cimento da palavra image, other ou range, tudo o que vier abaixo será interpretado como imagens de inicialização. Por padrão, a imagem carregada é a especificada por default= ou a primeira que aparece no arquivo (caso default= não seja especificado). Para carregar o outro sistema (o DOS), digite o nome da imagem de disco no aviso de boot: (especificada em label=) que será carregada. Você também pode passar parâmetros manualmente ao kernel digitando o nome da imagem de disco e uma opção do kernel ou através do arquivo /etc/lilo.conf (veja ‘Opções usadas no LILO’ on the next page). O LILO pode inicializar o seguintes tipos de imagens: • Imagens do kernel de um arquivo. Normalmente usado para iniciar o GNU/Linux pelo disco rígido e especificado pelo parâmetro image=. • Imagens do kernel de um dispositivo de bloco (como um disquete). Neste caso o número de setores a serem lidos devem ser especificados na forma PRIMEIRO-ÚLTIMO ou PRI- MEIRO+NÚMERO de setores a serem lidos. É necessário especificar o parâmetro image= e range=, por exemplo: image=/dev/fd0 range=1+512 Todas as opções do kernel podem ser usadas na inicialização por dispositivo. • O setor de boot de outro sistema operacional (como o DOS, OS/2, etc). O setor de partida é armazenado junto com a tabela de partição no arquivo /boot/map. É necessário espe- cificar o parâmetro OTHER=dispositivo ou OTHER=arquivo e a inicialização através de um setor de partida possui algumas opções especiais como o TABLE= (para especificar a tabela de partição) e o MAP-DRIVE= (identificação da unidade de discos pelo sistema operacional). Veja o exemplo desta configuração abaixo: other=/dev/hda2 table=/dev/hda Capítulo 6. Gerenciadores de Partida (boot loaders) 72 label=DOS map-drive=0x80 to = 0x81 map-drive=0x81 to = 0x80 Observações: • Caso o gerenciador de partida seja instalado no MBR do disco rígido (boot=/dev/hda), o setor de boot do antigo sistema operacional será substituído, retire uma cópia do se- tor de boot para um disquete usando o comando dd if=/dev/hda of=/floppy/mbr bs=512 count=1 no GNU/Linux para salvar o setor de boot em um disquete e dd if=/floppy/mbr of=/dev/hda bs=446 count=1 para restaura-lo. No DOS você pode usar o comando fdisk /mbr para criar um novo Master Boot Record. • Após qualquer modificação no arquivo /etc/lilo.conf , o comando lilo deverá ser novamente executado para atualizar o setor de partida do disco rígido. Isto também é válido caso o kernel seja atualizado ou a partição que contém a imagem do kernel desfragmentada. • A limitação de 1024 cilindros do Lilo não existe mais a partir da versão 21.4.3 (recomen- dada, por conter muitas correções) e superiores. • A reinstalação, formatação de sistemas DOS e Windows pode substituir o setor de par- tida do HD e assim o gerenciador de partida, tornando impossível a inicialização do GNU/Linux. Antes de reinstalar o DOS ou Windows, verifique se possui um disquete de partida do GNU/Linux. Para gerar um novo boot loader, coloque o disquete na uni- dade e após o aviso boot: ser mostrado, digite linux root=/dev/hda1 (no lugar de /dev/hda1 você coloca a partição raiz do GNU/Linux), o sistema iniciará. Dentro do GNU/Linux, digite o comando lilo para gerar um novo setor de partida. Agora reinicie o computador, tudo voltará ao normal. 6.1.2 Opções usadas no LILO Esta seção traz opções úteis usadas no arquivo lilo.conf com explicações sobre o que cada uma faz. As opções estão divididas em duas partes: As usadas na seção Global e as da seção Imagens do arquivo lilo.conf. Global • backup=[arquivo/dispositivo] - Copia o setor de partida original para o arquivo ou dispositivo especificado. • boot=dispositivo - Define o nome do dispositivo onde será gravado o setor de par- tida do LILO (normalmente é usada a partição ativa ou o Master Boot Record - MBR). Caso não seja especificado, o dispositivo montado como a partição raiz será usado. • compact - Tenta agrupar requisições de leitura para setores seguintes ao sendo lido. Isto reduz o tempo de inicialização e deixa o mapa menor. É normalmente recomendado em disquetes. Capítulo 6. Gerenciadores de Partida (boot loaders) 75 image=/vmlinuz #especifica o arquivo que contém a primeira imagem root=/dev/hda1 #partição onde a imagem acima esta localizada label=1 #identificação da imagem de disco read-only #monta inicialmente como somente leitura password=12345 #Usa a senha 12345 restricted #somente quando iniciar com o parâmetro single other=/dev/hda2 #especifica outro sistema que será carregado table=/dev/hda #a tabela de partição dele está em /dev/hda label=2 #identificação desta imagem de disco password=12345 #pede a senha antes de iniciar este sistema Você pode usar o exemplo acima como base para construir sua própria configuração persona- lizada do /etc/lilo.conf mas não se esqueça de modificar as tabelas de partições para seu sistema. Se você usa o Windows NT 4.0, Windows NT 5.0 (Windows 2000) ou o OS/2, recomendo ler o DOS+Windows+OS/2-HOWTO. Após criar seu arquivo /etc/lilo.conf , execute o comando lilo e se tudo ocorrer bem, o LILO será instalado. 6.2 GRUB (Os detalhes contidos na seção sobre o GRUB, foram integralmente desenvolvidos por Alexan- dre Costa <alebyte@bol.com.br> como contribuição ao guia FOCA GNU/Linux.) O GRUB (Grand Unified Boot Loader) é mais uma alternativa como gerenciador de boot e apre- senta alguns recursos extras com relação as outras opções disponíveis. Ele é flexível, funcional e poderoso, podendo inicializar sistemas operacionais como o Windows (9x, ME, NT, 2000 e XP), Dos, Linux, GNU Hurd, *BSD, OS/2 e etc. Podemos destacar também o suporte aos siste- mas de arquivos ext2 (Linux), ext3 e reiserfs (novos sistemas de arquivos journaling do Linux), FAT16 e FAT32 (Win 9x/ME), FFS (Fast File System usado no *BSD), minix (MINIX OS) e etc. Por utilizar o padrão Multiboot ele é capaz de carregar diversas imagens de boot e módulos. Por esse motivo ele é o único gerenciador de inicialização capaz de carregar o conjunto de servidores do GNU Hurd. O GRUB também permite buscar imagens do kernel pela rede, por cabo seriais, suporta discos rígidos IDE e SCSI, detecta toda a memória RAM disponível no sistema, tem interface voltada para linha de comandos ou menus de escolha, além de suportar sistemas sem discos e terminais remotos. Como possui inúmeros recursos, será apresentada sua utilização básica, ficando como sugestão ao leitor procurar se aprofundar mais em suas possibilidades de uso e configuração. 6.2.1 Como o GRUB trabalha com discos e partições O GRUB trabalha com uma notação diferente para apontar discos e partições sendo necessário algumas explicações antes de prosseguir. Veja a tabela comparativa: Capítulo 6. Gerenciadores de Partida (boot loaders) 76 No Linux No GRUB /dev/hda (hd0) /dev/hda1 (hd0,0) /dev/hda2 (hd0,1) /dev/hdb (hd1) /dev/hdb1 (hd1,0) /dev/hdb2 (hd1,1) /dev/sda (hd0) # Disco SCSI ID 0 /dev/sda1 (hd0,0) # Disco SCSI ID 0, partição 1 /dev/sda2 (hd0,1) # Disco SCSI ID 0, partição 2 /dev/sdb (hd1) # Disco SCSI ID 1 /dev/sdb1 (hd1,0) # Disco SCSI ID 1, partição 1 /dev/sdb2 (hd1,1) # Disco SCSI ID 1, partição 2 /dev/fd0 (fd0) OBS: Os discos IDE e SCSI são referenciados ambos como (hd?) pelo GRUB. Não há distinção entre os discos e de modo geral a identificação de unidades IDE é menor do que qualquer tipo de drive SCSI, salvo se você alterar a seqüência de inicialização (boot) na BIOS. Para saber como o Linux trabalha com partições veja ‘Identificação de discos e partições em sistemas Linux’ on page 64. 6.2.2 Instalando o GRUB A instalação do GRUB ao contrário da instalação do LILO (‘LILO’ on page 69), só precisa ser executada uma única vez. Caso seja necessária alguma mudança como por exemplo adicionar uma nova imagem, esta pode ser feita apenas editando o arquivo de configuração menu.lst. No MBR Um método simples de adicionar o GRUB para gerenciar seu MBR (Master Boot Record) é ro- dando o seguinte comando (como superusuário): # /sbin/grub-install /dev/hda Este comando grava o GRUB no MBR do primeiro disco e cria o diretório /boot/grub onde estarão os arquivos necessários para o seu funcionamento. Neste ponto o GRUB já está instalado e quando você reiniciar seu computador irá se deparar com uma linha de comandos, onde terá Capítulo 6. Gerenciadores de Partida (boot loaders) 77 que carregar a imagem do kernel manualmente. Mais adiante será explorada a utilização desta linha de comando que é muito eficiente. Provavelmente você achará mais interessante copiar o arquivo de configuração de exemplos do GRUB e otimizá-lo às suas necessidades. Note que isto não exclui a possibilidade de utilizar a linha de comando, apenas cria uma interface de menus onde você pode configurar várias opções de boot de uma forma organizada, automatizada e funcional. Copie este arquivo para o diretório /boot/grub com o seguinte comando: # cp /usr/share/doc/grub/examples/menu.lst /boot/grub Por ser um arquivo de exemplos será necessário otimizá-lo de acordo com suas necessidades, o que será abordado mais a frente. 6.2.3 No disco flexível (somente linha de comando) Quando criamos um disquete de partida, este funcionará em um sistema qualquer, podendo utilizar este disquete em várias máquinas diferentes ou em uma máquina em que tenha tido algum problema com o GRUB no MBR. Coloque um disquete virgem e digite os seguintes co- mandos: # dd if=/usr/lib/grub/i386-pc/stage1 of=/dev/fd0 count=1 # dd if=/usr/lib/grub/i386-pc/stage2 of=/dev/fd0 seek=1 Estes comandos permitem que seja apresentada a linha de comando do grub quando este disco for utilizado para boot. 6.2.4 No disco flexível (com interface de menu) Quando foi criado o disquete de partida anteriormente, este só nos permitia utilizar a linha de comando sendo necessário carregar o menu.lst pelo disco rígido (o qual deve estar presente). Em alguns casos este disco satisfaz as necessidades básicas mas pode haver um momento em que você deseje ter um disquete que funcione com vários sistema e não dependa de um disco fixo. Digite os seguintes comandos: # mke2fs /dev/fd0 # mount /dev/fd0 /floppy -t ext2 # mkdir /floppy/grub # cp /usr/lib/grub/i386-pc/stage[12] /floppy/grub # cp /usr/share/doc/grub/examples/menu.lst /floppy/grub # umount /floppy # /sbin/grub
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved