[ previous ] [ Contents ] [ 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 ] [ next ]

Guia Foca GNU/Linux
Chapter 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 95/98 no GNU/Linux.

Também será ensinado como utilizar o programa mkfs.ext2 para criar um sistema de arquivos EXT2 (formatar o disco) e 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. Por causa destas divisões, nós podemos usar mais de um sistema operacional no mesmo computador (como o GNU/Linux, Windows e DOS), ou dividir o disco rígido em uma ou mais partes para ser usado por um único sistema operacional.

Para gravar os dados, o disco rígido deve ser primeiro particionado (usando o fdisk), escolher o tipo da partição (Linux Native, Linux Swap, etc) e depois aquela partição deve ser formatada com o mkfs.ext2 (veja Partição EXT2 (Linux Native), Section 5.3).

Após criada e formatada, a partição será identificada como um dispositivo no diretório /dev (veja Identificação de discos e partições em sistemas Linux, Section 5.8) . e deverá ser montada (Montando (acessando) uma partição de disco, Section 5.9) 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), Chapter 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 ou Disk Druid).


5.2 Sistema de Arquivos

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

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

Entre os sistemas de arquivos existentes posso citar:


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, Section 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, Section 5.3.2.

Logo que foi inventado, o GNU/Linux utilizava o sistema de arquivos Minix (e conseqüentemente 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) que é o usado hoje em dia.

Você deve escolher este tipo de partição para armazenar seus arquivos, é o padrão atualmente, é o mais rápido, não se fragmenta tão facilmente pois permite a localização do melhor lugar onde o arquivo se encaixa no disco, etc. Isto é útil para grandes ambientes multiusuário onde várias pessoas gravam/apagam arquivos o tempo todo.


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

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

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

mkfs.ext2 /dev/hda?

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

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

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

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

Note que é possível criar um sistema de arquivos no disco rígido sem criar uma partição usando /dev/hda, /dev/hdb, 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.


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 arquivo.
  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, Section 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 do dispositivo de loop permite que o dispositivo /dev/loop1 seja associado ao arquivo /arquivo-ext2 e assim permitir sua montagem e uso no sistema.


5.3.3 Nomeando uma partição de disco

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, Section 5.3.5).

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


5.3.4 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, Section 25.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

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


5.3.5 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.3.6 Partição EXT2 ou Arquivo?

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


5.4 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, Section 5.4.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 velocidade em que os dados são movidos da memória RAM para a partição é muito alta. Note também que é possível criar o sistema de arquivos Swap em um arquivo ao invés de uma partição (veja Criando um sistema de arquivos Swap em um arquivo, Section 5.4.2).


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

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

mkswap /dev/hda?

Novamente veja Identificação de discos e partições em sistemas Linux, Section 5.8 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/hda 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.

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

Observações:

Os Kernels do GNU/Linux 2.0.xx e anteriores somente suportam partições Swap de até 128MB. Caso precise de mais que isso, crie mais partições Swap ou atualize seu sistema para trabalhar com o kernel 2.2.xx

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

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


5.4.2 Criando um sistema de arquivos Swap em um arquivo

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

  1. Use o comando dd if=/dev/zero of=/tmp/troca bs=1024 count=16000 para criar um arquivo chamado troca vazio de 16Mb de tamanho em /tmp. Você pode 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. 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.4.3 Partição Swap ou Arquivo?

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


5.5 O sistema de Arquivos /proc

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

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

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

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.6 Formatando disquetes

As subseções seguintes explicarão maneiras de formatar seus disquetes para serem usados no GNU/Linux e DOS/Windows.


5.6.1 Formatando disquetes para serem usados no Linux

Para formatar disquetes para serem usados no GNU/Linux use o comando:

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

Em alguns sistemas você deve usar mke2fs no lugar de mkfs.ext2. A opção -c faz com que o mkfs.ext2 procure por blocos danificados no disquete e /dev/fd0 especifica a primeira unidade de disquetes para ser formatada (equivalente a A: no DOS). Mude para /dev/fd1 para formatar um disquete da segunda unidade.

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

Exemplo: mkfs.ext2 -c /dev/fd0


