3.5. Organização de disco

A menor unidade organizacional que o FreeBSD utiliza para definir os arquivos é o nome de arquivo. Nome de arquivos são ``case-sensitive'', ou seja fazem distinção entre maiúsculas e minúscilas, o que significa que readme.txt e README.TXT são dois arquivos distintos. FreeBSD não utiliza a extensão do arquivo (.txt) para determinar se o arquivo é um programa ou um documento, ou ainda qualquer outro tipo de dado.

Arquivos são armazenados em diretórios. Um diretório pode não conter arquivo algum, ou pode conter centenas de arquivos. Um diretório pode ainda conter outros diretórios, permitindo que você construa hierarquias inteiras de diretórios, uns dentro dos outros. Isso torna a organização de seus dados muito mais fácil.

Arquivos e diretórios são identificados por seu nome, seguido por uma barra dianteira, /, seguido de outros nomes de diretórios, conforme necessário. Se você tem o diretório foo, e dentro dele o diretório bar, que por sua vez contém o arquivo readme.txt, então o nome completo, ou o path para este arquivo é foo/bar/readme.txt.

Diretórios e arquivos são armazenados em um sistema de arquivos. Cada sistema de arquivos contém exatamente um diretório de nível hierárquico interior, chamado de diretório raíz para o sistema de arquivos. Este diretório raíz pode conter outros diretórios.

Certamente isso tudo é similar à qualquer outro sistema operacional que você já usou. Existem algumas diferenças básicas; por exemplo, DOS usa a barra invertida, \, para separar qualquer arquivo ou nome de diretório, enquanto o Mac OS® utiliza o :.

O FreeBSD não utiliza letras de dispositivos ou qualquer outro tipo de nome para os dispositivos do sistema de arquivos. Você jamais escreveria c:/foo/bar/readme.txt no FreeBSD.

Ao invés disso, um sistema de arquivo é definido como sistema de arquivos raíz. O diretório raíz do sistema de arquivo raíz é o /. Todo outro sistema de arquivos é montado (mounted) sob este sistema de arquivos. Não importa quantos discos existam no seu sistema FreeBSD, cada diretório é apresentado como parte do disco.

Suponha que você tenha três sistemas de arquivos, chamados A, B, e C. Cada sistema de arquivos tem seu próprio diretório raíz, que contém outros dois diretórios chamados A1, A2 (e da mesma forma B1, B2 e C1, C2).

Assuma A como sistema de arquivos raíz. Se você usou o comando ls para visualizar o conteúdo deste diretórios, você veria dois subdiretórios, A1 e A2. A árvore de diretórios ficaria assim:

Todo sistema de arquivos deve ser montado em um diretório disposto em outro sistema de arquivos. Então, suponha que você tenha montado o sistema de arquivos B no diretório A1. O diretório raíz do B substitui A1, e os diretórios em B se tornam apropriadamente disponíveis:

Quaisquer arquivos que estejam nos diretórios B1 ou B2 podem ser acessados com o path /A1/B1 ou /A1/B2 conforme necessário. Qualquer arquivo que estivesse no /A1 foi temporariamente escondido. Eles reaparecerão se B for desmontado de A.

Se B foi montado em A2 então o diagrama será parecido com:

e os paths seriam /A2/B1 e /A2/B2 respectivamente.

Os sistemas de arquivos podem ser montados em sobreposição à outros. Prosseguindo com o último exemplo, o sistema de arquivo C poderia ser montado sobre o diretório B1 no sistema de arquivos B, levando ao seguinte arranjo:

Ou C poderia ser montado diretamente no sistema de arquivos A, sob o diretório A1:

Se você tem familiaridade com o DOS, a teoria é parecida, mas não idêntica, ao comando join.

Normalmente isso não é algo com que você tenha que se preocupar. Tipicamente basta criar os sistemas de arquivos ao instalar o FreeBSD e decidir onde monta-los, e depois nunca mais modifica-los, a não ser que você adicione um novo disco.

É completamente possível ter um sistema de arquivos raíz, e não criar mais nenhum. Existem alguns problemas com esta abordagem e uma grande desvantagem.

Benefícios de sistemas de arquivos múltiplos

Benefícios de um único sistema de arquivos

Sistemas de arquivos são contidos em partições. Isso não significa a mesma coisa do que a forma de utilização do termo partição anteriormente neste capítulo, por causa da herança UNIX® do FreeBSD. Cada partição é identificada com uma letra que varia de a à h. Cada partição possui um sistema de arquivos, o que significa que sistemas de arquivos normalmente são identificados ou por seu ponto de montagem na hierarquia do sistema de arquivos, ou pela letra disposta no nome de cada partição.

