[ anterior ] [ Conteúdo ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 16 ] [ 17 ] [ 18 ] [ 19 ] [ 20 ] [ 21 ] [ 22 ] [ 23 ] [ 24 ] [ 25 ] [ 26 ] [ 27 ] [ 28 ] [ 29 ] [ 30 ] [ 31 ] [ 32 ] [ próximo ]


Guia Foca GNU/Linux
Capítulo 5 - Discos e Partições


Este capítulo traz explicações de como manipular discos rígidos e partições no sistema GNU/Linux e como acessar seus discos de CD-ROM e partições DOS, Windows 9X/XP/Vista/Seven no GNU/Linux.

Também será ensinado como formatar uma partição ou arquivo em formato EXT2, EXT3, reiserfs, xfs e usar a ferramenta mkswap (para criar uma partição ou arquivo de memória virtual).


5.1 Partições

São divisões existentes no disco rígido que marcam onde começa onde termina um sistema de arquivos. As partições nos permitem 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 ou até mesmo por diferentes arquiteturas (32 e 64 bits).

Para gravar os dados, o disco rígido deve ser primeiro particionado (usando o cfdisk, parted, diskdruid, fdisk), escolher o tipo da partição (Linux Native, Linux Swap, etc) e depois aquela partição deve ser formatada com o mkfs.ext3 (veja Partição EXT3 (Linux Native), Seção 5.5).

Após criada e formatada, a partição será automaticamente identificada como um dispositivo no diretório /dev (veja Identificação de discos e partições em sistemas Linux, Seção 5.12) . e deverá ser montada (Montando (acessando) uma partição de disco, Seção 5.13) para permitir seu uso no sistema.

Uma partição de disco não interfere em outras partições existentes, por este motivo é possível usar o Windows, GNU/Linux e qualquer outro sistema operacional no mesmo disco. Para escolher qual deles será inicializado, veja Gerenciadores de Partida (boot loaders), Capítulo 6.

Para particionar (dividir) o disco rígido em uma ou mais partes é necessário o uso de um programa de particionamento. Os programas mais conhecidos para particionamento de discos no GNU/Linux são fdisk, cfdisk e o Disk Druid.

Lembre-se:

Para mais detalhes sobre discos, partições ou como particionar seu disco, veja algum bom documento sobre particionamento (como a página de manual e documentação do fdisk, cfdisk, parted ou Disk Druid).


5.2 Sistema de Arquivos

É criado durante a "formatação" da partição de disco (quando se usa o comando mkfs.ext3). Após a formatação toda a estrutura para leitura/gravação/permissões de arquivos e diretórios pelo sistema operacional estará pronta para ser usada. Normalmente este passo é feito durante a instalação de sua distribuição GNU/Linux.

Cada sistema de arquivos tem uma característica em particular mas seu propósito é o mesmo: Oferecer ao sistema operacional a estrutura necessária para ler/gravar os arquivos/diretórios.

Entre os sistemas de arquivos existentes posso citar:


5.3 Partição EXT2 (Linux Native)

A partição EXT2 é o tipo usado para criar o sistema de arquivos Linux Native usado para armazenar o sistema de arquivos EXT2 (após a formatação) e permitir o armazenamento de dados. Para detalhes de como criar uma partição EXT2 veja Criando um sistema de arquivos EXT2 em uma partição, Seção 5.3.1.

