Baixe o app para aproveitar ainda mais
Prévia do material em texto
Apostila Debian Intermediário Desktop Parana Apostila Debian Intermediário - Desktop Parana Direitos autorais: Essa Apostila está licenciada sob uma Licença Creative Commons AtribuiçãoUso NãoComercial Compartilhamento pela mesma licença 2.0 Brazil. Pode ser copiada, distribuída e modificada. Para ver uma cópia desta licença, visite http://creativecommons.org/licenses/byncsa/2.0/br/ ou envie uma carta para Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. 2 Documento Apostila Debian Intermediário - Desktop Parana Versão 1.9 Data de Revisão 29 de Janeiro de 2010, por Robson Alves Pavan Equipe Técnica Mantenedor: Robson Alves Pavan Revisor: Robson Alves Pavan Colaboradores: Robson Alves Pavan Felipe Camargo de Pauli André Lucas Falco Andre Luiz de Souza Paula Coordenação do projeto: Jonsue Trapp Martins Páginas 168 páginas Índice APROFUNDANDO-SE NO APT............................................................................................9 APT (ADVANCED PACKAGE TOOL)................................................................................9 ARQUIVOS DE CONFIGURAÇÃO “APT.CONF”............................................................14 Grupos.........................................................................................................................15 Exemplos:....................................................................................................................15 ARQUIVO DE CONFIGURAÇÃO “PREFERENCES”.....................................................16 DPKG...............................................................................................................................18 Utilizando o dpkg.........................................................................................................18 Ações...............................................................................................................................19 Opções.............................................................................................................................21 Exemplos de ocorrências mais comuns no uso do dpkg.................................................21 COMPILANDO PROGRAMAS A PARTIR DO CÓDIGO FONTE......................................25 GERENCIANDO DISCOS E PARTIÇÕES..........................................................................27 O QUE SÃO PARTIÇÕES...............................................................................................27 OBTENDO INFORMAÇÕES SOBRE AS PARTIÇÕES..................................................28 PARTICIONANDO DISCO COM CFDISK.......................................................................30 Excluindo uma partição...............................................................................................32 Salvando as alterações...............................................................................................32 SISTEMA DE ARQUIVOS...............................................................................................32 CRIANDO SISTEMA DE ARQUIVOS..............................................................................33 GERENCIADOR DE PARTIDA – GRUB.............................................................................34 TRABALHANDO COM DISCOS E PARTIÇÕES............................................................34 INSTALAÇÃO DO GRUB................................................................................................35 CUSTOMIZANDO O ARQUIVO MENU.LST...................................................................36 OUTROS PARÂMETROS DE CONFIGURAÇÃO DAS IMAGENS................................41 LINHA DE COMANDO DO GRUB...................................................................................42 RUNLEVEL..........................................................................................................................45 PROCESSO DE BOOT...................................................................................................45 CONHECENDO OS RUNLEVELS..................................................................................45 IDENTIFICANDO O RUNLEVEL EM UTILIZAÇÃO........................................................46 O ARQUIVO /ETC/INITTAB.............................................................................................46 ENTENDENDO O FUNCIONAMENTO DOS RUNLEVELS...........................................48 INSERINDO/ REMOVENDO SCRIPTS DO RUNLEVEL................................................49 SISTEMA DE LOGS............................................................................................................51 PRINCIPAIS ARQUIVOS DE LOG..................................................................................51 LENDO UM ARQUIVO DE LOG......................................................................................52 CONFIGURANDO O SYSLOG........................................................................................52 LOGGER..........................................................................................................................55 LOGCHECK.....................................................................................................................56 LOGROTATE...................................................................................................................57 CRON...................................................................................................................................61 COMANDOS........................................................................................................................64 ALIAS...............................................................................................................................64 BC....................................................................................................................................66 LAST................................................................................................................................73 LASTLOG........................................................................................................................75 NEWUSERS....................................................................................................................77 STAT................................................................................................................................77 CONVERT.......................................................................................................................80 CONVMV.........................................................................................................................81 Apostila Debian Intermediário - Desktop Parana ICONV..............................................................................................................................82 Identificando a codificação de caractere do arquivo e a do sistema..........................83 PASTE..............................................................................................................................84 CUT..................................................................................................................................85 DD....................................................................................................................................88 FIND.................................................................................................................................90 XARGS............................................................................................................................95 FSCK................................................................................................................................96 FUSER.............................................................................................................................98LSOF..............................................................................................................................100 PIDOF............................................................................................................................101 NICE..............................................................................................................................102 RENICE.........................................................................................................................104 NOHUP..........................................................................................................................105 LSPCI.............................................................................................................................105 LSUSB...........................................................................................................................107 HWCLOCK.....................................................................................................................109 NMBLOOKUP................................................................................................................110 NSLOOKUP...................................................................................................................114 GERÊNCIA DE REDES DE COMPUTADORES...............................................................117 CAMADA OSI.................................................................................................................117 PROJEÇÃO DA ARQUITETURA TCP/IP SOBRE O MODELO OSI.............................119 EMPACOTAMENTO DE DADOS..................................................................................120 TCP/IP...........................................................................................................................121 CAMADA DE APLICAÇÃO............................................................................................122 CAMADA DE TRANSPORTE........................................................................................123 TCP............................................................................................................................124 UDP...........................................................................................................................124 Portas e soquetes......................................................................................................125 CAMADA INTER-REDES..............................................................................................126 IP...............................................................................................................................127 ICMP..........................................................................................................................128 ARP...........................................................................................................................128 CAMADA DE ENLACE..................................................................................................130 Ethernet.....................................................................................................................130 PARÂMETROS NECESSÁRIOS...................................................................................131 IP...............................................................................................................................131 Rede..........................................................................................................................132 Gateway.....................................................................................................................132 Nomes.......................................................................................................................132 PRIMEIROS SOCORROS.............................................................................................134 PING..............................................................................................................................135 WGET............................................................................................................................137 IFCONFIG......................................................................................................................138 up...............................................................................................................................140 down..........................................................................................................................140 IFUP E IFDOWN............................................................................................................141 ROUTE..........................................................................................................................142 Sintaxe.......................................................................................................................144 Exemplos...................................................................................................................145 5 Apostila Debian Intermediário - Desktop Parana IFTOP............................................................................................................................146 Primeira coluna..........................................................................................................147 Segunda coluna.........................................................................................................148 Terceira coluna..........................................................................................................148 Quarta, quinta e sexta coluna...................................................................................148 TRACEROUTE..............................................................................................................150 ttl (Time To Live)........................................................................................................151 ARP................................................................................................................................152 DIG.................................................................................................................................154 Servidor-de-nome......................................................................................................154 Tipo de pesquisa.......................................................................................................155 Objeto a ser pesquisado...........................................................................................155 Exemplos de saídas..................................................................................................155 MII-TOOL.......................................................................................................................157 Negociação................................................................................................................158 Alterar os modos disponíveis....................................................................................159 Mensagens de erro....................................................................................................160 NETSTAT.......................................................................................................................160 Primeira coluna (Protocolo utilizado)........................................................................161 Segunda coluna (Fila de dados a serem recebidos)................................................161 Terceira coluna (Fila de dados a serem enviados)...................................................161 Quarta coluna (Endereço local).................................................................................162 Quinta coluna (Endereço remoto).............................................................................162Sexta coluna (Estado)...............................................................................................162 Praticando.................................................................................................................162 GERENCIADOR WICD.................................................................................................163 Estrutura do Wicd......................................................................................................164 Funcionamento e configurações...............................................................................165 REFERÊNCIAS BIBLIOGRÁFICAS.................................................................................167 6 Índice de Figuras Figura 1: Arquivo sources.list.........................................................................................................10 Figura 2: Tela principal do cfdisk....................................................................................................30 Figura 3: Cfdisk - criando uma nova partição.................................................................................30 Figura 4: Cfdisk - escolhendo o tipo de partição (primária ou lógica).............................................31 Figura 5: Cfdisk - definindo o tamanho da partição........................................................................31 Figura 6: Cfdisk - Selecionando tipo de partição............................................................................32 Figura 7: Exemplo resultado de uso do comando convert..............................................................81 Figura 8: Representação de uma consulta a um servidor WINS..................................................112 Figura 9: Camada OSI..................................................................................................................118 Figura 10: Saída do comando IFTOP...........................................................................................147 Figura 11: Janela do Wicd............................................................................................................165 Apostila Debian Intermediário - Desktop Parana APROFUNDANDO-SE NO APT No Debian temos basicamente duas formas de se instalar pacotes: (a) através das ferra- mentas de instalação; (b) ou manualmente compilando o pacote. O Debian é capaz de trabalhar com diversas ferramentas de instalação, dentre elas destacamos o APT e o DPKG. Quando fala- mos em instalação ou desinstalação em qualquer distribuição Linux, sempre esbarramos no termo pacote em vez de programa. Isso vem da ideia de empacotamento de programas, que é um agru- pamento de dados que contém os arquivos e a estrutura indicativa de onde cada arquivo deve ser gravado no sistema para que o mesmo funcione corretamente, junto com um conjunto de instru- ções que são executadas antes (preinst) e após (postinst) a instalação e remoção dos mesmos. Cada distribuição Linux possui uma extensão representativa para seus pacotes. No Debian e seus derivados, a extensão utilizada é ”.deb”. Outra extensão comumente encontrada é “.rpm” que é oriunda das distribuições derivadas do RedHat. Ainda é possível encontrar arquivos binári- os, como acontece quando instalamos alguns módulos proprietários de interfaces de rede. Estes possuem uma série de alternativas em seu corpo, permitindo que o módulo seja instalado inde- pendente da distribuição (desde que ela seja suportada). APT (ADVANCED PACKAGE TOOL) O APT é a principal ferramenta de manipulação de pacotes do Debian. Com ele é possível instalar, remover, reinstalar, configurar, atualizar, etc... É uma ferramenta completa que possui muitos recursos que são utilizados através dos vários comandos do APT. Os comandos mais utili- zados são o “apt-get” e o “apt-cache”. O APT possui uma ferramenta com interface gráfica que permite a instalação e remoção de pacotes. Ele se chama “Gerenciador de Pacotes Synaptic”. Antes de nos aprofundarmos no estudo do APT devemos fazer algumas observações sobre alguns pontos com relação a seu uso. ● Com exceção dos recursos de pesquisa do APT, todos os demais só podem ser exe- cutado pelo superusuário (root). Quando tentamos utilizar esses recursos como usuários co- muns, uma mensagem de erro parecida com “E: Não foi possível abrir arquivo de trava /var/lib/dpkg/lock – open (13 Permissão negada)” é apresentada na tela. ● Não é possível executar mais de uma instância simultaneamente. Enquanto uma ins- tância estiver sendo executada as tentativas de se iniciar uma outra resultaram em erro, como “E: Não foi possível obter trava /var/lib/dpkg/lock – open (11 Recurso temporariamente indisponível)”. É comum esse erro acontecer na seguinte situação: algum usuário deixa o synaptic aberto ou esta efetuando as atualizações de segurança e tentar instalar algum pa- cote através do APT. 9 Apostila Debian Intermediário - Desktop Parana ● Para o correto funcionamento do APT, os repositórios de onde serão baixados os pa- cotes devem estar corretamente configurados no arquivo “sources.list” que se encontra no diretório “/etc/apt”. configuração do arquivo “sources.list” deve ser feita da seguinte forma: primeira- mente deve ser passado o tipo de pacote que será instalado, onde o parâmetro “deb” o define que o repositório configurado nesta linha trará os pacotes que contêm os componentes que serão instalados, ou seja, os programas e toda estrutura necessária para seu funcionamento no sistema, e “deb-src” define os pacotes que contêm os códi- gos fontes dos pacotes tipo “deb”. Em seguida devemos definir qual protocolo será utili - zado para transferências dos pacotes (http ou ftp), seguido do endereço (ip ou nome) do repositório e do compartilhamento desejado. Após o endereço, devemos definir a qual release os pacotes devem pertencer e as seções desejadas (pacotes livres, livres de- pendentes de proprietários ou integralmente proprietários). A Geralmente quando instalamos um pacote, para que funcione corretamente, ele depende de outros pacotes (que podem conter bibliotecas ou outros programas). Estes pacotes, os quais ele depende, chamamos de dependências. Um pacote pode ter várias dependências sendo que paco- tes diferentes podem vir a ter dependências em comum e as próprias dependências podem vir a ter dependências, como numa grande teia de pacotes que unidos formam um sistema funcional. Sabendo que um pacote possui dependências ao tentarmos instalá-lo, para que ele funcio- ne, precisamos instalar também todas as suas dependências e as dependências de suas depen- dências. Isso torna esse processo muitas vezes complexo e trabalhoso. O APT é considerado por muitos como a melhor ferramenta para gerenciamento de pacotes principalmente devido a sua capacidade, através do apt-get, de quando acionando para instalação de um pacote, sempre seguir uma determinada ordem que possibilita a instalação dos pacotes e de todas as dependências necessárias para que ele funcione. A ordem seguida por ele é esta: ve- rificar se o pacote existe na lista local, resolver as dependências, solicita ao servidor todos os pa- cotes necessários, faz o download, descompacta, configura e instala os pacotes. 1. Verificação de existência do pacote: Verifica se o pacote indicado para instalação está disponível nos repositórios através da lista local de pacotes. 2. Resolver dependências: Caso o pacote exista, verifica quais são as suas dependências, 10 Figura 1: Arquivo sources.list Apostila Debian Intermediário - Desktop Parana a disponibilidade delas e se alguma já está instalada no sistema. Quando encontra depen- dências já instaladas, verifica se estão com a versão correta. Em seguida, caso não haja nenhum conflito com os pacotes instalados e suas dependênciassejam sanadas, será exi- bido um relatório com toda relação de pacotes a serem instalados, removidos e atualiza- dos, além de, em alguns casos, mostrar uma relação de pacotes sugeridos ou recomenda- dos para instalação junto a uma solicitação de confirmação para continuidade do processo de instalação. 3. Baixar: Ele acessa o repositório configurado no “sources.list” e faz o download do pacote e de suas dependências para o seu computador, no diretório “/var/cache/apt/archives”. 4. Descompactar: O pacote é descompactado para iniciar a instalação. 5. Configurar: Todas as configurações necessárias para que a instalação se dê de forma acertada são realizadas. Estas configurações muita vezes não interagem com o adminis- trador. Caso seja necessário que este informe algo ao instalador, será perguntado. 6. Instalar: Todos os componentes do pacote são copiados para os diretórios devidos. Agora iremos ver algumas formas de uso do comando apt-get mostrando seus principais parâmetros: apt-get update – Existe uma lista, que contém uma descrição de todos os pacotes dispo- níveis para o Debian, disponível dentro de cada repositório de pacotes. O “apt-get” consulta esta lista para saber o que pode ser instalado. Este comando faz uma comparação entre a lista que você têm armazenada e a lista que está no servidor de pacotes. Se a sua for mais velha, ele faz o download da mais recente. A atualização de um único pacote provoca o lançamento de um nova lista. Este comando sempre deve ser executado antes de se fazer a instalação de algum pacote e após efetuar alterações no arquivo “sources.list”. apt-get upgrade – Esta é a opção responsável pela atualização de pacotes. Quando você executa este comando, uma lista de pacotes é copiada do repositório para a máquina local do usuário, onde é feita uma comparação entre as versões de softwares existentes no repositório e na máquina local. Caso existam versões mais recentes para os programas que o usuário possui em seu sistema, então, o APT automaticamente atualizará estes programas no computador do usuário. Não é preciso dizer qual pacote você quer atualizar. Independente de ser apenas um, ou serem vários, ele fará toda atualização necessária. apt-get clean - Após a instalação de um pacote, não precisamos necessariamente man- ter o arquivo ”.deb” em nosso sistema (em “/var/cache/apt/archives”). O processo de instalação não remove os pacotes baixados! Se você não remover os pacotes baixados, começará a acumu- lá-los no disco rígido. Com o passar do tempo, isso pode causar um problema de falta de espaço. 11 Apostila Debian Intermediário - Desktop Parana O “apt-get clean” faz a remoção de todos os pacotes do diretório de cache do APT. apt-get install PACOTE - Executamos este comando para realizar a instalação de paco- tes no sistema. Se quisermos instalar mais de um programa, basta escrever todos os nomes se- parados por espaço na linha de execução do comando. Se um pacote precisa de outros para ser instalado, isto é, se ele tem pré-requisitos, eles também serão selecionados para instalação auto- maticamente. Quando você requisita a instalação de um pacote que não tem dependências, a ins- talação começa imediatamente. Caso existam dependências, elas são mostradas a você e o pro- grama aguarda a sua confirmação (“s/n”) para continuar. Existem vários motivos para ele esperar por uma confirmação: a lista de dependências pode ser muito grande e você pode não querer ins- talar todos os pacotes; pode não haver espaço em disco suficiente para instalar o programa e/ou suas dependências; o pacote ser incompatível com outro já instalado e exigir que este seja remo- vido; ou, ainda, o repositório não é uma fonte confiável para o Debian, que acontece quando não existe na máquina a chave pública do repositório de onde vem a atualização. Existe ainda, um caso em que há mais de uma versão disponível para o mesmo pacote. Se um pacote chamado “nome” possui uma versão “1.0-0” e “2.0-0”, por exemplo, a versão mais nova será instalada por padrão, entretanto, podemos querer instalar a versão mais antiga (1.0-0), tendo que executar o comando da seguinte forma: # aptget install nome=1.00 apt-get dist-upgrade - Possibilita a atualização completa da distribuição utilizada pelo usuário. É importante que o usuário tenha em mente que a execução deste comando num sistema que utilize meta-pacotes customizados, como é o caso do “Debian Desktop Paraná” usado na Ce- lepar, ou versões de software instaladas manualmente (através de compilação do código fonte, por exemplo), poderão gerar problemas graves, impossibilitando inclusive o uso posterior do siste- ma. Para a devida utilização deste comando, é necessário alterar o arquivo de configuração do APT, o “/etc/apt/sources.list”, configurando o mesmo para utilizar os repositórios da nova distribui- ção que será instalada no sistema. apt-get remove PACOTE - Remove um ou mais pacotes. Esta operação faz a desinstala- ção de um pacote do sistema e não a remoção do “.deb” do diretório de cache do APT. Em alguns casos, os arquivos de configuração e/ou dados do pacote são mantidos. Isso pode ser bom ou ruim. Se você removeu um pacote por acidente, todo o seu trabalho de configuração dele ainda estará preservado. Preste atenção às mensagens mostradas durante a remoção de um pacote para saber o que está acontecendo. Observe também que, se algum pacote depende do pacote a ser removido, esse pacote também será removido. apt-get --purge remove PACOTE - Remove um ou mais pacotes e seus respectivos ar- quivos de configuração. 12 Apostila Debian Intermediário - Desktop Parana apt-get source PACOTE - Possibilita que o código fonte de um programa seja copiado para máquina local em vez do binário do programa e seus scripts de configuração, que compõem o pacote do programa propriamente dito. Para baixar arquivos contendo o código fonte de progra- mas para sua máquina, é necessário configurar adequadamente o arquivo “/etc/apt/sources.list”. Para isso, veja o tópico “Reconfigurando a lista de pacotes”, na sequência. apt-get build-dep PACOTE - Este comando tenta satisfazer as dependências que um de- terminado pacote contendo código fonte de um programa possui, para ser compilado. Por exem- plo: suponha que você deseja recompilar o código fonte do “tuxracer” (um jogo). Se você executar o comando “apt-get build-dep tuxracer”, o APT tentará instalar todos os pacotes que sejam neces- sários para compilação do pacote “tuxracer”. Em algumas situações, é necessário instalar pacotes além daqueles que são trazidos automaticamente pelo comando “apt-get build-dep”. Isto é algo natural e você deverá se acostumar a estas situações. apt-get check - É uma ferramenta de diagnóstico. Ele atualiza o cache de pacotes e veri- fica se há alguma dependência quebrada que necessita ser resolvida (utilizando-se “apt-get -f ins- tall”) no sistema. apt-get install --reinstall PACOTE - Em algumas situações, precisaremos reinstalar um pacote já presente no sistema. Para isso, podemos utilizar este o comando que permite fazer isso. Tome o cuidado de fazer uma cópia dos seus arquivos de configuração para não ter surpresas de- sagradáveis. Além do “apt-get” vamos ver também o uso do “apt-cache” que é a ferramenta de pesquisa do APT. Através das ferramentas de pesquisa podemos procurar por pacotes assim como pesqui- sar informações mais detalhas sobre um determinado pacote. apt-cache search NOME - Para procurar por um pacote qualquer, executamos este co- mando. Ele faz uma pesquisa na lista de pacotes disponíveis, procurando pacotes que possuam a expressão fornecida no argumento “NOME”. A saída deste comando, apresenta todos os pacotes que apresentam a palavra fornecidacomo argumento em parte do nome ou na descrição do paco- te. Existem formas mais complexas de busca que podem ser mais claras ou mais específicas, mas geralmente, a utilização do comando “grep” para filtrar a saída já é suficiente para grande maioria dos casos. apt-cache show PACOTE - Uma vez descoberto o nome correto do pacote Debian, você pode visualizar todas as informações sobre o pacote, bem como seu mantenedor, sua versão, sua descrição, dentre outras informações relevantes. apt-cache showsrc PACOTE – Tem a mesma função que o comando “apt-cache show”, porém, atua mostrando informações sobre pacotes fontes. 13 Apostila Debian Intermediário - Desktop Parana ARQUIVOS DE CONFIGURAÇÃO “APT.CONF” O apt possui a possibilidade, como quase todas aplicações utilizadas no Debian, de ser alte- rado, personalizado, ou seja, configurado de acordo com o interesse do administrador por meio de arquivos de configuração. Sempre que uma ferramenta do grupo APT é iniciada, ela irá ler os ar- quivos de configuração para saber qual será o seu comportamento. Nas versões anteriores ao De- bian Lenny, essas configurações eram realizadas no arquivo /etc/apt.conf. A partir da versão Lenny, distribuição esta que é a consistência do Desktop Paraná sob a versão 2.x, foi criado um diretório que aloca vários arquivos de configuração. O diretório é o /etc/apt/apt.conf.d, e dentro de- les podemos encontrar vários arquivos. Estes arquivos seguem a mesma sintaxe do antigo apt.- conf, com a diferença de existir um arquivo para cada configuração diferente. Para que o apt saiba qual arquivo tem maior prioridade em relação ao outro, o nome dos arquivos deve iniciar com um número de 00 a 99. odas as opções que são passadas pelo usuário através da linha de comandos sob- rescrevem as configurações contidas no arquivo “apt.conf”.T !! Por motivos estritamente didáticos, iremos, a partir de agora, indicar cada ar- quivo desses que podem ser alocados dentro do diretório /etc/apt/apt.conf.d como apt.conf. !! O arquivo “apt.conf” é organizado sob a forma de árvore em divisões funcionais, como por exemplo: o grupo “APT”, o grupo “Acquire”, o grupo “DPKG” e a seção “Dir” (para diretórios de configuração). Sintaticamente, o arquivo pode ser configurado sob as seguintes formas: APT::Get::AssumeYes "true"; ou APT { Get { AssumeYes "true"; }; }; Nos exemplos acima, podemos perceber que tanto os caracteres “::”, quanto “{“ e “};”, são utilizados para definir qual o grupo funcional, seção e opções estamos tratando naquele espaço do arquivo de configuração. Em ambos exemplos que citamos (acima), estamos tratando da op- ção “Assume-Yes, da seção “Get”, do grupo funcional “APT”, contudo, de formas sintaticamente diferentes, mas produzindo o mesmo resultado. Linhas que se iniciam com os caracteres “//”, ou um bloco de texto, que se inicia com “/*” e termina com “*/”, são considerados comentários e são ignorados. 14 Apostila Debian Intermediário - Desktop Parana A seguir explicaremos a finalidade de cada grupo funcional, que pode ser configurado atra- vés do “apt.conf”: Grupos – O grupo “APT” É utilizado para controlar as opções gerais para uso de todas as ferramentas do APT. – O grupo “Acquire” É divisão funcional usada para configurar as rotinas de download de pacotes e manipuladores de URI's utilizados pelas ferramentas do APT. – O grupo “Dir” Definição de layout de diretórios. Usado para a configuração dos diretórios que serão utiliza- dos pelo APT. – O grupo “Dselect” Configurações que afetam o uso da ferramenta “dselect”, quando ela é utilizada em conjunto com o APT. – O grupo “DPKG” Configurações que afetam o uso do dpkg. As opções que fazem parte desta seção, alteram a forma normal como o dpkg atua, quando invocado pelo APT. – O grupo “Debug” Utilizado para configurar opções para depuração no uso das ferramentas do APT. Cada um destes grupos funcionais possui uma gama própria de opções, que não discutire- mos aqui, por ser muito vasta (cabe a vocês, caso Se você precisar saber qualquer detalhe sobre as opções que podem ser utilizadas neste arquivo de configuração, estude a documentação oficial do arquivo, através do comando: # man apt.conf Exemplos: Exemplo 01: Configurando um serviço de proxy para ser utilizado pelo APT. Esta configura- ção possibilita buscar pacotes de programas na Internet através de um servidor proxy existente na sua rede. Acquire 15 Apostila Debian Intermediário - Desktop Parana { http { Proxy “http://usuario:senha@proxy.organizacao:8080/”; }; }; Exemplo 02: Configurando a arquitetura e release (versão) padrão dos pacotes a serem uti- lizados pelo sistema. APT { Architecture "i386"; DefaultRelease “stable”; }; Exemplo 03: Configurando o diretório de cache do APT. Dir “/” { Cache "var/cache/apt/" { Archives "archives/"; srcpkgcache "srcpkgcache.bin"; pkgcache "pkgcache.bin"; }; }; Um ótimo arquivo de exemplos de configuração do “apt.conf” pode ser encontrado em “/usr/share/doc/apt/examples/configure-index.gz”. se o comando # cat /etc/apt/apt.conf.d/* para ver todas as configurações do apt de uma só vez.U ARQUIVO DE CONFIGURAÇÃO “PREFERENCES” O arquivo “/etc/apt/preferences” controla a prioridade de versão de pacotes. É possível man- ter fontes stable, testing e unstable ao mesmo tempo. Caso tenha inserido no arquivo “/etc/apt/sources.list” repositórios de versões diferentes (stable e testing por exemplo) é necessá- rio criar o arquivo “preferences” para que possa na instalação selecionar qual versão terá priorida- de e de qual versão você deseja instalar os pacotes. 16 Apostila Debian Intermediário - Desktop Parana uito cuidado quando estiver trabalhando com versões diferentes, uma má instala- ção de pacote pode gerar quebras de pacotes e até mesmo a paralisação do siste- ma. Isso acontece muito facilmente quando se usa um sistema personalizado, como o Desktop Paraná. M Segue um exemplo para o arquivo “preferences”: Package: * Pin: release a=stable PinPriority: 900 Package: * Pin: release a=testing PinPriority: 400 Neste exemplo para todos os repositórios stable, a prioridade será 900 e para testing 400, ou seja, vale a prioridade mais alta, então o stable será a opção default. Sempre que utilizarmos o comando “apt-get” com as opções “install”, “update”, “upgrade”, “source” e “dist-upgrade”, o pacote será do stable. Para instalar pacotes do testing devemos utilizar o comando: # aptget t testing install [pacote] comando acima só funcionará SE, e somente SE, no sources.list, os repositórios estiverem com a release definida como testing e stable. Não é aconselhável se utili- zar estes valores, porque caso haja uma alteração de release, um administrador descui- dado pode acabar instalando pacotes de versões novas em versões antigas. Utilizamos esta nomenclatura nesta apostila para facilitar eventuais atualizações da mesma. O O mesmo procedimento se aplica as opções “update”, “upgrade”, “dist-upgrade” ou “source”. Podemos definir que um pacote sempre venha da release testing. Para isso, dentro do ar- quivo “/etc/apt/preferences”, defina a prioridade específica de um pacote. Veja o exemplo abaixo: Package: amule Pin: release a=testing PinPriority: 905 O pacote desejado vai ter prioridade maior que o de qualquer outro release, então o pacote desejado será da release testing. Resumindo: podemos, se tivermos conhecimento suficiente para resolver problemas de de- pendências desencontradas, conflitos, estrutura de diretórios e pacotes, e compilação de aplicati- vos, ter pacotesde várias releases em um único sistema. Algumas vezes, existirá a facilidade de se usar o apt para instalação destes pacotes, tendo o arquivo preferences como um forte aliado nesta tarefa. Podemos priorizar uma release em geral, e configurar exceções para pacotes espe- cíficos. 17 Apostila Debian Intermediário - Desktop Parana DPKG O dpkg é considerado a base do Sistema de Gerenciamento de Pacotes do Debian e das distribuições que dele derivam. O dpkg é capaz de instalar, remover e fornecer informações sobre os pacotes .deb. É muito usado por usuários avançados da Debian e desenvolvedores para fins de instalação, manutenção e construção de pacotes. Ele também é utilizado como Back end por ferramentas como “apt-get” e “aptitude”, devido aos fatos de ser muito bom na instalação de pacotes, porém falhar nas tarefas de ser capaz de buscar pacotes em lugares remotos ou resolver conflitos complexos nas dependências dos paco- tes. Assim, estes outros comandos resolvem estes problemas e, na hora de realizar a instalação em si, chamam-no para o trabalho sujo. Hoje em dia utilizamos o dpkg principalmente como ferramenta de obtenção de informações sobre os pacotes instalados no sistema, na manipulação de pacotes (criação e extração) e na re- solução de problemas com pacotes. Para instalação, utilizamos o apt, que, como já dito, chama o dpkg para realizar a instalação. Os passos seguidos por ele são: (a) desempacotar os arquivos debian; (b) executar o preinst; (c) alocação dos arquivos nos seus devidos lugares; (d) executar o postinst. s arquivos de configuração e os scripts de instalação ficam dentro do diretório /var/lib/dpkg/info/NomeDoAplicativo. Os scripts utilizam a linguagem shell script, na maioria das vezes. Dê uma onlhado nos arquivos que lá existem. O O dpkg é composto por uma série de ferramentas que desempenham funções especificas em relação aos pacotes Debian. A seguir iremos fazer uma breve breve descrição do que as prin- cipais ferramentas fazem. ● dpkg - Desempenha a função em “senso estrito” do comando; ● dpkg-source - Empacota e desempacota os arquivos fontes de um .deb; ● dpkg-deb - Empacota e desempacota pacotes binários; ● dpkg-reconfigure - Permite que o usuário execute ajustes nos pacotes já instalados no sistema. Também é conhecido como “reconfigurador de pacotes”. É uma das ferramentas mais utilizadas do conjunto de aplicações do dpkg. Utilizando o dpkg O comando dpkg possui a seguinte sintaxe: Sintaxe: dpkg <ações> <opções> <pacotes> 18 Apostila Debian Intermediário - Desktop Parana Ações As principais ações são: -i end<pacote> – Instala um pacote no sistema sem resolver dependências. --unpack end<pacote> – Desempacota um arquivo .deb extraindo o conteúdo e montando uma estrutura de diretórios e arquivos de acordo com o esqueleto que foi usado na sua constru- ção. Perceba que não será descompactado em qualquer lugar, mas sim no lugar pré-definido. Se o administrador verificar com o “dpkg -l” o status do arquivo verificará que o pacote possuirá a op- ção U. Isto indica que o aplicativo foi somente descompactado, e não instalado da forma padrão. -X end<pacote> <diretório> – Faz a mesma coisa que o comando anterior, porém, em vez de extrair os arquivos nos seus devidos lugares, ele permite que o usuário escolha um novo desti- no. A diferença crucial está no fato de o --unpack realizar a criação dos arquivos a partir do barra (/) e o -X iniciar a partir do diretório que você especificar, que será um “barra” falso. Você poderá executar o aplicativo digitando o endereço completo do executável, ou colocando o binário dentro do PATH do usuário que o irá executar. --configure pacote – Irá realizar a configuração de todos os pacotes parcialmente instala- dos nos sistema (ou seja, que deram pau por algum motivo durante a instalação). Durante a insta- lação, algum erro pode vir a aparecer, fazendo com que o dpkg seja interrompido. Utilizando este comando, normalmente os problemas são resolvidos, já que normalmente utilizamos o apt para instalações (que sempre procura tomar cuidado com todos os aspectos da instalação para evitar quase todos os problemas do mundo). Normalmente, os problemas são originados por algo não relacionado aos scripts de instalação (como queda de luz, problema com permissões, tráfego da rede, mal configuração dos repositórios, etc). Caso o problema seja causado pelos próprios scripts, o administrador terá que editá-los (preinst e postinst). -r <pacote> – Desinstala um pacote do sistema sem remover os arquivos de configuração deste, se existirem. -P <pacote> – Faz a remoção completa de um pacote do sistema, incluindo arquivos de da- dos, de configuração, etc. -C – Auditoria de pacotes mal instalados. Procura por pacotes que foram instalados somente parcialmente em seu sistema. O legal dele é que indica o que pode ser feito para que o problema seja sanado. --get-selections <padrão> – Procura na lista de aplicações instalados no sistema pela ex- pressão fornecida através do argumento “padrão”, ou, no caso deste não ser definido, todos os pacotes que já passaram pelo sistema. Os pacotes que estejam com o valor “install” indicam as aplicações instaladas, enquanto os que possuírem valor “deinstall” os desinstalados. 19 Apostila Debian Intermediário - Desktop Parana --print-architecture – Imprime a arquitetura padrão utilizada pelos pacotes instalados no sistema. -l <pacotes> (ele)– Lista todos os pacotes instalados no sistema com suas respectivas in- formações, podendo ter status diferentes: estar instalado corretamente com o apt, ter sido apenas desempacotado, ter tido sua instalação interrompida durante a instalação, etc. É muito utilizada pelos administradores. Opcionalmente, você poderá especificar o nome de um ou mais pacotes (separados por espaços) para verificar suas informações. -s <pacote> – Lembre-se deste s como s de show. Exibe as informações sobre um determi- nado pacote, podendo este estar já instalado ou então ter sido instalado uma vez na vida. Estas informações são retiradas do arquivo “/var/lib/dpkg/available”. -I end<pacote> (i)– Exibe uma série de informações acerca de um pacote. Sempre, como pode ser visto na sintaxe, devemos indicar o pacote com o endereço completo. Se o administrador tentar utilizar apenas o nome do pacote, o erro “Arquivo ou diretório não encontrado” será apre- sentado na tela. As informações apresentadas são parecidas com as do parâmetro “-s”, porém o pacote não precisa ter sido instalado nunca, e temos uma informação adicional: o tamanho do ar- quivo de controle e uma descrição de o quê o compõe e quanto ocupa de espaço (conffiles, con- trol, md5sums, postinst, preinst, posrm e prerm). -S <arquivo> – Permite descobrir qual é o pacote que possui algum arquivo. Ele é muito in- teressante, já que o administrador pode utilizar um comando em um computador que não existe em outro. Para saber o nome do pacote, basta ir até o computador que o possui e verificar, com esta opção, aquele pacote que o possui. Como já foi dito, ele pode ser usado para qualquer arqui- vo, não somente um binário (ex: sources.list). O resultado será mostrado da seguinte forma: pacote: linha que contém o arquivo (diretórios também é um arquivo) -L <pacote> – Mostra todos os passos executados pelo dpkg na instalação de um pacote na fase de alocação dos arquivos dentro de seus respectivos diretórios. Veja que o arquivo de confi- guração fabiqueta.conf do pacote fabiqueta (pacote fictício) para ser alocado dentro do diretório “/etc/fabiqueta”, precisa criar o diretório fabiqueta. Então a ordem será: / /etc /etc/fabiqueta /etc/fabiqueta/fabiqueta.conf Desta forma, o administrador consegue saber exatamente ondeestá cada um dos diretórios e arquivos criados originalmente pelo pacote. 20 Apostila Debian Intermediário - Desktop Parana aso um pacote venha a ser removido, este comando terá sua fonte atualizada e mostrará apenas aqueles arquivos e diretórios que ainda existem. Para você verifi- car o seu funcionamento, instale o pacote tuxpaint, utilize este parâmetro, remova com o dpkg -r e então verifique novamente a saída do comando com o parâmetro “-L”. Você observará que somente os arquivos de configuração permanecem no computador. C -c end<pacote> – A saída é exatamente a mesma que a do -L1, com a diferença que o -c verifica todos os diretórios e arquivos que serão criados na instalação do pacote, diferente do -L que verifica quais arquivos e diretórios existem realmente, ou seja, de aplicações instaladas. Ele é interessante para que o administrador verifique, caso tenha alguma dúvida, se a instalação irá cri- ar algum diretório ou arquivo no lugar de um outro já existente. u seja: -L para aplicações instaladas e -c para pacotes .deb de aplicações não ne- cessariamente instaladas.O Opções As opções do comando dpkg tanto podem ser especificadas através da linha de comandos, como através do arquivo de configuração do dpkg, o “/etc/dpkg/dpkg.cfg”. As principais opções são: -B – Quando um pacote é desinstalado do sistema, pode ocorrer que outros pacotes ainda instalados dependam do que foi removido. Esta opção faz com que estes pacotes também sejam removidos do sistema automaticamente. --no-act – Faz uma simulação de acordo com as ações envolvidas. Por exemplo, você pode simular a instalação ou remoção de um pacote para verificar se algum erro será gerado pelo siste- ma de gerenciamento de pacotes. Tenha certeza que você especificou esta opção antes da cita- ção de qualquer ação na linha de comando, caso contrário, esta opção não terá efeito e a ação será desempenhada de fato. -R – Faz com que o dpkg opere no modo recursivo. --log=arquivo – Permite especificar um arquivo onde o dpkg vai realizar os registros das suas operações. Por padrão isto é feito em “/var/log/dpkg.log”. Exemplos de ocorrências mais comuns no uso do dpkg Vamos exemplificar agora tudo que foi visto. Verifique se seu apt está configurado correta- mente. Vamos começar fazendo download de um pacote dos repositórios utilizando o dpkg. # aptget clean 1 Isso quando o pacote está instalado corretamente, da forma original, já que o -L verifica até pacotes que foram removidos sem a purificação de arquivos de configuração. 21 Apostila Debian Intermediário - Desktop Parana # aptget update # aptget install d sl aso o aplicativo sl já esteja instalado, será necessário reinstalar a aplicação utilizan- do o parâmetro “-d” da mesma forma como mostrado acima.C O pacote foi descarregado dentro do diretório “/var/cache/apt/archives ” . Entre nele para que nossas atividades tornem-se mais fáceis. Para verificar se a aplicação está funcionando, digite “sl” e pressione <Enter>. Um erro aparecerá. Isso quer dizer que o pacote .deb foi descarregado no seu computador, porém não foi instalado (quem fez isso foi o parâmetro “-d”, que indica download only). Verifique o nome exato do pacote e instale-o. # ls l sl* rwrr 1 root root 25124 20071202 17:47 sl_3.0315_i386.deb # dpkg i sl_3.0315_i386.deb Selecionando pacote previamente não selecionado sl. (Lendo banco de dados ... 95880 arquivos e diretórios atualmente instalados). Desempacotando sl (de sl_3.0315_i386.deb) ... Configurando sl (3.0315) ... Processando gatilhos para mandb ... # sl O trem tá funcionando. Então agora podemos realizar novos testes. Apesar do aplicativo es- tar funcionando, será que o sistema sabe que ele está lá? # dpkg getselections sl sl install Um aplicativo tão pequeno, de nada, sem utilidade nenhuma como este, provavelmente não tem quase nenhum arquivo criado no nosso computador, certo? Verifique: # dpkg L sl Parece que o criador do sl tava meio que desempregado e sem ocupação, no mínimo. Tem muita coisa, e, com o comando anterior, pudemos verificar o que foi criado pelo arquivo de contro- le do pacote sl. Conseguimos descobrir que até mesmo quem digitar errado o ls esquecendo o <Caps Lock> ligado vai ser zoado (veja que possui um binário dentro do “/usr/bin” chamado LS). Chega de sl, vamos removê-lo do sistema. Quando instalamos, o pacote .deb teve que ser apresentado ao dpkg, mas agora que ele já está no sistema, como podemos lembrar, existem lis- tas que o registraram e agora só precisamos indicar o nome da aplicação, e não do pacote. # dpkg r sl 22 Apostila Debian Intermediário - Desktop Parana (Lendo banco de dados ... 94224 arquivos e diretórios atualmente instalados). Removendo sl ... Processando gatilhos para mandb ... Removido! E agora vamos verificar novamente se o sistema está realmente alerta: # dpkg getselections sl sl purge Tá lá. Cadê o deinstall? Não tá lá, porque o deinstall só aparece quando temos um aplicati- vo desinstalado que possui seus arquivos de configuração ainda presentes na estrutura de diretó- rios do sistema. Você deve estar se perguntando, “mas eu não usei o -P de purge”. Realmente. Acontece que o purge aparece quando não existem os arquivos de configuração e a aplicação está desinstalada. No caso do sl, ele é um aplicativo muito simples, por isso, não possui arquivo de configuração. Ele sempre passa do status install para o status purge. Se nós tivéssemos insta- lado um pacote com arquivos de configuração, utilizando o “-r” para removê-los, os arquivos serão mantidos, enquanto com o “-P” os arquivos de configuração serão removidos. Como já vimos, foi muito fácil instalar o pacote sl. A instalação possui vários processos reali- zados, definidos pelos arquivos de controle, preinst e posinst. Se quisermos realizar a criação de todos os diretórios da estrutura que o aplicativo irá assumir, e criar todos os arquivos necessários para o seu pleno funcionamento, podemos simplesmente extraí-lo. Iremos realizar essas ativida- des de duas formas diferentes. A primeira será realizar a extração nos lugares definidos pelo de- senvolvedor, e a segunda a extração será realizada a partir do diretórios especificado pelo admi- nistrador. Primeiro caso: # sl su: /usr/bin/sl: Arquivo ou diretório não encontrado # dpkg unpack sl_3.0315_i386.deb Selecionando pacote previamente não selecionado sl. (Lendo banco de dados ... 95880 arquivos e diretórios atualmente instalados). Desempacotando sl (de sl_3.0315_i386.deb) ... Processando gatilhos para mandb ... # # sl Como esse pacote não exige que o administrador configure e execute procedimentos mais complexos, o simples fato de terem sido criados diretórios definidos pelo desenvolvedor já é o su- ficiente para que a aplicação funcione. Utilizando o dpkg -L você poderá verificar que todos os ar- quivos do pacote foram alocados nos seus respectivos lugares. Podemos inferir, então, que o “-- unpack” é a etapa de criação de diretórios e alocação de arquivos já falada anteriormente. Mas e 23 Apostila Debian Intermediário - Desktop Parana se quiser instalar o pacote em um lugar diferente do especificado pelo desenvolvedor? # mkdir /Saci/Teste ; dpkg -x sl_3.03-15_i386.deb /Saci/Teste O comando acima criou o diretório /Saci/Teste e, logo após, foi desempacotado o conteúdo do sl..... com toda sua estrutura a partir do diretório /Saci/Teste. Entre no diretório e verifique com o comando “tree” como tudo está. 24 Apostila Debian Intermediário - Desktop Parana COMPILANDO PROGRAMAS A PARTIR DO CÓDIGO FONTE Embora, atualmente,a maioria dos programas para o GNU/Debian estejam disponíveis para instalação por meio de pacotes, ainda assim, em alguns casos, é preciso compilar programas a partir de seu código fonte. Mas o que é compilar um programa? É a ação de criar um arquivo ins- talador a partir do código fonte de uma aplicação adaptando-o ao sistema ao qual será instalado. Isso é necessário, porque algumas vezes uma aplicação possui versão criada para uma distribui- ção e não para outra. Podemos baixar o código fonte da aplicação e adaptá-la à nova versão. Adaptar é indicar ao executável instalador onde ficam alguns diretórios do sistema (como o /var/log para arquivos de logs e o /etc para arquivos de configuração, no Debian) que serão ne- cessários durante a instalação do aplicativo. Também é possível, durante a compilação do progra- ma, fazer configurações ativando módulos que por padrão não estão. Ou seja, compilar um pacote significa adaptá-lo a um sistema operacional para qual não foi criado e permitir configurações na instalação que visam otimizar o desempenho do aplicativo que é instalado. De modo geral, códigos fonte são distribuídos através de arquivos compactados. A grande maioria destes arquivos possui uma estrutura de diretórios, os arquivos fonte em si, um arquivo de configuração chamado “Makefile”, documentação e outros arquivos encapsulados em um arquivo no formato “tar”, com compressão de dados, usando gzip (“.tar.gz” ou “.tgz”), ou bzip2 (“.bz2” ou “.tbz2”). uando começarmos a usar o tar, para extrair arquivos compactados com o gzip utili- zamos o parâmetro z, enquanto que para extrair arquivos compactados com o bz2 utilizaremos o parâmetro j. Uma forma de lembrar qual utilizar é BeiJando o GiZ. Q Para iniciar a compilação de um código fonte, a primeira coisa a se fazer é obter o código para ser compilado. Após o arquivo que contém o código fonte estar disponível localmente, você deverá extrair o conteúdo para um diretório adequado a compilação (ex.: /comp-louco). Os arqui- vos-fontes são, no padrão Debian, agrupados e compactados em arquivos tarball. Para realizar nossos testes iremos utilizar um arquivo fonte que possui o código do aplicativo TAL. Para extrair o seu conteúdo, use um dos comando abaixo: tar xvzf nome_do_arquivo.tar.gz ou tar xvjf nome_do_arquivo.tar.bz2 Após a extração do conteúdo do arquivo compactado, é necessário entrar no diretório que foi criado durante a extração dos arquivos utilizando o comando “cd”. O programa mais utilizado, para compilar códigos fonte no GNU/Linux é o “gcc”, um compilador C/C++ livre. De maneira ge- ral, alguns pacotes GNU são necessários para compilar um programa de código livre. Os mais co- 25 Apostila Debian Intermediário - Desktop Parana muns na distribuição Debian, são os pacotes: “make”, “autoconf”, “gcc”, “g++” e “libc6-dev”. A seguir listaremos os procedimentos gerais para configuração/compilação de códigos fon- tes no GNU/Debian, estes procedimentos podem variar um pouco dependendo do código que se está compilando mais informações sobre a compilação do código, você encontrara no arquivo “README.txt” descompactado junto com o código fonte. • Executar o arquivo “configure” – Este arquivo é um script shell que examina o siste- ma para verificar se diversas dependências necessárias para compilar o projeto serão sa- tisfeitas. Ele deve ser executado digitando-se “./configure” dentro do diretório que contém o código-fonte do programa a ser compilado. Esse script, também pode conter parâmetros que podem ser passados na linha de execução para configuração de opções especificas, para consultar a lista de parâmetros disponíveis, tente executar o script “./configure --help”. Se o script “configure” não encontrar alguma das dependências necessárias para compila- ção do programa, um erro é gerado e a execução é finalizada automaticamente, gerando uma mensagem semelhante à abaixo: checking for SDL version >= 1.2.0... no configure: error: *** SDL version 1.2.0 not found! Nesse caso, nos falta a biblioteca de desenvolvimento (cabeçalhos) “SDL” versão 1.2.0 ou mais recente. Para resolver este problema, é necessário instalar o pacote “libsdl1.2-dev” para re- solver essa dependência. A maioria das bibliotecas necessárias para a compilação de programas no GNU/Debian têm o prefixo “lib” e o sufixo “-dev”, como por exemplo, “libc6-dev”, “libsdl1.2-dev”, etc. Após resolvidas todas as dependências. • Executar o comado make – O comando “make” utiliza as configurações que foram criadas pelo script “configure” para compilar múltiplos arquivos de código fonte de um pro- jeto. Utiliza também um arquivo de descrição (chamado “makefile” ou “Makefile”) que está presente no diretório onde o código fonte foi extraído. Seu conteúdo é composto de regras que definem as dependências entre arquivos fonte e os comandos necessários para a compilação. A partir deste arquivo, ele executa sequências de comandos que são interpre- tados pelo shell para realizar a compilação de maneira correta. • Em seguida não havendo erros na execução do comando anterior executar o coman- do make install – É o comando utilizado para compilar e em seguida executar o instalador do programa que acabamos de compilar. Alguns programas não possuem essa facilidade, nestes casos, o administrador terá também o trabalho manual de instalar o programa com- pilado corretamente, em geral, realizando atividades como copiar arquivos executáveis para diretórios como “/usr”, e os arquivos de configuração para “/etc”, etc. 26 Apostila Debian Intermediário - Desktop Parana GERENCIANDO DISCOS E PARTIÇÕES Neste capítulo, mostraremos como listar e obter informações a respeito das partições e dis- cos existentes no sistema, além de aprendermos a criar, remover e formatar partições. O QUE SÃO PARTIÇÕES Partições são divisões feitas em um disco de armazenamento para delimitar um determina- do espaço deste para instalação de um sistema de arquivos. Existem três tipos de partições: pri- márias, estendidas e lógicas. Os propósitos fundamentais da criação de partições são 3: (a) maior segurança através da divisão de dados de acordo com a natureza de seus dados (sistema, usuá- rio, de inicialização); (b) divisão de acordo com o tamanho dos dados, afim de melhorar o desem- penho através de sistemas de arquivos específicos; (c) ter mais de um sistema operacional no mesmo disco. Não existe nenhuma diferença top-down entre partições primária e lógica. A diferença real entre elas é o local onde são alocadas as informações acerca de uma partição. Isso foi explicado detalhadamente na apostila de Debian Básico, sendo interessante você tirar as teias de aranha dela e dar uma relembrada. Basicamente, o detalhamento (primeiro e último setor, número total de blocos, etc) de uma partição primária fica dentro do primeiro setor do disco rígido (MBR -Master Boot Record), enquanto as lógicas ficam fora da MBR. Podemos chamar este detalhamento, ou definição de uma partição, como cabeçalho da mesma. Podemos ter 4 cabeçalhos dentro da MBR. Estes cabeçalhos podem ser todos primários ou então de 0 a 3 primários e um estendido. A partição estendida só indica onde está, dentro do disco rígido e fora da MBR, o cabeçalho da pri- meira partição lógica. Ou seja, para que tenhamos pelo menos uma partição lógica, é necessário se ter uma partição estendida. Como esta trata apenas de um cabeçalho de ligação, dizemos que ele define uma partição não utilizável. Para saber quantas partições utilizáveis temos em um dis- co, precisamos: (a) quando existe partições lógicas, subtrair do número da última partição lógica o resultado de 4 menos o número de partições primárias; (b) quando não existe partições lógicas,verificar o número de partições primárias, que são todas utilizáveis. Ex: Se temos 2 partições primárias e a última partição lógica é a partição 12, então temos: 12−4−2 = 10 partições utilizáveis Após criada e formatada, a partição passa a ser reconhecida pelo sistema operacional como um nó de dispositivo representado por um arquivo no diretório “/dev”. É como se uma partição fos- se um dispositivo diferente, sendo que, na realidade, são apenas divisões lógicas do disco, estan- do todas dentro de apenas um dispositivo físico. Este arquivo receberá automaticamente um nome e através deste é possível identificarmos várias informações referentes ao hardware de armazenamento. 27 Apostila Debian Intermediário - Desktop Parana A identificação de discos rígidos no Linux é feita da seguinte forma: /dev/hda1 | | | | | | | |__ Indica o número da partição do HD. | | |___ Letra que indica o dispositivo (a=primeiro, b=segundo...). | |_____ Sigla que indica o tipo de dispositivo (hd=ide, sd=scsi ou sata). |_________ Diretório onde são armazenados dispositivos do sistema. udo isso foi visto na apostila de Debian Básico, por isso, abordaremos de uma forma superficial o assunto, somente para que você possa recordar e tornar vivo tudo que já sabe. T OBTENDO INFORMAÇÕES SOBRE AS PARTIÇÕES Sempre que for realizar qualquer atividade referente a partições, será muito interessante que o administrador saiba usar o comando abaixo, que trará as primeiras informações que possi- velmente precisaremos para começar a agir e planejar suas tarefas: # fdisk l Disk /dev/sda: 250.0 GB, 250059350016 bytes 255 heads, 63 sectors/track, 30401 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x9ebef679 Device Boot Start End Blocks Id System /dev/sda1 1 16 128488+ 83 Linux /dev/sda2 17 1840 14651280 83 Linux /dev/sda3 1841 1962 97996582 Linux swap / Solaris /dev/sda4 1963 30401 228436267+ 83 Linux Disk /dev/sdb: 4005 MB, 4005560320 bytes 16 heads, 32 sectors/track, 15280 cylinders Units = cylinders of 512 * 512 = 262144 bytes Disk identifier: 0xef6cfd35 Device Boot Start End Blocks Id System /dev/sdb1 16 15280 3907648 b W95 FAT32 28 Apostila Debian Intermediário - Desktop Parana 1. Número de dispositivos físicos conectados: 2. Quantidade de partições em cada dispositivo: 3. Capacidade máxima de armazenamento do primeiro dispositivo: 4. Capacidade máxima de armazenamento do segundo dispositivo: 5. Quantidade de cilindros em cada dispositivo: 6. Quantidade de cabeças em cada dispositivo: 7. Arquivo que representa com certeza uma partição de área de troca: 8. A coluna Id identifica a partição ou o tipo de sistema de arquivos? 9. O sdb1 possui um sistema operacional instalado? 10. Qual é a causa de dump de backtrace e kernel panic num servidor proxy com squid no modo slabe do kernel? A questão 10 é apenas uma piada de mau gosto. É para você sentir que ainda falta chão, então continue estudando e crie uma boa base, para que depois você possa brincar com seu co- nhecimento durante a solução de problemas. Vale ressaltar que caso seu sistema possua discos utilizando técnicas de RAID via hardwa- re, quando o comando for executado, os discos serão mostrados de acordo com as configurações RAID que estiverem em vigor no seu sistema. Por exemplo, numa configuração em RAID 1 (mirroring), apesar de existirem fisicamente dois discos na máquina, apenas um será mostrado. AID (Redundant Array of Independent Disks) é um sistema de linearização de dis- cos. É um sistema que tem dois objetivos que são atingidos de várias formas dife- rentes. Os objetivos são acelerar o armazenamento e carregamento de dados, e aumen- tar a segurança desse processo, com métodos de espalhamento de dados em discos di- ferentes. No link a seguir, existe uma animação que mostra o funcionamento de todos os tipos de RAID: “http://www.acnc.com/raid.html”. R Para sabermos quais outras opções temos para utilização do “fdisk”, basta digitarmos so- mente o comando: # fdisk /dev/sda ou # fdisk /dev/hda Serão listadas algumas informações sobre o disco e também será aberta a linha de comado do “fdisk”, onde digitando a opção “m” será exibida uma lista com as opções disponíveis para utili - zação na linha de comando do “fdisk”. 29 Deduza por si só! Apostila Debian Intermediário - Desktop Parana Não iremos ver nesta apostila o funcionamento de recursos do fdisk senão a verificação das informações com o parâmetro “-l”. Para realizar modificações nos sistemas de arquivos e manipu- lação de partições, usaremos o cfdisk. Podemos obter maiores informações sobre as opções do comando “fdisk” através do seu manual (man fdisk). PARTICIONANDO DISCO COM CFDISK Para iniciar o particionador como root digite “cfdisk” seguido do nome do dispositivo a ser particionado, por exemplo “cfdisk /dev/hda”. Lembre-se, “/dev/hdX” é utilizado para HD's IDE, já “/dev/sdX” é usado para discos SCSI, SATA e Pendrives. Para navegarmos nas opções do “cfdisk”, devemos utilizar as setas para cima e para baixo para navegar entre as partições e as setas para esquerda e para direita para selecionar as opções do menu inferior. Para criar uma nova partição, deve-se selecionar o espaço livre do dispositivo e em seguida selecionar a opção “Nova”. 30 Figura 2: Tela principal do cfdisk Figura 3: Cfdisk - criando uma nova partição Apostila Debian Intermediário - Desktop Parana Será, então, necessário definir se a partição será primária ou lógica. Utilizando as setas, se- lecione a opção desejada e pressione o <Enter> do teclado. s partições estendidas não são definidas manualmente. Automaticamente, ao definir a primeira partição como Lógica, a estendida é criada e anula-se a possibilidade de se criar uma nova partição primária, mesmo que exista menos de 3 partições desta. A O próximo passo é definir o tamanho desejado para a partição em criação. Sempre deve- mos definir o tamanho em megabytes. 31 Figura 4: Cfdisk - escolhendo o tipo de partição (primária ou lógica) Figura 5: Cfdisk - definindo o tamanho da partição Apostila Debian Intermediário - Desktop Parana Em seguida, devemos selecionar na listagem um dos tipos de partições que desejamos criar (partição linux, ntfs, fat, etc...). Para selecionar digite o número correspondente sobre o já existen- te e pressione a tecla <Enter>. Para concluir a criação da partição, vá até a opção <Gravar>, pressione <Enter>, digite “yes” por extenso (para evitar gravações de alterações por engano) e pressione <Enter> novamente. Para sair do cfdisk, use a opção “Quit” do menu inicial. Excluindo uma partição Para excluir uma partição, selecione-a e então vá em “Excluir”. Este procedimento excluirá a partição sem solicitar nenhuma confirmação antes de removê-lo. Após a exclusão, o espaço ante- riormente ocupado pela partição passará a ser espaço livre podendo ser reutilizado. Salvando as alterações Devemos tomar muito cuidado sempre antes de selecionar e confirmar a opção “gravar”, pois assim confirmarmos esta operação todas as alterações feitas na tabela de partição serão gra- vadas não tendo mais como serem desfeitas. Sempre que fizermos qualquer alteração indesejada na tabela de partição basta sair da aplicação (“cfdisk”) sem gravar as alterações. SISTEMA DE ARQUIVOS Um sistema de arquivos é um conjunto de estruturas lógicas e de rotinas, que permitem ao sistema operacional controlar o acesso ao disco rígido. Existem diversos sistemas de arquivos di- ferentes, que vão desde sistemas simples como o FAT16, até sistemas como o NTFS, XFS e Rei- serFS, que incorporam recursos muitomais avançados. 32 Figura 6: Cfdisk - Selecionando tipo de partição Apostila Debian Intermediário - Desktop Parana O sistema de arquivos é criado durante o processo de formatação da partição, após isso toda a estrutura necessária para leitura/gravação de arquivos e diretórios já estão prontas para se- rem utilizadas pelo sistema operacional. CRIANDO SISTEMA DE ARQUIVOS Podemos também criar uma partição sem definir o tipo dela, entretanto, para que uma parti- ção fique funcional, temos obrigatoriamente que criar um sistema de arquivos em seu espaço. Para criar um sistema de arquivos nesse tipo de partição basta utilizar o utilitário “mkfs” especifi- cando o tipo de sistema de arquivos que desejamos utilizar na partição. Abaixo um exemplo de uso deste utilitário: mkfs t xfs /dev/hda1 No exemplo acima, criamos um sistema de arquivos do tipo “xfs” na partição “/dev/hda1”. Essa é a maneira mais simples de se criar um sistema de arquivos numa partição criada sem um tipo definido. Também podemos usar as extensões do utilitário mkfs, para realizar a criação de sis- temas de arquivos específicos. No exemplo abaixo faremos exatamente a mesma operação que a do exemplo anterior: mkfs.xfs /dev/hda1 33 Apostila Debian Intermediário - Desktop Parana GERENCIADOR DE PARTIDA – GRUB O gerenciador de partida é o responsável por carregar o sistema operacional durante o pro- cesso de inicialização além de, nos casos onde houver mais de um sistema operacional, permitir que seja feita a escolha de qual sistema operacional deverá ser carregado. Este programa geral- mente fica gravado ou numa no setor de boot de uma partição ativa ou na Master Boot Record (MBR) do disco. O GRUB (Grand Unified Boot Loader) é o gerenciador de partida padrão do Debian. Ele é um dos mais poderosos e funcionais gerenciadores de partida, é capaz de inicializar vários siste- mas operacionais como Windows (9x, ME, NT, 2000, XP e Vista), Dos, Linux, GNU Hurd, *BSD, OS/2 etc. Podemos destacar também o suporte aos sistemas de arquivos EXT2, EXT3 e Rei- serFS, FAT16 e FAT32 (Win 9x/ME), FFS (Fast File System usado no *BSD), minix (MINIX OS) etc. o instalarmos uma máquina com dual boot, com os sistemas operacionais Linux e Windows, devemos sempre instalar primeiro o sistema operacional Windows. Pois o mesmo, durante sua instalação, grava suas informações de inicialização na MBR do dis- co sobrescrevendo todas as configurações nela existentes, consequentemente apagan- do o GRUB e suas configurações fazendo que o Linux, mesmo instalado, seja ignorado e iniciado diretamente o sistema operacional Windows. A O GRUB utiliza o padrão Multiboot o que o torna capaz de carregar diversas imagens de ini- cialização (uma por vez) e módulos. Além de permitir buscar imagens do Kernel pela rede, por ca- bos seriais, suporta discos rígidos IDE, SATA e SCSI, informar a quantidade total de memória RAM ao sistema, tem interface voltada para linha de comandos ou menus de escolha, além de su- portar sistemas sem discos e terminais remotos. Os principais arquivos utilizados pelo GRUB para inicialização do sistema encontram-se dentro dos diretórios “/boot” e “/boot/grub”. Dentro do diretório “/boot” encontramos os arquivos de kernel que são os responsáveis pelo carregamento do mesmo na memória. Dentro do diretório “/boot/grub”, encontramos os arquivos dos quais são carregados os parâmetros com as configura- ções para inicialização do sistema, dentre esses arquivos destacamos o “menu.lst” que é o arqui- vo que nos possibilita customizar as configurações do GRUB. TRABALHANDO COM DISCOS E PARTIÇÕES O GRUB trabalha com uma notação para apontar discos e partições, diferente da que esta- mos acostumados a ver em sistemas operacionais Linux. Para o GRUB independente do tipo de disco (IDE, SATA ou SCSI) ele sempre será representado pela sigla “hd”. O primeiro disco será representado pelo número “0” o segundo pelo número “1” e assim por diante. As partições são representadas da mesma forma que os discos a primeira partição criada será representada pelo 34 Apostila Debian Intermediário - Desktop Parana número “0” a segunda pelo número “1” e assim por diante. Abaixo segue tabela comparativa, através dela fica mais fácil visualizar as diferenças acima descritas: Disco IDE Dispositivo no Linux Dispositivo no GRUB /dev/hda (hd0) /dev/hda1 (hd0,0) /dev/hda2 (hd0,1) /dev/hdb (hd1) /dev/hdb1 (hd1,0) /dev/hdb2 (hd1,1) Disco SCSI ou SATA Dispositivo no Linux Dispositivo no GRUB /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 Disquete Dispositivo no Linux Dispositivo no GRUB /dev/fd0 (fd0) INSTALAÇÃO DO GRUB Após instalado o GRUB dificilmente precisaremos reinstalá-lo. As alterações ou adições de novos sistemas a serem carregados como opção para inicialização são feitas através de altera- ções no arquivo de configuração “menu.lst”, com o comando: # vim /boot/grub/menu.lst Normalmente, durante a instalação do GNU/Debian você será questionado se deseja ou não instalar o GRUB, se selecionada a opção de sua instalação automaticamente todos os sistemas operacionais instalados na máquina serão listados e configurados pelo GRUB para estarem dispo- níveis como opções de sistemas que podem ser inicializados. Algumas situações podem vir a apagar o GRUB da MBR do disco, por exemplo, como foi descrito anteriormente, uma máquina com dual-boot onde a instalação do sistema operacional Windows foi efetuada posterior a instalação do Linux. Nesses casos para podermos restaurar o GRUB e voltarmos a utilizar o sistema operacional Linux instalado, podemos, dentre as várias al- ternativas para restauração do grub, executar o comando abaixo por exemplo: # grubinstall /dev/hda Este comando grava o GRUB no MBR do primeiro disco rígido IDE do sistema e cria o dire- tório “/boot/grub”, onde estarão os arquivos necessários para o seu funcionamento. É interessante também, executar o comando: # updategrub Este comando atualiza dinamicamente a lista de sistemas que podem ser carregados du- rante a inicialização da máquina, e os adiciona ao arquivo “menu.lst” automaticamente, conforme a instalação corrente. 35 Apostila Debian Intermediário - Desktop Parana o entanto, para podermos executar os comando apresentados anteriormente para instalar o grub na MBR e para atualizar o arquivo “menu.lst”, precisamos primeiro iniciar a máquina a partir de um CD, pendrive, ou algum outro dispositivo que possua um sistema operacional que carregue um kernel que disponibilize um shell linux, montar a partição com o diretório “/boot”, montar as partições “/proc” e “/dev”, transformarmos a partição montada no nosso “/” e só então podemos utilizar aqueles comandos para res- taurar o grub (instalá-lo na MBR e atualizá-lo)2. N Na linha de comando usar os seguintes comandos: CUSTOMIZANDO O ARQUIVO MENU.LST No arquivo “menu.lst” podemos fazer dois tipos de configurações: as configurações globais que afetam o funcionamento do GRUB de forma mais genérica e as configurações especificas que afetaram somente as imagens a serem inicializadas. Abaixo mostraremos um exemplo do arquivo “menu.lst” configurado onde serão inseridos comentários explicando cada um dos parâmetros configurados. # menu.lst See: grub(8), info grub, updategrub(8) # grubinstall(8), grubfloppy(8), # grubmd5crypt, /usr/share/doc/grub # and /usr/share/doc/grubdoc/. ################################################################### ## default num
Compartilhar