5.6.2 Formatando disquetes compatíveis com o DOS/Windows

A formatação de disquetes DOS no GNU/Linux é feita usando o comando superformat que é geralmente incluído no pacote mtools. O superformat formata (cria um sistema de arquivos) um disquete para ser usado no DOS e também possui opções avançadas para a manipulação da unidade, formatação de intervalos de cilindros específicos, formatação de discos em alta capacidade e verificação do disquete.

superformat [opções] [dispositivo]

dispositivo
Unidade de disquete que será formatada. Normalmente /dev/fd0 ou /dev/fd1 especificando respectivamente a primeira e segunda unidade de disquetes.
opções
-v [num]
Especifica o nível de detalhes que serão exibidos durante a formatação do disquete. O nível 1 especifica um ponto mostrado na tela para cada trilha formatada. Veja a página de manual do superformat para detalhes.
-superverify
Verifica primeiro se a trilha pode ser lida antes de formata-la. Este é o padrão.
--dosverify, -B
Verifica o disquete usando o utilitário mbadblocks. Usando esta opção, as trilhas defeituosas encontradas serão automaticamente marcadas para não serem utilizadas.
--verify_later, -V
Verifica todo o disquete no final da formatação.
--noverify, -f
Não faz verificação de leitura.
-b [trilha]
Especifica a trilha inicial que será formatada. O padrão é 0.
-e [trilha]
Especifica a trilha final que será formatada.

Na primeira vez que o superformat é executado, ele verifica a velocidade de rotação da unidade e a comunicação com a placa controladora, pois os discos de alta densidade são sensíveis a rotação da unidade. Após o teste inicial ele recomendará adicionar uma linha no arquivo /etc/driveprm como forma de evitar que este teste seja sempre executado. OBS: Esta linha é calculada de acordo com a rotação de usa unidade de disquetes, transferência de dados e comunicação com a placa controladora de disquete. Desta forma ela varia de computador para computador Note que não é necessário montar a unidade de disquetes para formata-la.

Segue abaixo exemplos de como formatar seus disquetes com o superformat:


5.6.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) ou DOS (FAT12), permite selecionar a capacidade da unidade de disquetes e formatação rápida do disco.


5.7 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, Section 5.9.

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 DOS):


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

No GNU/Linux, os dispositivos existentes em seu computador (como discos rígidos, 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/hda1
     |    | ||
     |    | ||_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 (hd=ide, sd=SCSI, xt=XT).
     |
     |_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 hdb, em meu micro, por exemplo, a unidade de CD-ROM está localizada em /dev/hdg (Primeiro disco - quarta controladora IDE).

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


5.9 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:

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, Section 5.9.1).

Exemplo de Montagem:


5.9.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    Opcoes           dump ordem
     /dev/hda1           /                 ext2    defaults           0    1
     /dev/hda2           /boot             ext2    defaults           0    2
     /dev/hda3           /dos              msdos   defaults,noauto,rw 0    0
     /dev/hdg            /cdrom            iso9660 defaults,noauto    0    0

Onde:

Sistema de Arquivos
Partição que deseja montar.
Ponto de montagem
Diretório do GNU/Linux onde a partição montada será acessada.
Tipo
Tipo de sistema de arquivos usado na partição que será montada. Para partições GNU/Linux use ext2, para partições DOS (sem nomes extensos de arquivos) use msdos, para partições Win 95 (com suporte a nomes extensos de arquivos) use vfat, para unidades de CD-ROM use iso9660.
Opções
Especifica as opções usadas com o sistema de arquivos:
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.10 Desmontando uma partição de disco

Para desmontar um sistema de arquivos montado com o comando umount, use o comando umount. Você deve ter permissões de root para desmontar uma partição.

umount [dispositivo/ponto de montagem]

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

Observação: O comando umount executa o sync automaticamente no momento da desmontagem para garantir que todos os dados ainda não gravados serão salvos.


[ previous ] [ Contents ] [ 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 ] [ next ]

Guia Foca GNU/Linux

Versão 5.20 - Sunday, 03 de November de 2002
Gleydson Mazioli da Silva gleydson@cipsga.org.br