HDs, parte 4: Formatação e sistemas de arquivo

HDs, parte 4: Formatação e sistemas de arquivo


A forma como a controladora vê os dados armazenados nos discos magnéticos pode ser bem diferente da forma como vê o sistema operacional. Enquanto a controladora enxerga as trilhas, setores e cilindros e se esforça para localizá-las nos discos magnéticos usando as marcações servo, o sistema operacional enxerga apenas uma longa lista de endereços, chamados de clusters ou blocos. Quando ele precisa de um determinado arquivo, ele não se preocupa em tentar descobrir em qual trilha e setor ele está armazenado. Ele apenas envia o endereço do bloco que deve ser lido e a controladora se encarrega do restante.

O fato da controladora “esconder” as informações sobre a organização interna dos discos, é o que faz com que os sistemas operacionais sejam compatíveis com todos os HDs do mercado, sem que seja necessário instalar drivers completos para cada um. Quando acontece de uma versão antiga do Windows, ou de alguma distribuição Linux não detectar seu HD durante a instalação, quase sempre o problema é causado pela falta de drivers para a interface IDE ou a controladora SATA do chipset da placa mãe, e não para o HD em si. A primeira versão do Windows XP, por exemplo, não oferecia suporte nativo à maioria das controladoras SATA, de forma que você precisava fornecer um disquete com drivers durante a instalação.

Formatação física

Originalmente, os discos magnéticos do HD são um terreno inexplorado, uma mata virgem sem qualquer organização. Para que os dados possam ser armazenados e lidos de forma organizada, é necessário que o HD seja previamente formatado.

Em primeiro lugar, temos a formatação física, onde os discos são divididos em trilhas, setores e cilindro e são gravadas as marcações servo, que permitem que a placa lógica posicione corretamente as cabeças de leitura.

Nos HDs atuais, a formatação física é feita em fábrica, durante a fabricação dos discos. O processo envolve o uso de máquinas especiais e, apenas para garantir, restrições são adicionadas no firmware do drive, para que a placa lógica seja realmente impedida de fazer qualquer modificação nas áreas reservadas. Graças a isso, é impossível reformatar fisicamente um drive atual, independentemente do software usado.

No caso dos drives “pré-ATA”, como os antigos ST-506 e ST-412 a história era diferente. Eles precisavam ser periodicamente reformatados através do setup, pois quando lida pela cabeça de leitura, a mídia magnética dos discos esquentava e se expandia, esfriando e contraindo-se logo em seguida. Esta expansão e contração da superfície do disco, acabava por alterar a posição das trilhas, causando desalinhamento e dificultando a leitura dos dados pela cabeça magnética. Era necessária então uma nova formatação física, para que as trilhas, setores e cilindros, voltassem às suas posições iniciais.

No caso dos discos atuais, este processo não é mais necessário, pois as mídias são muito mais confiáveis e a placa controladora pode compensar eventuais desvios rapidamente, simplesmente calibrando o movimento do braço de leitura.

Formatação lógica

Em seguida, temos a formatação lógica, que adiciona as estruturas utilizadas pelo sistema operacional. Ao contrário da formatação física, ela é feita via software e pode ser refeita quantas vezes você quiser. O único problema é que, ao reformatar o HD, você perde o acesso aos dados armazenados, embora ainda seja possível recuperá-los usando as ferramentas apropriadas, como veremos mais adiante.

Chegamos então ao sistema de arquivos, que pode ser definido como o conjunto de estruturas lógicas que permitem ao sistema operacional organizar e otimizar o acesso ao HD. Conforme cresce a capacidade dos discos e aumenta o volume de arquivos e acessos, esta tarefa torna-se mais e mais complicada, exigindo o uso de sistemas de arquivos cada vez mais complexos e robustos.

Existem diversos sistemas de arquivos diferentes, que vão desde sistemas simples como o FAT16, que utilizamos em cartões de memória, até sistemas como o NTFS, EXT3 e ReiserFS, que incorporam recursos muito mais avançados.

A formatação do HD é feita em duas etapas. A primeira é o particionamento, onde você define em quantas partições o HD será dividido e o tamanho de cada uma. Mesmo que você não pretenda instalar dois sistemas em dual boot, é sempre interessante dividir o HD em duas partições, uma menor, para o sistema operacional, e outra maior, englobando o restante do disco para armazenar seus arquivos. Com isso, você pode reinstalar o sistema quantas vezes precisar, sem o risco de perder junto todos os seus arquivos.

Podemos ter um total de 4 partições primárias ou três partições primárias e mais uma partição estendida, que pode englobar até 255 partições lógicas. É justamente a partição lógica que permite a nós dividir o HD em mais de 4 partições.