Este tipo de partição é normalmente identificado pelo código 83 nos programas de particionamento de disco. Note que também é possível criar um sistema de arquivos EXT2 em um arquivo (ao invés de uma partição) que poderá ser montado e acessado normalmente pelo sistema de arquivos (veja Criando um sistema de arquivos EXT2 em um arquivo, Seção 5.3.2.

Logo que foi inventado, o GNU/Linux utilizava o sistema de arquivos Minix (e consequentemente uma partição Minix) para o armazenamento de arquivos. Com a evolução do desenvolvimento, foi criado o padrão EXT (Extended Filesystem) e logo evoluiu para o EXT2 (Second Extended Filesystem). O padrão mais usado nos dias de hoje é o EXT3 devido ao Journaling (será abordado no próximo capítulo).

Entre as vantagens do EXT2 para armazenamento de arquivos estão: é o mais rápido devido ao não uso de journaling (principalmente para Netbooks e dispositivos flash), não se fragmenta tão facilmente pois permite a localização do melhor lugar onde o arquivo se encaixa no disco, etc. Isto é útil para grandes ambientes multiusuário onde várias pessoas gravam/apagam arquivos o tempo todo.


5.3.1 Criando um sistema de arquivos EXT2 em uma partição

O utilitário usado para formatar uma partição EXT2 é o mkfs.ext2. Após terminar este passo, seu sistema de arquivos EXT2 estará pronto para ser usado.

Após particionar seu disco rígido e criar uma (ou várias) partições EXT2, use o comando:

mkfs.ext2 /dev/sda?

Onde a "?" em sda? significa o número da partição que será formatada. A identificação da partição é mostrada durante o particionamento do disco, anote se for o caso. sda normalmente é o primeiro disco rígido SATA, sdb é o segundo disco rígido SATA. Discos IDE normalmente são identificados por hda?, hdb?, etc. Para detalhes sobre a identificação de discos, veja Identificação de discos e partições em sistemas Linux, Seção 5.12.

Algumas opções são úteis ao mkfs.ext2:

Agora para acessar a partição deverá ser usado o comando: mount /dev/sda? /mnt -t ext2

Para mais detalhes veja Montando (acessando) uma partição de disco, Seção 5.13.

Note que é possível criar um sistema de arquivos no disco rígido sem criar uma partição usando /dev/sda, /dev/sdb, etc. EVITE FAZER ISSO! Como não estará criando uma partição, o disco estará divido de maneira incorreta, você não poderá apagar o sistema de arquivos completamente do disco caso precise (lembre-se que você não criou uma partição), e a partição possui uma assinatura apropriada que identifica o sistema de arquivos.

O espaço padrão reservado na partição para o usuário root é de 5%. Em sistemas com partições maiores que 10Gb, isso pode representar uma grande quantidade de espaço em disco não utilizada por outros usuários. Veja a opção -m sobre como fazer esta modificação. Caso já tenha criado a partição, isto pode ser feito no tune2fs com a opção -m.


5.3.2 Criando um sistema de arquivos EXT2 em um arquivo

É possível criar um sistema de arquivos EXT2 em um arquivo que poderá ser montado e acessado normalmente como se fosse uma partição normal. Isto é possível por causa do recurso loop oferecido pelo kernel do GNU/Linux. Os dispositivos de loop estão disponíveis no diretório /dev com o nome loop? (normalmente estão disponíveis 8 dispositivos de loop).

Isto é possível usando o comando dd e o mkfs.ext2. Veja passo a passo como criar o sistema de arquivos EXT2 em um arquivo:

  1. Use o comando dd if=/dev/zero of=/tmp/arquivo-ext2 bs=1024 count=10000 para criar um arquivo arquivo-ext2 vazio de 10Mb de tamanho em /tmp. Você pode modificar os parâmetros de of para escolher onde o arquivo será criado, o tamanho do arquivo poderá ser modificado através de count

  1. Formate o arquivo com mkfs.ext2 /tmp/arquivo-ext2. Ele primeiro dirá que o arquivo arquivo-ext2 não é um dispositivo de bloco especial (uma partição de disco) e perguntará se deve continuar, responda com y.

    O sistema de arquivos EXT2 será criado em /tmp/arquivo-ext2 e estará pronto para ser usado.

  1. Monte o arquivo arquivo-ext2 com o comando: mount /tmp/arquivo-ext2 /mnt -o loop=/dev/loop1. Note que foi usado o parâmetro -o loop para dizer ao comando mount para usar os recursos de loop do kernel para montar o sistema de arquivos.

  1. Confira se o sistema de arquivos EXT2 em arquivo-ext2 foi realmente montado no sistema de arquivos digitando df -T. Para detalhes, veja df, Seção 10.3.

Pronto! o que você gravar para /mnt será gravado dentro do arquivo /tmp/arquivo-ext2. Como foi criado um sistema de arquivos EXT2 em arquivo-ext2, você poderá usar todos os recursos da partição EXT2 normal, como permissões de arquivos e diretórios, links simbólicos, etc.

O uso da opção loop=/dev/loop1 permite que o dispositivo /dev/loop1 seja associado ao arquivo /arquivo-ext2 e assim permitir sua montagem e uso no sistema.


5.4 Journaling

O sistema de journaling grava qualquer operação que será feita no disco em uma área especial chamada "journal", assim se acontecer algum problema durante alterações no disco, ele pode voltar ao estado anterior do arquivo, ou finalizar a operação.

Desta forma, o journal acrescenta ao sistema de arquivos o suporte a alta disponibilidade e maior tolerância a falhas. Após uma falha de energia, por exemplo, o journal é analisado durante a montagem do sistema de arquivos e todas as operações que estavam sendo feitas no disco são verificadas. Dependendo do estado da operação, elas podem ser desfeitas ou finalizadas. O retorno do servidor é praticamente imediato (sem precisar a enorme espera da execução do fsck em partições maiores que 10Gb), garantindo o rápido retorno dos serviços da máquina.

Outra situação que pode ser evitada é com inconsistências no sistema de arquivos do servidor após a situação acima, fazendo o servidor ficar em estado 'single user' e esperando pela intervenção do administrador. Este capítulo do guia explica a utilização de journaling usando o sistema de arquivos ext3 e reiserfs (veja Partição EXT3 (Linux Native), Seção 5.5 para detalhes).


5.5 Partição EXT3 (Linux Native)

O sistema de arquivos ext3 faz parte da nova geração extended file system do Linux, sendo o padrão atual e tem como seu maior benefício o suporte a journaling e armazenamento eficiente de arquivos com até 16Gb de tamanho.

O uso deste sistema de arquivos comparado ao ext2, na maioria dos casos, melhora o desempenho do sistema de arquivos através da gravação seqüencial dos dados na área de metadados e acesso mhash a sua árvore de diretórios. Mas pode trazer impactos na performance no caso de dispositivos de memória flash e quando utiliza arquivos para armazenar o sistema de arquivos.

A estrutura da partição ext3 é semelhante a ext2, o journaling é feito em um arquivo chamado .journal que fica oculto pelo código ext3 na raiz da partição (desta forma ele não poderá ser apagado, comprometendo o funcionamento do sistema). A estrutura idêntica da partição ext3 com a ext2 torna mais fácil a manutenção do sistema, já que todas as ferramentas para recuperação ext2 funcionarão sem problemas.


5.5.1 Criando um sistema de arquivos EXT3 em uma partição

Para criar uma partição ext3, utilize o comando mkfs.ext3 ou o mkfs.ext2 junto com a opção -j. As opções usadas pelo mkfs.ext3 são idênticas a do mkfs.ext2 (documentado em Criando um sistema de arquivos EXT2 em uma partição, Seção 5.3.1). A única vantagem desta ferramenta comparada ao mkfs.ext2 é que a opção -j é automaticamente adicionada a linha de comando para criar um sistema de arquivos com journal. Se você é daqueles que querem ter um controle maior sobre o tamanho do arquivo de journal, use a opção -J [tam] (onde tamanho é o tamanho em Megabytes).

Quando uma partição ext3 é criada, o arquivo .journal é criado no raíz da partição, sendo usado para gravar os metadados das transações de journaling. A estrutura da partição ext2 não difere em nada da ext3, a não ser este arquivo e a opção "has_journal" que é passada a partição.

Por exemplo, para criar uma partição ext3 em /dev/sda1:

      mkfs.ext3 /dev/sda1
     
     ou
     
      mkfs.ext2 -j /dev/sda1

Basta agora montar a partição com o comando mount /dev/sda1 /teste -t ext3 (para montar a partição em /teste. Após isto, modifique o /etc/fstab para montar a partição como ext3 quando o Linux for iniciado. Para mais detalhes veja Montando (acessando) uma partição de disco, Seção 5.13. ). Caso o suporte a ext3 tenha sido compilado no kernel, ele tentará detectar e montar a partição como ext3, caso contrário, ele usará ext2.

Sua partição agora está montada como ext3, para conferir digite: df -T.

OBS: Quando criar um sistema de arquivos ext3 em uma partição raíz (/), tenha certeza de incluir o suporte a ext3 embutido no kernel, caso contrário a partição será montada como ext2.


5.5.2 Criando um sistema de arquivos EXT3 em um arquivo

As instruções para criar um sistema de arquivos ext3 em um arquivo não difere muito das instruções de Criando um sistema de arquivos EXT2 em um arquivo, Seção 5.3.2, apenas utilize a opção -j ou -J [tamanho_em_mb] (como explicado em Criando um sistema de arquivos EXT3 em uma partição, Seção 5.5.1).


5.5.3 Fazendo a conversão do sistema de arquivos EXT2 para EXT3

Se você já possui um uma partição ext2 e deseja converte-la para ext3 isto poderá ser feito facilmente, de forma segura (sem qualquer risco de perda de dados) e você poderá voltar para o sistema ext2 caso deseje (veja Convertendo de EXT3 para EXT2, Seção 5.5.4).

Primeiro, execute o comando tune2fs na partição que deseja converter com a opção -j ou -J [tamanho_journal] para adicionar o suporte a Journaling na partição. Este comando poderá ser executado com segurança em uma partição ext2 montada, após converter remontar a partição usando os comandos umount /particao e mount /particao.

Após a conversão para ext3 é desnecessária a checagem periódica do sistema de arquivos (que por padrão é após 20 montagens e a cada 30 dias). Você pode desativar a checagem após o número máximo de montagens com a opção -c [num_vezes], e o número de dias máximos antes de verificar novamente com a opção -i [num_dias] (o uso de 0 desativa). Por exemplo:

     tune2fs -c 0 -i 90 /dev/sda2

Desativa a checagem após número máximo de montagens (-c 0) e diz para a partição ser verificada a cada 90 dias (-i 90).

O último passo é modificar o /etc/fstab para que a partição seja montada como ext3 na inicialização e depois desmontar (umount /dev/sda2 e remonta-la (mount /dev/sda2) para usar o suporte ext3. Confira se ela está usando ext3 usando o comando df -T.

OBS: Caso a partição convertida para ext3 seja a raíz (/), tenha certeza de incluir o suporte a ext3 embutido no kernel, caso contrário, a partição será montada como ext2.


5.5.4 Convertendo de EXT3 para EXT2

Remover o suporte a ext3 de uma partição é simples, rápido e seguro. Execute os seguintes passos:

  • Execute o comando tune2fs -O^has_journal /dev/sdxx na partição que deseja remover o Journal. Este comando poderá ser executado em uma partição montada.

  • Modifique o /etc/fstab e altere a partição para ext2.

  • Desmonte e monte novamente a partição com os comandos: umount /dev/hdxx e mount /dev/sdxx.

  • Pronto! a partição agora é novamente uma partição ext2 normal, confira digitando df -T.

  • Pronto, o suporte a ext3 foi removido do seu sistema e agora poderá usar a partição como ext2 normalmente (confira digitando df -T).


    5.5.5 Nomeando uma partição de disco ext2/ext3

    O comando e2label é usado para esta função.

    e2label [dispositivo] [nome]

    Onde:

    dispositivo

    Partição que terá o nome modificado

    nome

    Nome que será dado a partição (máximo de 16 caracteres). Caso seja usado um nome de volume com espaços, ele deverá ser colocado entre "aspas".

    Se não for especificado um nome, o nome atual da partição será mostrado. O nome da partição também pode ser visualizado através do comando dumpe2fs (veja dumpe2fs, Seção 5.5.7).

    Exemplo: e2label /dev/sda1 FocaLinux, e2label /dev/sda1 "Foca Linux"


    5.5.6 Criando o diretório especial lost+found

    O utilitário mklost+found cria o diretório especial lost+found no diretório atual. O diretório lost+found é criado automaticamente após a formatação da partição com o mkfs.ext2, a função deste diretório é pré-alocar os blocos de arquivos/diretório durante a execução do programa fsck.ext2 na recuperação de um sistema de arquivos (veja Checagem dos sistemas de arquivos, Seção 26.1). Isto garante que os blocos de disco não precisarão ser diretamente alocados durante a checagem.

    mklost+found

    OBS: Este comando só funciona em sistemas de arquivos ext2/3/4

    Exemplo: cd /tmp;mklost+found;ls -a


    5.5.7 dumpe2fs

    Mostra detalhes sobre uma partição Linux.

    dumpe2fs [opções] [partição]

    Onde:

    partição

    Identificação da partição que será usada.

    opções
    -b

    Mostra somente os blocos marcado 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


    5.5.8 Partição EXT2 ou Arquivo?

    Criar uma partição EXT2 ou um arquivo usando o loop? Abaixo estão algumas considerações:


    5.6 Sistema de arquivos reiserfs

    Este é um sistema de arquivos alternativo ao ext2/3/4 que também possui suporte a journaling. Entre suas principais características, estão que ele possui tamanho de blocos variáveis, suporte a arquivos maiores que 2 Gigabytes e o acesso mhash a árvore de diretórios é um pouco mais rápida que o ext3.

    Para utilizar reiserfs, tenha certeza que seu kernel possui o suporta habilitado (na seção File Systems) e instale o pacote reiserfsprogs que contém utilitários para formatar, verificar este tipo de partição.


    5.6.1 Criando um sistema de arquivos reiserfs em uma partição

    Para criar uma partição reiserfs, primeiro instale o pacote reiserfsprogs (apt-get install reiserfsprogs).

    Para criar uma partição reiserfs, primeiro crie uma partição ext2 normal, e então use o comando:

    mkreiserfs /dev/sda?

    Onde a "?" em sda? significa o número da partição que será formatada com o sistema de arquivos reiserfs. A identificação da partição é mostrada durante o particionamento do disco, anote se for o caso. sda é o primeiro disco rígido SATA, sdb é o segundo disco rígido SATA. Discos IDE são identificados por hda?, hdb?, etc. Para detalhes sobre a identificação de discos, veja Identificação de discos e partições em sistemas Linux, Seção 5.12.

    Algumas opções são úteis ao mkreiserfs:

    Agora para acessar a partição deverá ser usado o comando: mount /dev/sda? /mnt -t reiserfs

    Para mais detalhes veja Montando (acessando) uma partição de disco, Seção 5.13.

    Note que é possível criar um sistema de arquivos no disco rígido sem criar uma partição usando /dev/sda, /dev/sdb, etc. usando a opção -f EVITE FAZER ISSO! Como não estará criando uma partição, o disco estará preparado para uso de maneira incorreta, você não poderá apagar o sistema de arquivos completamente do disco caso precise (lembre-se que você não criou uma partição), e a partição possui uma assinatura apropriada que identifica o sistema de arquivos.


    5.6.2 Criando um sistema de arquivos reiserfs em um arquivo

    O sistema de arquivos reiserfs também poderá ser criado em um arquivo, usando os mesmos benefícios descritos em Criando um sistema de arquivos EXT2 em um arquivo, Seção 5.3.2. Para fazer isso execute os seguintes passos em seqüência:

    1. Use o comando dd if=/dev/zero of=/tmp/arquivo-reiserfs bs=1024 count=33000 para criar um arquivo arquivo-reiserfs vazio de 33Mb de tamanho em /tmp. Você pode modificar os parâmetros de of para escolher onde o arquivo será criado, o tamanho do arquivo poderá ser modificado através de count. Note que o tamanho mínimo do arquivo deve ser de 32Mb, devido aos requerimentos do reiserfs.

    1. Formate o arquivo com mkreiserfs -f /tmp/arquivo-reiserfs. Ele primeiro dirá que o arquivo arquivo-reiserfs não é um dispositivo de bloco especial (uma partição de disco) e perguntará se deve continuar, responda com y.

      O sistema de arquivos ReiserFS será criado em /tmp/arquivo-reiserfs e estará pronto para ser usado.

    1. Monte o arquivo arquivo-reiserfs com o comando: mount /tmp/arquivo-reiserfs /mnt -t reiserfs -o loop=/dev/loop1. Note que foi usado o parâmetro -o loop para dizer ao comando mount para usar os recursos de loop do kernel para montar o sistema de arquivos. O parâmetro -t reiserfs poderá ser omitido, se desejar.

    1. Confira se o sistema de arquivos ReiserFS em arquivo-reiserfs foi realmente montado no sistema de arquivos digitando df -T. Para detalhes, veja df, Seção 10.3.

    Pronto! o que você gravar para /mnt será gravado dentro do arquivo /tmp/arquivo-reiserfs. Você poderá usar todos os recursos de um sistema de arquivos reiserfs como permissões de arquivos e diretórios, links simbólicos, etc.

    O uso da opção loop=/dev/loop1 permite que o dispositivo /dev/loop1 seja associado ao arquivo /arquivo-reiserfs e assim permitir sua montagem e uso no sistema.


    5.7 Partição Linux Swap (Memória Virtual)

    Este tipo de partição é usado para oferecer o suporte a memória virtual ao GNU/Linux em adição a memória RAM instalada no sistema. Este tipo de partição é identificado pelo tipo 82 nos programas de particionamento de disco para Linux. Para detalhes de como criar uma partição Linux Swap veja Criando sistema de arquivos Swap em uma partição, Seção 5.7.1.

    Somente os dados na memória RAM são processados pelo processador, por ser mais rápida. Desta forma quando você está executando um programa e a memória RAM começa a encher, o GNU/Linux move automaticamente os dados que não estão sendo usados para a partição Swap e libera a memória RAM para a continuar carregando os dados necessários pelo. Quando os dados movidos para a partição Swap são solicitados, o GNU/Linux move os dados da partição Swap para a Memória. Por este motivo a partição Swap também é chamada de Troca ou memória virtual.

    A partição swap é otimizada para permitir alta velocidade para mover dados da memória RAM para ela e vice versa. Note também que é possível criar o sistema de arquivos Swap em um arquivo ao invés de uma partição (veja Criando um sistema de arquivos Swap em um arquivo, Seção 5.7.2).


    5.7.1 Criando sistema de arquivos Swap em uma partição

    O programa usado para formatar uma partição Swap é o mkswap. Seu uso é simples:

    mkswap /dev/sda?

    Novamente veja Identificação de discos e partições em sistemas Linux, Seção 5.12 caso não souber identificar seus discos e partições. O nome do dispositivo da partição Swap pode ser visualizado através de seu programa de particionamento, você pode usar o comando fdisk -l /dev/sda para listar as partições no primeiro disco rígido e assim verificar qual dispositivo corresponde a partição Swap.

    A opção -c também pode ser usada com o mkswap para checar se existem agrupamentos danificados na partição. A opção -v1 permite a criação da swap usando mais de 128Mb (esta opção é a padrão).

    Com a partição Swap formatada, use o comando: swapon /dev/sda? para ativar a partição Swap (lembre-se de substituir ? pelo número de sua partição Swap).

    Observações:

    Versões antigas do kernel do GNU/Linux 2.0.xx e anteriores somente suportavam partições Swap de até 128MB. Nos novos kernels foi introduzida uma nova versão da swap. Para converter a swap antiga para uma nova versão reformate-a usando mkswap -v1 /dev/sda? (onde /dev/sda? especifica sua partição swap, obtida com o fdisk -l /dev/sda).

    Se utilizar mais que 1 partição Swap, pode ser útil o uso da opção -p NUM que especifica a prioridade em que a partição Swap será usada. Pode ser usado um valor de prioridade entre 0 e 32767, partições com número maior serão usadas primeiro, sendo que na montagem automática através de "mount -a" podem ser designados números negativos.

    Procure usar o número maior para partições mais rápidas (elas serão acessadas primeiro) e números maiores para partições mais lentas. Caso precise desativar a partição Swap, use o comando: swapoff /dev/sda?.


    5.7.2 Criando um sistema de arquivos Swap em um arquivo

    Também é possível criar um arquivo que poderá ser usado como memória virtual. Veja passo a passo como fazer isso:

    1. Use o comando dd if=/dev/zero of=/tmp/troca bs=1024 count=64000 para criar um arquivo chamado troca vazio de 64Mb de tamanho em /tmp. Você pode modificar os parâmetros de of para escolher onde o arquivo será criado, o tamanho do arquivo poderá ser modificado através de count.

    1. Execute mkswap /tmp/troca para formatar o arquivo. Após concluir este passo, o sistema de arquivos Swap estará criado e pronto para ser usado.

    1. Digite sync para sincronizar os buffers para o disco, assim você não terá problemas em um servidor com muito I/O.

    1. Ative o arquivo de troca com o comando swapon /tmp/troca.

    1. Confira se o tamanho da memória virtual foi modificado digitando cat /proc/meminfo ou free.

    Observações:


    5.7.3 Partição Swap ou Arquivo?

    Criar uma partição de Troca ou um arquivo de troca? Abaixo algumas vantagens e desvantagens:


    5.8 O sistema de arquivos /proc

    É o sistema de arquivos do Kernel do GNU/Linux. Ele oferece um método de ler, gravar e modificar dinamicamente os parâmetros do kernel, muito útil para pessoas que gostam de entender como as coisas funcionam (como eu) e programas de configuração. A modificação dos arquivos do diretório /proc é o método mais usado para modificar a configuração do sistema e muitos programas também dependem deste diretório para funcionar.

    Nele você tem todo o controle do que o seus sistema operacional está fazendo, a configuração dos hardwares, interrupções, sistema de arquivos montado, execução de programas, memória do sistema, rede, etc.

    Agora entre no diretório /proc digite ls e veja a quantidade de arquivos e diretórios que ele possui, dê uma passeada por eles. Abaixo a descrição de alguns deles (todos podem ser visualizados pelo comando cat):

    Note que o diretório proc e os arquivos existentes dentro dele estão localizados no diretório raiz (/), mas não ocupa nenhum espaço no disco rígido.


    5.9 LVM - Logical Volume Manager

    O lvm (Logical Volume Manager) faz a associação entre dispositivos/partições físicas (incluindo discos RAID, MO, mass storages diversos, MD, e loop) e dispositivos lógicos. O método tradicional faz a alocação de todo espaço físico ao tamanho da partição do disco (o método tradicional), o que traz muito trabalho quando o espaço esgota, cópia de dados ou planejamento de uso de máquina (que pode mudar com o passar do tempo). O sistema de lvm soluciona os seguintes problemas:

    As 3 camadas do LVM são agrupadas da seguinte forma:


    5.9.1 Representação gráfica do LVM

    Desenvolvi este desenho para representar a idéia de organização de um sistema LVM para o guia Foca GNU/Linux e apresentar a descrição prática da coisa:

         +------[ Grupo de Volume (VG) - lvmdsk ]------+
         | +--[ PV - hda1 ]---+ +--[ PV - hdb1 ]--+    |
         | | PE PE PE PE PE PE| | PE PE PE PE PE  |    |
         | +------------------+ +-----------------+    |
         |    |  |                   |        |        |
         |    |  | +-----------------+        |        |
         |    |  +----------------+           |        |
         |    |    |              |           |        |
         |  +-[ LV - var ]-+    +-[ LV - home ]-+      |
         |  | LE LE LE LE  |    | LE LE LE LE   |      |
         |  +--------------+    +---------------+      |
         +---------------------------------------------+
    

    O gráfico acima representa a seguinte situação:

  • Nós temos dois volumes físicos representados por hda1 e hdb1. Cada um desses volumes físicos tem um Phisical Extend (PE) de 4M (o padrão).

  • Estes dois volumes físicos acima representam o espaço total do grupo de volume lvmdisk em /dev/lvmdisk.

  • Do grupo de volume lvmdisk são criados dois volumes lógicos chamados var e home, estando disponíveis para particionamento através de /dev/lvmdisk/var e /var/lvmdisk/home.

  • Na prática, o espaço do volume lógico é definido alocando-se alguns Phisical Extends (PE) dos volumes físicos como logical extends (LE) dos volumes lógicos. Desta forma, o tamanho de todos os PEs e LEs existentes dentro de um mesmo grupo de volume devem ser iguais.


    5.9.2 Performance do LVM

    Um sistema com LVM tem sua performance um pouco reduzida quanto ao acesso a disco, devido as camadas adicionais de acesso aos dados, sendo afetadas operações em caracteres e inteligentes de acesso a dados.

    Entretanto, a performance de leitura/gravação de blocos é melhorada consideravelmente após a adoção do LVM. O LVM também garante que o sistema não mostre sintomas de paradas durante o esvaziamento de cache de disco, mantendo sempre uma certa constância na transferência de dados mesmo em operações pesadas de I/O no disco. Depende de você avaliar estes pontos e considerar sua adoção.


    5.9.3 Instalando LVM em seu sistema

    Nesta seção não tenho a intenção de cobrir todos os detalhes técnicos da implantação do LVM, a idéia aqui é fornecer uma referência básica e prática para uso em qualquer sistema normal (desconsiderando usos críticos). A idéia aqui é mostrar de forma prática como implantar LVM em sua máquina e preparar seu uso nos discos.

    Antes de começar, retire QUALQUER CD que estiver inserido na unidade de CD-ROM, pois eles podem causar erro no pvscan, pvdisplay, etc.

  • No particionamento, defina as partições do tipo 8E (Linux LVM). A partição Linux LVM é exatamente igual a Linux Native (82), a única vantagem é que o LVM utilizará auto detecção para saber quais partições ele deve utilizar no pvscan.

  • Instale o pacote lvm2 e uma imagem de kernel 2.4 ou 2.6 que tenha suporte a LVM, ou compile seu próprio kernel (caso goste de máquinas turbinadas :-)

  • Execute o pvscan para detectar as partições marcadas como LVM e criar sua configuração em /etc/lvmtab.d.

    OBS: É normal o sistema procurar dispositivos de CD-ROM durante a execução do pvscan, apenas não deixe um CD na unidade para evitar grandes sustos se estiver desatento com os passos :-)

  • Rode o pvcreate no disco ou partição para dizer que ela será um volume físico do LVM: pvcreate /dev/sda1 ou pvcreate /dev/sda

    Em caso de dúvida sobre qual é a partição LVM, digite: fdisk -l /dev/sda (supondo que /dev/sda é o disco rígido que está configurando o LVM).

  • Rode o pvdisplay /dev/hda1 para verificar se o volume físico foi criado. Recomendo que deixe a partição raíz (/) de fora do LVM para não ter futuros problemas com a manutenção do seu sistema, a menos que tenha muitas opções de inicialização com suporte a LVM em mãos :-)

  • Crie o grupo de volume na partição vgcreate lvmdisk /dev/sda1 /dev/sdb7. Note que partições de discos diferentes podem fazer parte de um mesmo grupo de volume (VG) do LVM. Caso use o devfs ou em algumas versões do udev, será preciso usar o caminho completo do dispositivo ao invés do link: vgcreate lvmdisk /dev/ide/host0/bus0/target0/lun0/part1

    O valor padrão do "Phisical Extend" é de 4MB mas pode ser alterado pelo parâmetro "-s tamanho", assim o tamanho máximo do grupo de volume será de 256GB (4MB * 64.000 extends que são suportados por volume lógico). Os valores do Phisical Extend (PE) pode ser de 8k a 16GB. Não é possível modificar o tamanho do PE após ele ser definido.

  • Verifique o grupo de volume (VG) recém criado com o comando: vgdisplay ou vgdisplay /dev/sda7. Atente para a linha "Free PE / tamanho", que indica o espaço livre restante para criar os volumes lógicos (LV).

  • Crie o volume lógico (LV) com o comando: lvcreate -L1500 -ntmp lvmdisk Que vai criar uma partição LVM de 1500MB (1,5GB) com o nome tmp (acessível por /var/lvmdisk/tmp) dentro do grupo lvmdisk. Você deverá fazer isso com as outra partições.

  • Agora resta criar um sistema de arquivos (ext3, reiserfs, xfs, jfs, etc) como faria com qualquer partição física normal:

    mkfs.ext3 /dev/lvmdisk/tmp ou mkfs.reiserfs /dev/lvmdisk/tmp

  • OBS: Caso deseje montar automaticamente o volume LVM, coloque o caminho completo do LVM ao invés do volume físico no /etc/fstab: /dev/lvmdisk/tmp.


    5.9.4 Aumentando o tamanho de um volume lógico

    O processo para aumentar o tamanho do volume lógico consiste em primeiro aumentar o tamanho do VG com o lvextend e depois ajustar o tamanho do sistema de arquivos:

         # Aumenta o espaço do volume lógico tmp para 1G
         lvextend -L1G /dev/lvmdisk/tmp
         
         # Aumenta em 200MB o espaço no volume lógico tmp
         lvextend -L+200M /dev/lvmdisk/tmp
    

    As unidades Kk,Mm,Gg,Tt podem ser usadas para especificar o espaço. Após modificar o volume lógico, será preciso aumentar o tamanho do sistema de arquivos para ser exatamente igual ao tamanho do LV. Isto depende do seu sistema de arquivos:

    ext2/3

    resize2fs /dev/lvmdisk/tmp

    O ext2/3 ainda vem com o utilitário e2fsadm que executa os dois comandos (lvextend e resize2fs) de uma só vez: e2fsadm -L+1G /dev/lvmdisk/tmp

    OBS: Você deverá desmontar o sistema de arquivos antes de alterar o tamanho de um sistema de arquivos ext2 ou ext3. Em kernels da serie 2.6.17 e superiores, a alteração pode ser feita on-line (devido ao patch ext2online incorporado ao kernel).

    reiserfs

    resize_reiserfs -f /dev/lvmdisk/tmp

    O tamanho do sistema de arquivos reiserfs poderá ser modificado on-line, assim não precisa parar seu servidor para esta operação.

    xfs

    xfs_growfs /tmp

    Note que deve ser especificado o ponto de montagem ao invés do dispositivo. O sistema de arquivos deverá ser montado antes de ser modificado e incluido no /etc/fstab.


    5.9.5 Diminuindo um volume lógico

    Para diminuir o tamanho de um volume lógico, certifique-se de ter calculado o espaço corretamente para acomodar todos os dados que já existem na partição. A diferença para o processo de aumentar o LV é que primeiramente o sistema de arquivos é reduzido primeiro e depois o LV (pois o LV que acomoda o sistema de arquivos):

    ext2/3/4

    resize2fs /dev/lvmdisk/tmp 4G e depois lvreduce -L-1G /dev/lvmdisk/tmp

    Podem ser usados K, M ou G para especificar o novo tamanho. Caso esteja usando um kernel 2.6.17 ou superior, o tamanho poderá ser ajustado com o sistema de arquivos on-line (sem desmontar).

    reiserfs

    resize_reiserfs -s-1G /dev/lvmdisk/tmp e depois lvreduce -L-1G /dev/lvmdisk/tmp

    O tamanho do sistema de arquivos reiserfs poderá ser modificado on-line, assim não precisa parar seu servidor para a modificação.

    xfs

    Não é possível diminuir o tamanho de um sistema de arquivos XFS em sua versão atual (12/2006).


    5.10 Formatando Pen-drives/Disquetes

    As subseções seguintes explicarão maneiras de formatar seu pen-drive, memória flash, e outras tecnologias (incluindo disquetes) para serem usados no GNU/Linux e DOS/Windows.


    5.10.1 Formatando pen-drives para serem usados no Linux

    Para formatar pen-drives para serem usados no GNU/Linux use o comando:

    mkfs.ext2 [-c] [/dev/sde1]

    Em alguns sistemas você deve usar mke2fs no lugar de mkfs.ext2. A opção -c faz com que o mkfs.ext2 procure por blocos danificados no pen-drive. Caso deseje formatar um disquete, especifique o dispositivo /dev/fd0 ao inves de /dev/sdb1.

    Note que o nome de dispositivo que é conectado varia de acordo com o sistema e quantidade de discos rígidos que sua máquina possui portanto tenha ATENCÃO para não formatar o dispositivo incorreto (que pode ser justamente seu disco disco rígido principal). Para maior segurança, ao identificar o pen-drive, digite dmesg ao conectar o pen-drive para visualizar o dispositivo correto ou fique atento as mensagens do console que mostrará o dispositivo que foi associado ao pen-drive.

    OBS: Este comando cria um sistema de arquivos ext2 no pen-drive e permite usar características como permissões de acesso e outras. Isto também faz com que o pen-drive NÃO possa ser lido pelo DOS/Windows. Para formatar um pen-drive no GNU/Linux usando o FAT16 ou FAT32 (compatível com o DOS/Windows) veja próxima seção.

    Exemplo: mkfs.ext2 -c /dev/sde1


    5.10.2 Formatando pen-drives compatíveis com o Windows

    A formatação de pen-drives para serem usados no Windows é feita usando o comando mkfs.msdos que é geralmente incluído no pacote dosfstools. O mkfs.msdos permite tanto a criação de sistemas de arquivos FAT16 ou FAT32.

    mkfs.msdos [opções] [dispositivo]

    dispositivo

    Pen-drive que será formatado. Normalmente /dev/sdb1 (dependendo do dispositivo detectado via comando dmesg).

    opções
    -F [num]

    Especifica o tipo de FAT que será usado na formatação. Podem ser usados os valores 12 (para formatação usando FAT12, limitado a 12MB), 16 (para formatação usando FAT16, limitado a 2Gb) e 32 (para formatação FAT32, limitado a 128Gb).

    -n [nome]

    Atribui o [nome] de volume ao dispositivo.

    -c

    Faz uma pesquisa por bad blocks antes da criação do sistema de arquivos no dispositivo. Os setores defeituosos encontrados serão automaticamente marcados para não serem utilizadas.

    -m [arquivo_mensagem]

    Especifica o arquivo que contém a mensagem que será exibida ao usuário caso o disco não seja inicializável. A mensagem não pode exceder 418 bytes.

    Note que não se deve montar o pen-driv / disquete para formata-lo.

    Segue abaixo exemplos de como formatar seu pen-drive mkfs.msdos:


    5.10.3 Programas de Formatação Gráficos

    Além de programas de formatação em modo texto, existem outros para ambiente gráfico (X11) que permitem fazer a mesma tarefa.

    Entre os diversos programas destaco o gfloppy que além de permitir selecionar se o disquete será formatado para o GNU/Linux (ext2), DOS (FAT12) e permite selecionar a capacidade e formatação rápida do disco.


    5.11 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. Para detalhes sobre montagem de partições, veja Montando (acessando) uma partição de disco, Seção 5.13.

    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.

    Existem muitas vantagens de se usar pontos de montagem ao invés de unidade de disco para identificar partições (método usado no Windows):


    5.12 Identificação de discos e partições em sistemas Linux

    No GNU/Linux, os dispositivos existentes em seu computador (como discos rígidos, pen-drives, flash, disquetes,, tela, portas de impressora, modem, etc) são identificados por um arquivo referente a este dispositivo no diretório /dev.

    A identificação de discos rígidos no GNU/Linux é feita da seguinte forma:

         /dev/sda1
         |    | ||
         |    | ||_Número que identifica o número da partição no disco rígido.
         |    | |
         |    | |_Letra que identifica o disco rígido (a=primeiro, b=segundo, etc...).
         |    |
         |    |_Sigla que identifica o tipo do disco rígido (sd=SATA/SCSI, sd=IDE, xt=MFM).
         |
         |_Diretório onde são armazenados os dispositivos existentes no sistema.
    

    Abaixo algumas identificações de discos e partições em sistemas Linux:

    As letras de identificação de discos rígidos podem ir além de sdb, por exemplo, caso utilize pen-drives, memória flash, as unidades serão detectadas como sdc, sdd e assim por diante.

    É importante entender como os discos e partições são identificados no sistema, pois será necessário usar os parâmetros corretos para monta-los.


    5.13 Montando (acessando) uma partição de disco

    Você pode acessar uma partição de disco usando o comando mount.

    mount [dispositivo] [ponto de montagem] [opções]

    Onde:

    dispositivo

    Identificação da unidade de disco/partição que deseja acessar (como /dev/hda1 (disco rígido) ou /dev/fd0 (primeira unidade de disquetes).

    ponto de montagem

    Diretório de onde a unidade de disco/partição será acessado. O diretório deve estar vazio para montagem de um sistema de arquivo. Normalmente é usado o diretório /mnt para armazenamento de pontos de montagem temporários.

    -t [tipo]

    Tipo do sistema de arquivos usado pelo dispositivo. São aceitos os sistemas de arquivos:

    Na maioria das vezes, caso o sistema de arquivos não seja especificado, o mount utilizará a auto-detecção e montará a partição usando o sistema de arquivos correto. Para mais detalhes sobre opções usadas com cada sistema de arquivos, veja a página de manual mount.

    -r

    Caso for especificada, monta a partição somente para leitura.

    -w

    Caso for especificada, monta a partição como leitura/gravação. É o padrão.

    Existem muitas outras opções que podem ser usadas com o comando mount, mas aqui procurei somente mostrar o básico para "montar" seus discos e partições no GNU/Linux (para mais opções, veja a página de manual do mount). Caso você digitar mount sem parâmetros, serão mostrados os sistemas de arquivos atualmente montados no sistema. Esta mesma listagem pode ser vista em /etc/mtab. A remontagem de partição também é muito útil, especialmente após reparos nos sistema de arquivos do disco rígido. Veja alguns exemplos de remontagem abaixo.

    É necessário permissões de root para montar partições, a não ser que tenha especificado a opção user no arquivo /etc/fstab (veja fstab, Seção 5.13.1).

    Exemplo de Montagem:


    5.13.1 fstab

    O arquivo /etc/fstab permite que as partições do sistema sejam montadas facilmente especificando somente o dispositivo ou o ponto de montagem. Este arquivo contém parâmetros sobre as partições que são lidos pelo comando mount. Cada linha deste arquivo contém a partição que desejamos montar, o ponto de montagem, o sistema de arquivos usado pela partição e outras opções. fstab tem a seguinte forma:

         Sistema_de_arquivos Ponto_de_Montagem Tipo    Opções           dump ordem
         /dev/sda1           /                 ext3    defaults           0    1
         /dev/sda2           /boot             ext3    defaults           0    2
         /dev/sda3           /dos              msdos   defaults,noauto,rw 0    0
         /dev/hdg            /cdrom            iso9660 defaults,noauto    0    0
    

    Onde:

    Sistema de Arquivos

    Partição que deseja montar.

    Ponto de montagem

    Diretório do GNU/Linux onde a partição montada será acessada.

    Tipo

    Tipo de sistema de arquivos usado na partição que será montada. Para partições GNU/Linux use ext3, reiserfs, xfs (de acordo com o tipo de partição selecionada durante a formatação), para partições DOS (sem nomes extensos de arquivos) use msdos, para partições Win 95 (com suporte a nomes extensos de arquivos) use vfat, para unidades de CD-ROM use iso9660.

    Opções

    Especifica as opções usadas com o sistema de arquivos. Abaixo, algumas opções de montagem para ext2/3/4 (a lista completa pode ser encontrada na página de manual do mount):

    dump

    Especifica a frequência de backup feita com o programa dump no sistema de arquivos. 0 desativa o backup.

    Ordem

    Define a ordem que os sistemas de arquivos serão verificados na inicialização do sistema. Se usar 0, o sistema de arquivos não é verificado. O sistema de arquivos raíz que deverá ser verificado primeiro é o raíz "/" (a não ser que você tenha um sistema de arquivos de outro tipo que não é montado dentro do diretório raíz e possui seu suporte embutido no kernel) .

    Após configurar o /etc/fstab, basta digitar o comando mount /dev/hdg ou mount /cdrom para que a unidade de CD-ROM seja montada. Você deve ter notado que não é necessário especificar o sistema de arquivos da partição pois o mount verificará se ele já existe no /etc/fstab e caso existir, usará as opções especificadas neste arquivo. Para maiores detalhes veja as páginas de manual fstab e mount.


    5.14 Desmontando uma partição de disco

    Utilize o comando umount para desmontar um sistema de arquivos que foi montado com o mount. Você deve ter permissões de root para desmontar uma partição.

    umount [dispositivo/ponto de montagem]

    Você pode tanto usar umount /dev/sda1 como umount /mnt para desmontar um sistema de arquivos /dev/sda1 montado em /mnt.

    Observação: O comando umount executa o sync automaticamente no momento da desmontagem, para garantir que todos os dados ainda em memória RAM sejam salvos.


    [ anterior ] [ Conteúdo ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 16 ] [ 17 ] [ 18 ] [ 19 ] [ 20 ] [ 21 ] [ 22 ] [ 23 ] [ 24 ] [ 25 ] [ 26 ] [ 27 ] [ 28 ] [ 29 ] [ 30 ] [ 31 ] [ 32 ] [ próximo ]


    Guia Foca GNU/Linux

    Versão 5.65 - domingo, 05 de setembro de 2010

    Gleydson Mazioli da Silva gleydson@guiafoca.org