3.6. Organização dos Discos
Anterior | Capítulo 3. Fundamentos do FreeBSD | Próxima

## 3.6. Organização dos Discos

A menor unidade de organização que o FreeBSD usa para encontrar arquivos é o nome do arquivo. Os nomes dos arquivos diferenciam maiúsculas de minúsculas, o que significa que `readme.txt` e `README.TXT` são dois arquivos distintos. O FreeBSD não usa a extensão de um arquivo para determinar se é um programa, documento ou alguma outra forma de dados.

Os arquivos são armazenados em diretórios. Um diretório pode não conter arquivos ou pode conter centenas deles. Um diretório também pode conter outros diretórios, permitindo uma hierarquia de diretórios entre si para organizar os dados.

Arquivos e diretórios são referenciados por meio de um nome, seguido por uma barra, `/`, seguido por qualquer outro nome de diretório que seja necessário. Por exemplo, se o diretório `foo` contiver um diretório `bar` que contenha o arquivo `readme.txt`, o nome completo ou caminho, para o arquivo é `foo/bar/readme.txt`. Observe que isso é diferente do Windows® que usa `\` para separar nomes de arquivos e diretórios. O FreeBSD não usa letras de unidades ou outros nomes de unidades no caminho. Por exemplo, não se deve digitar `c:\foo\bar\readme.txt` no FreeBSD.

Diretórios e arquivos são armazenados em um sistema de arquivos. Cada sistema de arquivos contém exatamente um diretório no nível superior, chamado de diretório raiz para esse sistema de arquivos. Este diretório raiz pode conter outros diretórios. Um sistema de arquivos é designado como sistema de arquivos raiz ou `/`. Todos os outros sistemas de arquivos são montados no sistema de arquivos raiz. Não importa quantos discos estejam no sistema FreeBSD, cada diretório parece fazer parte do mesmo disco.

Considere três sistemas de arquivos, chamados `A`, `B` e `C`. Cada sistema de arquivos tem um diretório raiz, que contém dois outros diretórios, chamados `A1`, `A2` (e da mesma forma `B1`, `B2` e `C1`, `C2`).

Chame `A` de sistema de arquivos raiz. Se ls(1) for usado para visualizar o conteúdo deste diretório, ele mostrará dois subdiretórios, `A1` e `A2`. A árvore de diretórios tem esta aparência:

Um sistema de arquivos deve ser montado em um diretório em outro sistema de arquivos. Ao montar o sistema de arquivos `B` no diretório `A1`, o diretório raiz de `B` substitui `A1` e os diretórios em `B` aparecem de acordo:

Todos os arquivos que estão nos diretórios `B1` ou `B2` podem ser alcançados com o caminho `/A1/B1` ou `/A1/B2`, conforme necessário. Todos os arquivos que estavam em `/A1` foram temporariamente ocultados. Eles reaparecerão se `B` for desmontado de `A`.

Se `B` tivesse sido montado em `A2`, o diagrama ficaria assim:

e os caminhos seriam `/A2/B1` e `/A2/B2` respectivamente.

Os sistemas de arquivos podem ser montados uns em cima dos outros. Continuando o último exemplo, o sistema de arquivos `C` pode ser montado no topo do diretório `B1` no sistema de arquivos `B`, levando a esta disposição:

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

É perfeitamente possível ter um sistema de arquivos raiz grande e não precisar criar nenhum outro. Existem algumas desvantagens nessa abordagem e uma vantagem.

Benefícios de vários sistemas de arquivos

- Sistemas de arquivos diferentes podem ter diferentes opções de montagem. Por exemplo, o sistema de arquivos raiz pode ser montado somente para leitura, impossibilitando que os usuários excluam ou editem inadvertidamente um arquivo crítico. Separar sistemas de arquivos graváveis ​​pelo usuário, como `/home`, de outros sistemas de arquivos permite que eles sejam montados como nosuid. Essa opção impede que os bits suid/guid dos executáveis ​​armazenados no sistema de arquivos entrem em vigor, possivelmente melhorando a segurança.

- O FreeBSD otimiza automaticamente o layout dos arquivos em um sistema de arquivos, dependendo de como o sistema de arquivos está sendo usado. Portanto, um sistema de arquivos que contém muitos arquivos pequenos que são gravados com freqüência terá uma otimização diferente para um que contenha menos arquivos maiores. Ao ter um sistema de arquivos maior, essa otimização é quebrada.

- Os sistemas de arquivos do FreeBSD são robustos se a energia for perdida. No entanto, uma perda de energia em um ponto crítico ainda pode danificar a estrutura do sistema de arquivos. Ao dividir dados em vários sistemas de arquivos, é mais provável que o sistema ainda inicialize, facilitando a restauração do backup conforme necessário.

Benefício de um sistema de arquivos único

- Os sistemas de arquivos são de tamanho fixo. Se você cria um sistema de arquivos quando instala o FreeBSD e dá a ele um tamanho específico, você pode descobrir mais tarde que precisa aumentar a partição. Isso não é facilmente realizado sem um backup, recriando o sistema de arquivos com o novo tamanho e, em seguida, restaurando os dados de backup.

  ### Importante:

  O FreeBSD possui o comando growfs(8), que torna possível aumentar o tamanho do sistema de arquivos enquanto montado, removendo essa limitação.

Os sistemas de arquivos estão contidos em partições. Isto não tem o mesmo significado que o uso comum do termo partição (por exemplo, a partição MS-DOS®), por causa da herança UNIX® do FreeBSD. Cada partição é identificada por uma letra de `a` até `h`. Cada partição pode conter apenas um sistema de arquivos, o que significa que os sistemas de arquivos geralmente são descritos por seu ponto de montagem típico na hierarquia do sistema de arquivos ou pela letra da partição em que estão contidos.

O FreeBSD também usa espaço em disco para espaço de swap para fornecer memória virtual. Isso permite que o seu computador se comporte como se tivesse muito mais memória do que realmente tem. Quando o FreeBSD fica sem memória, ele move alguns dos dados que não estão sendo usados ​​atualmente para o espaço de swap, e os move de volta (removendo alguma outra coisa) quando precisa.

Algumas partições possuem certas convenções associadas a elas.

Partição | Convenção
--- | ---
`a` | Normalmente contém o sistema de arquivos raiz.
`b` | Normalmente contém espaço de swap.
`c` | Normalmente o mesmo tamanho da slice que a envolve. Isso permite que os programas que precisem trabalhar na slice inteira, como um scanner de bloco defeituoso, trabalhem na partição `c`. Um sistema de arquivos normalmente não seria criado nessa partição.
`d` | A partição `d` costumava ter um significado especial associado a ela, mas isso foi descontinuado e `d` pode funcionar como qualquer partição normal.

Os discos no FreeBSD são divididos em slices, referidas no Windows® como partições, numeradas de 1 a 4. Estas são então divididas em partições, que contêm sistemas de arquivos, e são rotuladas usando letras.

Os números das slices seguem o nome do dispositivo, prefixado com um `s`, começando em 1. Então “da0s1” é a primeira slice na primeira unidade SCSI. Pode haver apenas quatro slices físicas em um disco, mas pode haver slices lógicas dentro de slices físicas do tipo apropriado. Essas slices estendidas são numeradas a partir de 5, então “ada0s5” é a primeira slice estendida no primeiro disco SATA. Esses dispositivos são usados ​​por sistemas de arquivos que esperam ocupar uma slice.

Slices, unidades físicas “perigosamente dedicadas” e outras unidades contêm partições , que são representadas como letras de `a` até `h`. Esta letra é adicionada ao nome do dispositivo, então “da0a” é a partição `a` na primeira unidade `da`, que é “perigosamente dedicada”. A “ada1s3e” é a quinta partição na terceira slice da segunda unidade de disco SATA.

Finalmente, cada disco no sistema é identificado. Um nome de disco começa com um código que indica o tipo de disco e, em seguida, um número, indicando qual é o disco. Ao contrário das slices, a numeração de discos começa em 0. Códigos usuais são listados em Tabela 3.3, “Nomes de dispositivos de disco”.

Ao se referir a uma partição, inclua o nome do disco, `s`, o número da slice, em seguida, a letra da partição. Exemplos são mostrados em Exemplo 3.12, “Exemplo de Nomes de Disco, Slice e Partição”.

Exemplo 3.13, “Modelo conceitual de um disco” mostra um modelo conceitual de um layout de disco.

Ao instalar o FreeBSD, configure as slices de disco, crie partições dentro da slice a ser usada para o FreeBSD, crie um sistema de arquivos ou espaço de swap em cada partição e decida onde cada sistema de arquivos será montado.

Tabela 3.3. Nomes de dispositivos de disco

Tipo de drive | Nome do drive
--- | ---
discos rígidos SATA e IDE | `ada` ou `ad`
Discos rígidos SCSI e dispositivos de armazenamento USB | `da`
drives de CD-ROM SATA e IDE | `cd` ou `acd`
Unidades SCSI CD-ROM | `cd`
Unidades de disquete | `fd`
Unidades de CD-ROM não-padrão variadas | `mcd` para CD-ROM Mitsumi e `scd` para dispositivos de CD-ROM Sony
Unidades de fita SCSI | `sa`
Unidades de fita IDE | `ast`
Drives RAID | Exemplos incluem `aacd` para Adaptec® AdvancedRAID, `mlxd` e `mlyd` para Mylex®, `amrd` para AMI MegaRAID®, `idad` para Compaq Smart RAID, `twed` para 3ware® RAID.

Exemplo 3.12. Exemplo de Nomes de Disco, Slice e Partição

Nome | Significado
--- | ---
`ada0s1a` | A primeira partição (`a`) na primeira slice (`s1`) no primeiro disco SATA (`ada0`).
`da1s2e` | A quinta partição (`e`) na segunda slice (`s2`) no segundo disco SCSI (`da1`).

Exemplo 3.13. Modelo conceitual de um disco

Este diagrama mostra a visão do FreeBSD do primeiro disco SATA conectado ao sistema. Suponha que o disco tenha 250 GB de tamanho e contenha uma slice de 80 GB e uma slice de 170 GB (partições MS-DOS®). A primeira slice contém um sistema de arquivos Windows® NTFS, `C:`, e a segunda fatia contém uma instalação do FreeBSD. Este exemplo de instalação do FreeBSD possui quatro partições de dados e uma partição swap.

Cada uma das quatro partições contém um sistema de arquivos. A partição `a` é usada para o sistema de arquivos raiz, `d` para `/var/`, `e` para `/tmp/` e `f` para `/usr/`. A letra de partição `c` refere-se à fatia inteira e, portanto, não é usada para partições comuns.

Anterior | Acima | Próxima
3.5. Estrutura de Diretórios | Principal | 3.7. Montando e Desmontando Sistemas de Arquivos

All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.