O FreeBSD ainda usa espaço de disco para o ``espaço de troca'', ou swap. Swap oferece características de memória virtual ao FreeBSD. Isso permite que seu computador se comporte como se tivesse mais memória disponível do que na realidade tem. Quando o FreeBSD excede a memória disponível ele move alguns trechos de dados que não estão sendo utilizados para o espaço de troca, a swap, e move esses dados de volta pra memória (descarregando alguma outra coisa para liberar recursos) quando necessário.

Algumas partições mantém algumas convenções associadas.

Partição Convenção
a Normalmente contém o sistema de arquivos raíz
b Normalmente contém a partição de swap (troca)
c Normalmente tem o mesmo tamanho da partição inclusa. Isso permite que alguns utilitários que precisam trabalhar na partição toda (por exemplo, um identificador de blocos defeituosos) funcionem corretamenta na partição c. Você não vai criar um sistema de arquivos de verdade nesta partição.
d A partição d costumava ter um significado especial associado com ela, contudo agora ele desfez. Hoje em dia algumas ferramentas podem continuar se comportando de forma estranha se indicarmos que ele trabalhe na partição d, de forma que o sysinstall não cria mais esta partição.

Cada partição que contém um sistema de arquivos é armazenada em um tipo especial de partição que o FreeBSD chama de slice. Este termo é utilizado pelo FreeBSD para fazer menção ao que, mais uma fez, costumava ser chamado de partição, e isso se deve à base UNIX por trás do sistema FreeBSD. Estas partições (``slices'') são numeradas, iniciando do 1, até o 4.

Número de partições seguem o nome do dispositivo adicionado de um prefixo com o caractér s, começando do 1. Portanto ``da0s1'' é a primeira slice de um disco, mas é possível que existam partições lógicas dentro de cada partição física do tipo apropriado. Estas partições extendidas são numeradas à partir do 5, de forma que ``ad0s5'' seja a primeira partição extendida do primeiro disco IDE. Estes dispositivos são utilizados por sistemas de arquivos que ocupam esse tipo de partição.

Partições, dispositivos físicos, ``perigosamente dedicados'' e outros dispositivos contém partições que costumam ser representadas como letras, começando de a até h. Estas letras são atribuídas ao nome dos dispositivos, de forma que ``da0a'' indique a partição no primeiro dispositivo, que na realidade é ``perigosamente dedicado''. ``ad1s3e'' é a quinta partição na primeira slice do segundo dispositivo de disco IDE.

Finalmente, cada disco no sistema esta identificado. Um nome de disco começa com um código que indica o tipo do disco em questão, e em seguida um número, que indica que disco é esse. Diferente das partições, a numeração dos discos inicia em 0. Informações usuais que você encontrará listados em Tabela 3-1.

Ao se referir a uma partição, o FreeBSD requer que você nomeie cada slice e disco que contenha a partição em questão, e que ao se referir à slice você também identifique o nome do disco. Faça isso listado o nome do disco, s, o número da slice, e em seguida a letra da partição. Exemplos são apresentados em Exemplo 3-1.

Exemplo 3-2 apresenta o modelo conceitual das disposições de disco, o que pode ajudar a tornar as coisas mais claras.

Para instalar o FreeBSD, primeiro você deve configurar os slices de disco, e depois criar as partições em cada slice destinada ao FreeBSD, e criar um sistema de arquivo (ou swap) em cada partição, e decidir onde o sistema de arquivos será montado.

Tabela 3-1. Códigos de Dispositivos de Disco

Código Significado
ad disco ATAPI (IDE)
da disco SCSI de acesso direto
acd CDROM ATAPI (IDE)
cd CDROM SCSI
fd Disquete

Exemplo 3-1. Modelo de disco, partição e nomes

Nome Significado
ad0s1a Primeira partição (a) na primeira fatia de disco (slice - s1) no primeiro disco IDE (ad0).
da1s2e Quinta partição (e) na segunda fatia de disco (slice - s2) no segundo disco SCSI (da1).

Exemplo 3-2. Modelo conceitual de um disco

Esse diagrama apresenta a abordagem do FreeBSD para o primeiro disco IDE ligado ao sistema. Assuma que o disco tem tamanho de 4 GB e contém duas partições de 2 GB (partições DOS). A primeira slice contém um disco DOS, o C:, e a segunda slice contém a instalação do FreeBSD. Esta instalação FreeBSD de exemplo tem três partições, e uma swap.

As três partições terão um sistema de arquivos cada. A partição a será utilizada pelo sistema de arquivos raíz, e será utilizada pela hierarquia de diretório /var, e f pela hierarquia de diretório /usr.

Este, e outros documentos, podem ser obtidos em ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Para perguntas sobre FreeBSD, leia a documentação antes de contatar <questions@FreeBSD.org>.
Para perguntas sobre esta documentação, envie e-mail para <doc@FreeBSD.org>.