Formação de Administradores de Redes Linux LPI level 1 Aula 5 SENAC TI Fernando Costa
Agenda 101.1 Identificar e editar configurações de hardware (/sys, /proc, /dev, modprobe, lsmod, lspci) 102.1 Dimensionar as partições de disco (/ (raiz), /var, /home, swap, pontos de montagem, partições) 104.1 Criar partições e sistemas de arquivos (fdisk, mkfs, mkswap) 104.2 Manutenção da integridade de sistemas de arquivos (du, df, fsck, e2fsck,mke2fs, debugfs, dumpe2fs, tune2fs, xfstools) 104.3 Controle da montagem e desmontagem do sistema de arquivos (/etc/fstab, /media, mount, umount)
101.1 Identificar e editar configurações de hardware /sys /proc /dev modprobe lsmod lspci lsusb
/dev O diretório "/dev", que é de longe o exemplo mais exótico de estrutura de diretório no Linux. Todos os arquivos contidos aqui, como, por exemplo, "/dev/sda", "/dev/dsp", "/dev/modem", etc., não são arquivos armazenados no HD, mas sim ponteiros para dispositivos de hardware. O "arquivo" "/dev/mouse" contém as informações enviadas pelo mouse, enquanto o "/dev/dsp" permite acessar a placa de som, por exemplo. Essa organização visa facilitar a vida dos programadores, que podem acessar o hardware do micro simplesmente fazendo seus programas lerem e gravarem em arquivos, deixando que o kernel se encarregue da parte complicada.
/dev /dev Dispositivos /dev/hd Discos rígidos /dev/hda1 Primeira partição do disco rígido A /dev/sd Discos SCSI /dev/sdb2 /dev/sda4 Segunda partição do disco rígido SCSI b ZIP drive /dev/fd Disquete /dev/fd0 Disquete a: /dev/null Buraco negro, tudo que é enviado para este dispositivo está perdido para sempre. /dev/tty Terminais /dev/tty1 Terminal 1
/proc Complementa o "/dev Não armazena arquivos, mas sim informações sobre o hardware e sobre a configuração do sistema. Estas informações são usadas por utilitários de detecção e configuração do sistema, mas podem ser úteis também quando você quer checar alguma configuração manualmente. O comando "cat /proc/net/dev" mostra informações sobre as interfaces de rede, o "cat /proc/cpuinfo" mostra informações sobre o processador e assim por diante.
/sys O diretório /proc faz par com o "/sys", uma novidade introduzida a partir do kernel 2.6 Agrupa informações sobre os dispositivos instalados, incluindo o tipo, fabricante, capacidade, endereços usados e assim por diante. Estas informações são geradas automaticamente pelo kernel e permitem que os serviços responsáveis pela detecção de hardware façam seu trabalho, configurando impressoras e criando ícones no desktop para acesso ao pendrive, por exemplo.
modprobe # modprobe [módulo] Exemplo: # modprobe vboxdrv O modprobe lê o arquivo de dependências de módulos gerado pelo comando depmod. Por isso, deve-se executar o comando # depmod a para produzir um novo arquivo contendo as dependências de módulo. Após executá-lo, pode-se usar o comando modprobe para instalar qualquer módulo e ter os outros módulos dos quais ele depende automaticamente instalados. Observações: Para acrescentar um módulo automaticamente a cada inicialização do sistema, inclua o comando correspondente no arquivo /etc/rc.d/rc.local ou no arquivo /etc/rc.sysinit.
lsmod Uso: # lsmod Cada linha do exemplo mostra as seguintes informações: nome, tamanho, contador de uso e lista dos módulos que referenciam o módulo em questão (dependem do módulo). A palavra autoclean indica que o módulo é removido automaticamente da memória quando não está sendo utilizado. Module Size Used by parport_pc 5620 0 (autoclean) parport 7124 0 (autoclean) [parport_pc] nfsd 149048 8 (autoclean) lockd 30888 1 (autoclean) [nfsd] sunrpc 52548 1 (autoclean) [nfsd lockd] aic7xxx 105584 5 Na realidade, o comando lsmod apenas exibe o conteúdo do arquivo /proc/modules
rmmod # rmprobe [módulo] Exemplo: # rmmod vboxdrv Remove o driver da memória Desabilita o módulo
lspci Inspeciona dispositivos PCI conectados Manual: # man lspci # lspci --help Exemplos de uso: lspci -v (informações detalhadas) lspci -vv (informações mais detalhadas) lspci -vvv (informações totalmente detalhadas)
lsusb Inspeciona dispositivos USB conectados Manual: # man lsusb # lsusb --help Exemplos de uso: # lspci -v (informações detalhadas) # lsusb -s 001:001 -v (informações detalhadas da porta usb bus:device 001:001)
dmesg Mostra as mensagens do kernel, da identificação do hardware em diante. Essa informação está disponível em /var/log/dmesg e /var/log/messages. Exemplo: # dmesg
102.1 Dimensionar as partições de disco / (raiz) /var /home swap pontos de montagem partições
Estrutura de arquivos / bin etc mnt/ home/ usr Floppy cdrom pedro ana
/ (raiz) Abriga todos o sistema, todos arquivos que forem criados e não possuírem partição específica, irão buscar recursos nesta pasta. Equivalente ao C:\ do S.O. Windows
/var Dados que mudam durante funcionamento do sistema Exemplo: Arquivos de log ( /var/log/messages ) Arquivos de bancos de dados ( /var/lib/mysql ) Arquivos com número de processos ()
/home Pasta pessoal dos usuários do sistema. Por exemplo: /home/senacti /home/fernandocosta /home/joao Equivalente ao C:\Document and Settings\ do S.O. Windows
Outros diretórios importantes /bin ou /sbin comandos necessários para operção mínima /etc início /lib C /tmp Arquivos de configuração e Bibliotecas para programas Arquivos temporários
/usr /usr Programas /usr/local Programas instalados localmente /usr/bin/ Comandos de usuários /usr/sbin Comandos do sistema que não são necessários no sistema de arquivos root /usr/man Páginas de manuais
swap O swap é uma área de troca usada para aumentar a quantidade de memória RAM do sistema. Até o kernel 2.1, o tamanho máximo de uma partição de swap era de 128MB. A partir do kernel 2.2 essa limitação passou a ser de 2GB. O Linux pode ter mais de 8 áreas de troca ativas ao mesmo tempo. Entretanto, o total da área de swap não pode ultrapassar 16GB. Comandos relacionados mkswap : formata uma área de swap. swapoff : desabilita dispositivos de swap. swapon : habilita dispositivos de swap.
Pontos de Montagem O GNU/Linux acessa as partições existente em seus discos rígidos e disquetes através de diretórios. Os diretórios que são usados para acessar (montar) partições são chamados de Pontos de Montagem. No DOS cada letra de unidade (C:, D:, E:) identifica uma partição de disco, no GNU/Linux os pontos de montagem fazem parte da grande estrutura do sistema de arquivos raiz.
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.
104.1 Criar partições e sistemas de arquivos Fdisk Mkfs Mkswap
fdisk Uso: fdisk [dispositivo] Opções: m lista opções d exclui partição l lista tipos conhecidos n cria nova partição p exibe tabela de parti ões atual q sai sem salvar alterações w grava tabela no disco e sai t troca tipo de sistema de uma partição x Funções adicionais
mkfs # mkfs [opções] dispositivo [blocos] Onde: dispositivo : é o arquivo especial correspondente ao dispositivo. blocos : é quantidade de blocos a ser utilizada pelo sistema de arquivos. Opções: -t tipo : especifica o tipo de sistema de arquivos a ser criado. O padrão é ext2. -c : checa o dispositivo a procura de blocos defeituosos durante a criação do sistema de arquivos. Por exemplo: mkfs -t ext2 /dev/fd0 1440 configura o disquete para o sistema de arquivos ext2.
mkswap Uso: mkswap [-c] dispositivo [bloco] Opções: -c pede que se verifique a existência de blocos ruins antes de criar o sistema de arquivos. dispositivo tem normalmente o seguinte formato /dev/hda[1-8] /dev/hdb[1-8] /dev/sda[1-8] /dev/sdb[1-8] bloco corresponde ao número de blocos que a área de swap deve possuir sendo que cada bloco tem 1 Kb. O valor mínimo (MINCOUNT) e o valor máximo (MAXCOUNT) possíveis para este parâmetro é calculado da seguinte forma: MINCOUNT = 10 * tamanho_página / 1024 MAXCOUNT = (tamanho_página - 10) * 8 * tamanho_página / 1024 Caso este parâmetro não seja fornecido, ele é determinado automaticamente pelo mkswap.
mkswap Exemplo: # dd if=/dev/zero of=/teste bs=1024 count=64000000 (esse comando irá criar um arquivo /teste, com o tamanho de 64MB (count=64000000). # mkswap /teste (cria dentro desse arquivo um padrão de partição swap) # swapon teste (habilita a partição swap, pronto agora está tudo funcionando!)
104.2 Manutenção da integridade de sistemas de arquivos Du Df Fsck E2fsck Mke2fs Debugfs Dumpe2fs Tune2fs xfstools
du $ du [opções] [arquivo... ] Opções -a : mostra o espaço ocupado por todos os arquivos (de forma recursiva). -h : mostra o espaço ocupado de forma mais legível para humanos. -b : mostra o espaço ocupado em bytes. -c : mostra o total do espaço ocupado. -k : mostra o espaço ocupado em Kbytes (é o padrão). -s : lista apenas o total para cada argumento. O uso do comando du, sem qualquer opção e sem nome de arquivo ou diretório, fornece a quantidade de espaço ocupada por cada subdiretório que se encontra hierarquicamente abaixo do diretório atual e a totalização dos espaços ocupados por esses subdiretórios.
du Por exemplo: para ver o tamanho do arquivo teste.txt em bytes, digite # du -b teste.txt Para obter o tamanho, em Kbytes, de todos os arquivos do diretório corrente com extensão txt e o total de espaço ocupado por estes arquivos, basta digitar # du -c *.txt Experimente: # du -ksh /*
df - report file system disk space usage Uso: df [opções] [partição] Opções: -a : inclui também na listagem os sistemas de arquivos com zero blocos. -h : lista o tamanho de forma mais legível para humanos. -k : lista o tamanho dos blocos em kbytes. -m : lista o tamanho dos blocos em Mbytes. -t tipo : especifica o tipo dos sistemas de arquivos a serem listados. -x tipo : especifica o tipo dos sistemas de arquivos que não deve ser listado. Por exemplo, o comando # df /dev/hda1 (exibe as informações sobre o espaço livre da partição /dev/hda1.) # df -h
fsck Uso: # fsck [opções] sistema onde sistema pode ser o nome do dispositivo ou o ponto de montagem para o sistema de arquivos. Se mais de um sistema de arquivo for fornecido, o fsck tentará verificá-los em paralelo. Opções: -a : repara automaticamente o sistema de arquivos com defeito. -A : analisa o arquivo /etc/fstab e tenta verificar todos os arquivos listados de uma vez. -N : não executa, apenas mostra o que seria feito. -r : pergunta se o sistema de arquivos deve ser reparado quando detecta alguma falha. -V : produz uma saída detalhada.
fsck Observações O fsck é usado para verificar e, opcionalmente, reparar um sistema de arquivos do Linux. O código de erro retornado é a soma das seguintes condições: 0 - nenhum erro. 1 - erros do sistema de arquivos corrigidos. 2 - o sistema deve ser reiniciado. 4 - erros do sistema de arquivos não corrigidos. 8 - erro operacional. 16 - erro de uso ou de sintaxe. 128 - erro de biblioteca compartilhada. Na realidade, o fsck é simplesmente um intermediário para os vários verificadores de sistemas de arquivos disponíveis no Linux (por exemplo, fsck.ext4 para sistemas de arquivo do tipo ext4).
E2fsck É o FSCK para sistemas de arquivos ext2 e ext3 # e2fsck --help # man e2fsck
mke2fs cria um sistemas de arquivos ext2/3 Uso: # mke2fs [opções] [dispositivo] Opções: -b num : especifica num bytes por bloco. -c : verifica e formata o disco usando um método mais rápido. -m num : reserva num% de espaço no disco para o superusuário. Por exemplo: # mke2fs /dev/hda1 formata o dispositivo /dev/hda1 para suportar um sistema de arquivos do tipo ext2. É possível usar o comando mke2fs para formatar e configurar disquetes para o sistema de arquivos ext2. Neste caso, temos uma formatação de alto nível. mke2fs /dev/fd0 Use o comando fdformat para uma formatação de baixo nível e depois use o comando mkfs para configurar o disquete para o sistema de arquivos ext2.
debugfs O programa debugfs é um depurador de sistemas de arquivos interativo. Ele pode ser usado para examinar e alterar o estado de um sistema de arquivos. Manual traduzido: http://pjtsalina.codigolivre.org.br/doc/linux/mancl5/man8/debugfs.8.html Exemplo: Recuperação de arquivos removidos: http://linux.lcc.ufmg.br/index.php/component/content/article/39-sistemas-de-arquivos/77-recuperando-arquivos-removidos.html
Dumpe2fs Mostra detalhes sobre uma partição Linux. Uso: dumpe2fs [opções] [partição] Onde: partição Identificação da partição que será usada. opções -b Mostra somente os blocos marcados como defeituosos no sistema de arquivos especificado. Este comando lista diversas opções úteis do sistema de arquivos como o tipo do sistema de arquivos, características especiais, número de inodos, blocos livres, tamanho do bloco, intervalo entre checagens automáticas, etc. Exemplo: dumpe2fs /dev/sda1, dumpe2fs -b /dev/sda1
Tune2fs Otimiza performance do sistema de arquivos Uso [opções] [partição] Opções -c montagem-máxima Ajusta o número máximo de montagens entre duas ve-rificações do sistema de arquivos. -e comportamento-em-erro Muda o comportamente do código do kernel quando erros são detectados. comportamento-em-erro pode ser um dos seguintes: continue Continua a execução normal. remount-ro Remonta o sistema de arquivos somente para leitura. panic Causa pânico do kernel. -g grupo Define o grupo de usuários que pode se beneficiar dos blocos reservados. grupo pode ser um gid numérico ou o nome de um grupo. -i intervalo-entre-verificações[d m w] Ajusta o tempo máximo entre duas verificações do sistema de arquivos. Nenhum sufixo ou `d' resulta em dias, `m' em meses e `w' em semanas. Um valor de zero vai desabilitar a verificação dependente do tempo. -l Lista o conteúdo do superbloco do sistema de arquivos. -m número-de-blocos-reservados Ajusta a porcentagem de blocos reservados no dispositivo dado.
Tune2fs -r contagem-blocos-reservados Ajusta a quantidade de blocos reservador no dispositivo dado. -s marca-super-esparso Ajusta e reinicia a marca superbloco-esparso. A característica superbloco-esparso economiza espaço em sistemas de arquivos realmente grandes. Aviso: O kernel do Linux 2.0 não suporta corretamente esta característica, nem todos os kernels do Linux 2.1; por favor não use isto a não ser que você saiba o que está fazendo! -u usuário Define o usuário que pode se beneficiar dos blocos reservados. usuário pode ser um uid numérico ou um nome de usuário. -C número-de-montagens Define o número de vezes que o sistema de arquivos foi montado. -L rótulo-do-volume Define o rótudo do volume no sistema de arquivos. -M diretório-da-última-montagem Define o diretório da última montagem do sistema de arquivos. -U UUID Define o UUID do sistema de arquivos. Um exemplo de UUID parece assim: "c1b9d5a2-f162-11cf-9ece-0020afc76f16". O uuid também pode ser "null", o que define o UUID do sistema de arquivos como um UUID nulo. O uuid também pode ser "random", o que gera um UUID aleatório para o sistema de arquivos.
xfs tools (xfs_metadump, xfs_info) xfs_metadump Copia um sistemas de arquivos para um arquivo
xfs tools (xfs_metadump, xfs_info) xfs_info Amplia o tamanho de um sistemas de arquivos XFS
104.3 Controle da montagem e desmontagem do sistema de arquivos 104.3 Controle da montagem e desmontagem do sistema de arquivos (/etc/fstab, /media, mount, umount)
/etc/fstab O arquivo "/etc/fstab" permite configurar o sistema para montar partições, CD-ROMs, disquetes e compartilhamentos de rede durante o boot. Cada linha é responsável por um ponto de montagem. É através do "/etc/fstab" que o sistema é capaz de acessar o seu CD-ROM, por exemplo. O fstab é um dos arquivos essenciais para o funcionamento do sistema, por isso, antes de editá-lo, faça sempre uma cópia de segurança: # cp /etc/fstab /etc/fstab-original.
/etc/fstab Colunas 1, 2 e 3 Coluna 1 - É a partição/disco a ser montado. No nosso exemplo temos duas entradas diferentes: LABEL=/ e /dev/hdb1
/etc/fstab Coluna 4 A coluna 4 descreve as opções de montagem da partição/disco associadas ao sistema de arquivos. Aqui podemos fazer várias configurações afim de personalizarmos nosso sistema. Vamos as opções: auto, noauto - Diz para o sistema se deve ou não montar automaticamente. Se colocar a opção "auto", o sistema irá montar no boot, se estiver "noauto", terá que montar o disco/partição manualmente. Default: auto. user, nouser - Aqui é onde permitimos ou não os usuários montarem o disco/partição. Colocando "user", qualquer usuário consegue montar, se colocarmos "nouser", apenas o super usuário conseguirá montar (root). Default: user. exec, noexec - Permite ou não a execução de binários no sistema de arquivos. Default: exec (imagine que, por engano, coloque noexec no /). rw - Monta o sistema de ficheiros com a opção Read-Write, ou seja, leitura e escrita. ro - Monta o sistema de ficheiros com a opção Read-Only, ou seja, somente leitura. sync, async - Diz ao sistema como deve ser a sincronização de dados (Input/output). Explicando melhor, diz como o sistema deve proceder quando tem que escrever no disco, se deve guardar em memória primeiro, aguardar confirmação e então escrever ou se escreve directamente (fisicamente) no disco/partição/disquete. Um exemplo, são as "pendrives", quando você escreve um documento de texto na sua pen, se estiver a opção sync, o sistema escreve na hora o documento na pen, se estiver async, o sistema apenas escreve o documento quando você for desmontar a pen. O grande problema coloca-se quando o utilizador esquece de desmontar o drive. Default: async. suid, nosuid - Habilita/desabilita o bit de set-user-identifier ou set-group-identifier. defaults - Diz ao sistema para carregar as opções padrão, que são: rw, suid, dev, exec, auto, nouser e async. Para outras opções, consulte a página de manual do mount.
/etc/fstab Coluna 5 - Esta coluna é a opção de dump do sistema, que nada mais é do que um utilitário de backup do sistema. O dump "lê" aqui o número e decide se o sistema deve ou não ser feito backup. Se estiver 0 (zero), o dump simplesmente ignora o disco/partição. Coluna 6 - Esta coluna é utilizada pelo fsck para a verificação dos discos/partições. Partições/discos de sistema normalmente tem esta opção como 1, outras partições do sistema como 2. Sistemas de arquivos no mesmo disco são verificados sequencialmente, enquanto que sistemas de arquivos em discos diferentes são verificados ao mesmo tempo, utilizando a função de paralelismo (se o hardware permitir). Se colocar esta opção como 0 (zero), o fsck conclui não ser necessário a verificação aqui.
/media o diretório "/mnt" (de "mount") recebe este nome justamente por servir de ponto de montagem para o drive óptico ("/mnt/cdrom" ou "/mnt/dvd") e outros dispositivos de armazenamento. Na maioria das distribuições atuais ele é substituído pelo diretório "/media", que tem a mesma função. Ao plugar um pendrive no Ubuntu, por exemplo, ele é montado pelo sistema na pasta "/media/disk"; ao plugar um cartão de memória, ele é visto como "/media/card" e assim por diante. Na verdade, o uso do diretório "/media" ou "/mnt" é apenas uma convenção. Você pode perfeitamente montar o seu pendrive dentro da pasta "/home/fulano/pendrive", por exemplo, desde que faça a montagem de forma manual. Os diretórios padrão de montagem das partições são configuráveis através do "/etc/fstab", que é um dos arquivos básicos de configuração do sistema.
mount Uso: # mount [opções] dispositivo ponto_de_montagem Em um sistema Linux, os arquivos estão organizados em uma grande árvore, onde o diretório raiz (pai de todos os outros diretórios) é representado como /. Estes arquivos podem estar distribuídos por diversos dispositivos como disquetes, cd-rooms, HDs, etc. O comando mount é usado para incluir o sistema de arquivos, de um dispositivo qualquer, à grande árvore de arquivos. Opções -a : monta todos os sistemas de arquivos especificados no arquivo /etc/fstab. -r : monta a partição somente para leitura. -t tipo : especifica o tipo de sistema de arquivo que será montado. São exemplos de tipos de sistemas: ext2 - para partições Linux. vfat - para partições Windows (permite nomes de arquivos com até 32 caracteres). msdos - para partições DOS. iso9660 - para unidades de CD-ROM. umsdos - para partição DOS com alguns recursos de Linux. -v : lista o sistema de arquivo de cada dispositivo montado. -w : monta a partição para leitura/gravação (é o padrão).
mount O exemplo abaixo monta uma partição DOS localizada em /dev/hda1 no diretório /mnt/dos # mount -r -t msdos /dev/hda1 /mnt/dos Se o dispositvo já foi descrito no /etc/fstab, mas ainda não foi montado, então basta especificar o nome do dispositivo ou o ponto de montagem ao digitar o comando mount. Por exemplo, suponha que o sistema tenha a seguinte linha no /etc/fstab /dev/fd0 /mnt/floppy vfat exec,dev,suid,rw,noauto 0 0 O comando acima define que o disquete (/dev/fd0) deve ser montado abaixo do diretório /mnt/floppy, sendo que o sistema de arquivos usado é vfat (Windows/DOS). A opção noauto define que o dispositivo não deve ser montado automaticamente durante a inicialização do sistema. Para montar o disquete você deve digitar # mount /mnt/floppy/ ou # mount /dev/fd0 Observações: O arquivo /etc/mtab possui a lista de todos os sistemas de arquivos atualmente montados no Linux. O comando mount, sem parâmetros, faz o sistema listar o conteúdo do arquivo /etc/mtab.
umount Uso # umount [opções] dispositivo / ponto de montagem Opções: -a : desmonta todos os sistemas de arquivos especificados em /etc/mtab. -r : no caso da desmontagem falhar, tenta remontar apenas para leitura. -v : exibe mensagens durante o processo de desmontagem da partição. Por exemplo, para desmontar o sistema de arquivos de um disquete, montado no diretório /mn/floppy, basta digitar: # umount /dev/fd0 ou # umount /mnt/floppy/
Fernando Costa www.fernandocosta.com.br fernandocosta@gmail.com