Esta limitação das 4 partições primárias é uma limitação que existe desde o primeiro PC, lançado em 1981. Os projetistas que escreveram o BIOS para ele precisavam economizar memória e chegaram à conclusão que 2 bits (4 combinações) para o endereço das partições seriam suficientes, pois na época os HDs mais vendidos tinham apenas 5 MB e só existia um sistema operacional para PCs (o MS-DOS), de forma que era raro alguém precisar criar mais de uma partição. As coisas mudaram “um pouco” de lá pra cá, mas infelizmente esta limitação continua até os dias de hoje ;).

Para amenizar o problema, foi adicionada a possibilidade de criar partições lógicas. Ao invés de criar 4 partições primárias e ficar sem endereços para criar novas partições, você cria uma “partição estendida”, que é uma espécie de container, que permite criar mais partições. A partição estendida contém uma área extra de endereçamento, que permite endereçar as 255 partições lógicas. É possível criar até 4 partições estendidas, de forma que (em teoria) é possível dividir o HD em até 1020 partições.

Digamos que você queira particionar um HD de 160 GB para instalar Windows e Linux em dual boot, deixando uma partição de 20 GB para o Windows, uma partição de 20 GB para o Linux, uma partição de 1 GB para swap (do Linux) e uma partição maior, englobando os 119 GB restantes para guardar seus arquivos.

Como precisamos de 4 partições no total, seria possível criar diretamente 4 partições primárias, mas neste caso você ficaria sem endereços e perderia a possibilidade de criar novas partições mais tarde, caso resolvesse testar uma outra distribuição, por exemplo.

Ao invés disso, você poderia começar criando a partição de 20 GB do Windows como primária (é sempre recomendável instalar o Windows na primeira partição do HD e em uma partição primária, devido às particularidades do sistema) e em seguida criar uma partição estendida, englobando todo o resto do espaço, criando as demais partições como partições lógicas dentro dela.

Este é um screenshot do Gparted, que mostra um HD dividido em várias partições. Veja que a quarta partição está marcada como “extended”, ou seja, como partição extendida. Ela não armazena dados, nem ocupa um espaço considerável no disco, mas permitiu que fossem criadas as partições de 5 a 7. Veja que existe também um trecho marcado como “não alocada”, ou seja, espaço vago onde é possível criar mais uma partição:
hd_html_m3ceb2cfc
Do ponto de vista do sistema operacional, cada partição é uma unidade separada, quase como se houvessem dois ou três discos rígidos instalados na máquina. Cada partição possui seu próprio diretório raiz e sua própria FAT. As informações sobre o número de partições, sua localização no disco, e o espaço ocupado por cada uma, são armazenadas na tabela de partição, que compartilha o primeiro setor do disco com o setor de boot.

Você pode particionar o HD usando o próprio assistente mostrado durante a instalação do Windows XP ou Vista, dos particionadores mostrados durante as instalação de várias distribuições Linux e também de programas avulsos, como o Partition Magic (no Windows) ou o Gparted (no Linux), que você pode usar dando boot através de uma distribuição live-CD que o traga pré-instalado.

Tanto o PartitionMagic são particionadores gráficos fáceis de usar. O espaço disponível é mostrado na forma de uma barra na parte superior da tela, que vai sendo dividida em retângulos menores, conforme vai criando as partições. A cor de cada partição representa o sistema de arquivos usado e os espaços não particionados do disco aparecem em cinza. Além de criar e deletar partições, os dois programas também oferecem opções adicionais, como redimensionar partições (sem perder os dados), muito útil quando você já tem um sistema operacional instalado e precisa liberar espaço para instalar um segundo sistema em dual boot.

Este é um screenshot do PartitionMagic. Veja que a interface é muito similar à do Gparted, que mostrei a pouco:
hd_html_1fc3aa64
Em seguida, temos a formatação propriamente dita, onde as estruturas do sistema de arquivos são finalmente gravadas na partição. Na maioria dos casos, o próprio programa de particionamento se encarrega de formatar a partição usando o sistema de arquivos escolhido, mas em outros temos dois programas diferentes, como no caso do fdisk e do format, usados no Windows 98.

No mundo Windows, temos apenas três sistemas de arquivos: FAT16, FAT32 e NTFS. O FAT16 é o mais antigo, usado desde os tempos do MS-DOS, enquanto o NTFS é o mais complexo e atual. Apesar disso, temos uma variedade muito grande de sistemas de arquivos diferentes no Linux (e outros sistemas Unix), que incluem o EXT2, EXT3, ReiserFS, XFS, JFS e muitos outros. Para quem usa apenas o Windows, estes sistemas podem parecer exóticos, mas eles são velhos conhecidos de quem trabalha com servidores, já que neles o Linux é que é o sistema mais popular.

Vamos começar estudando as estruturas do sistema FAT. Por ser o sistema mais antigo ele é também o mais simples e mais fácil de entender.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X