• Olá Visitante, se gosta do forum e pretende contribuir com um donativo para auxiliar nos encargos financeiros inerentes ao alojamento desta plataforma, pode encontrar mais informações sobre os várias formas disponíveis para o fazer no seguinte tópico: leia mais... O seu contributo é importante! Obrigado.

Os limites de capacidade para os HDs

vwfilipe™

GF Ouro
Membro Inactivo
Entrou
Set 23, 2006
Mensagens
6,078
Gostos Recebidos
0
Ao longo da evolução dos micros PCs, existiram vários limites de capacidade dos HDs, causados por limitações nos endereços usados pelos BIOS. Instalar um HD IDE de grande capacidade num micro antigo pode ser bastante frustrante, com o BIOS da placa reconhecendo apenas os primeiros 504 MB ou os primeiros 7.88 GB do HD e o sistema operacional se recusando a carregar depois de instalado.

Estas limitações surgiram devido à falta de visão por parte dos projetistas que desenvolveram o padrão IDE e as instruções INT 13h do BIOS, as responsáveis pelo acesso ao HD.

Elas foram originalmente desenvolvidas para serem usadas pelo PC AT, mas acabaram sendo perpetuadas até os dias de hoje. Naquela época, HDs com mais de 504 MB pareciam uma realidade muito distante.

Como vimos, ao formatar o HD, ele é dividido em clusters, que são a menor parcela do disco endereçada pelo sistema de arquivos. Cada cluster pode ter de 512 bytes a 32 KB, de acordo com o sistema de arquivos e a opção usada durante a formatação.

Entretanto, num nível mais baixo, os setores do HD precisam ser endereçados diretamente. Cada setor possui apenas 512 bytes, de forma que é necessária uma grande quantidade de endereços para endereçá-los individualmente.

O padrão IDE reserva 16 bits para o endereçamento dos cilindros (65,536 combinações), 4 bits para o endereçamento das cabeças de leitura (16 combinações) e 8 bits para os setores dentro de cada cilindro (256 combinações), o que permite endereçar um total de 256 milhões de setores. Como cada setor tem sempre 512 bytes, teríamos, a princípio, suporte a HDs de até 128 GB.

Entretanto, o BIOS possui outras limitações para o acesso a discos (serviço chamado de INT 13h), reservando 10 bits para o endereçamento dos cilindros (1,024 combinações), 8 bits para as cabeças de leitura (256) e apenas 6 bits para os setores (63 combinações, pois o endereço 0 é reservado), o que permite endereçar 1.61 milhões de setores e consequentemente discos de até 7.88 GB.
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Ao longo da evolução dos micros PCs, existiram vários limites de capacidade dos HDs, causados por limitações nos endereços usados pelos BIOS. Instalar um HD IDE de grande capacidade num micro antigo pode ser bastante frustrante, com o BIOS da placa reconhecendo apenas os primeiros 504 MB ou os primeiros 7.88 GB do HD e o sistema operacional se recusando a carregar depois de instalado.

Estas limitações surgiram devido à falta de visão por parte dos projetistas que desenvolveram o padrão IDE e as instruções INT 13h do BIOS, as responsáveis pelo acesso ao HD.

Elas foram originalmente desenvolvidas para serem usadas pelo PC AT, mas acabaram sendo perpetuadas até os dias de hoje. Naquela época, HDs com mais de 504 MB pareciam uma realidade muito distante.

Como vimos, ao formatar o HD, ele é dividido em clusters, que são a menor parcela do disco endereçada pelo sistema de arquivos. Cada cluster pode ter de 512 bytes a 32 KB, de acordo com o sistema de arquivos e a opção usada durante a formatação.

Entretanto, num nível mais baixo, os setores do HD precisam ser endereçados diretamente. Cada setor possui apenas 512 bytes, de forma que é necessária uma grande quantidade de endereços para endereçá-los individualmente.

O padrão IDE reserva 16 bits para o endereçamento dos cilindros (65,536 combinações), 4 bits para o endereçamento das cabeças de leitura (16 combinações) e 8 bits para os setores dentro de cada cilindro (256 combinações), o que permite endereçar um total de 256 milhões de setores. Como cada setor tem sempre 512 bytes, teríamos, a princípio, suporte a HDs de até 128 GB.

Entretanto, o BIOS possui outras limitações para o acesso a discos (serviço chamado de INT 13h), reservando 10 bits para o endereçamento dos cilindros (1,024 combinações), 8 bits para as cabeças de leitura (256) e apenas 6 bits para os setores (63 combinações, pois o endereço 0 é reservado), o que permite endereçar 1.61 milhões de setores e consequentemente discos de até 7.88 GB.

Como é preciso usar tanto a interface IDE quanto as instruções INT 13h do BIOS, acabamos por juntar suas limitações. O padrão IDE reserva 16 bits para o endereçamento dos cilindros, porém o BIOS só utiliza 10. O BIOS por sua vez reserva 8 bits para o endereçamento das cabeças de leitura, porém só pode utilizar 4 por limitações da interface. A capacidade de endereçamento então acaba sendo nivelada por baixo, combinando as limitações de ambos os padrões, permitindo endereçar discos de no máximo 504 MB, limite para a maioria dos micros 486 ou inferiores. Este método de endereçamento é chamado de Normal ou CHS (cilindro, cabeça de leitura e setor). Veja a representação na tabela:
img-31bb59e2.png
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Esta configuração é apenas lógica, o modo como o BIOS enxerga o disco rígido, não tem necessariamente relação com a organização real do HD. A placa lógica de um HD de 504 MB pode dizer que tem 16 cabeças leitura e 63 setores por cilindro de forma a utilizar todos os endereços disponibilizados pelo BIOS, mas internamente endereçar os setores de forma diferente. Na prática não faz muita diferença, desde que cada setor receba uma identificação única.

Na época do 286, onde eram usados HDs de no máximo 20 ou 40 MB, este limite não incomodava ninguém; mas a partir do momento em que passamos a ter HDs de 800 MB ou mais, alguma coisa precisava ser feita.

A primeira solução foi o Extended CHS ou modo Large. Este padrão continua com as mesmas limitações da interface IDE e do INT 13, mas usa um pequeno truque para burlar suas limitações.

O BIOS possui mais endereços para as cabeças de leitura (256 contra 16), porém, a interface IDE possui mais endereços para os cilindros (65.536 contra 1024). Usando o modo Large passamos a utilizar um tradutor, um pequeno programa integrado ao BIOS encarregado de converter endereços. A conversão é feita usando um simples fator multiplicativo: a interface IDE permite mais endereços para o cilindro, mas ao mesmo tempo permite menos endereços para a cabeça de leitura, podemos então aplicar a tradução de endereços dividindo o número de endereços do cilindro e multiplicando os endereços para cabeças de leitura pelo mesmo número. Podem ser usados os números 2, 4, 8 e 16.

Se por exemplo, instalássemos um drive com uma geometria lógica de 3,068 cilindros, 16 cabeças e 63 setores, usando o fator 4 passaríamos a ter 3.086 / 4 = 767 cilindros, 16 x 4 = 64 cabeças e 63 setores, veja que agora temos endereços dentro dos limites do BIOS e por isso podemos utilizar os 1.5 GB do disco sem problemas:
img-0fc32a0c.png


O modo Large nunca foi muito utilizado, pois logo depois surgiu uma solução bem melhor para o problema, conhecida como modo LBA, contração de "Logical Block Addressing" ou endereçamento lógico de blocos.

A idéia é a seguinte: o padrão IDE reserva 16 bits para o endereçamento do cilindro, 4 bits para o endereçamento da cabeça de leitura e mais 8 bits para o setor, totalizando 28 bits de endereçamento. O modo LBA abandona o endereçamento CHS, com endereços independentes para cilindros, cabeças e setores, passando a adotar um endereço único. Os setores passam então a receber endereços seqüenciais, 0, 1, 2, 3, 4, etc. assim como os clusters no sistema FAT. Os 28 bits de endereçamento permitem então 228 milhões de endereços, o que corresponde a HDs de até 128 GB (137 GB na notação decimal).

Claro que, para usar o LBA, é preciso que o disco rígido suporte este modo de endereçamento. Felizmente, praticamente todos os HDs acima de 504 MB e todos os HDs atuais suportam o LBA. Na verdade, o modo Large só deve ser usado nos raríssimos casos de HDs com mais de 504 MB, que por ventura não suportem o LBA.

Veja que para endereçar os 128 GB permitidos pelo LBA, é preciso abandonar o uso das instruções INT 13h, o que significa desenvolver novas instruções de acesso à disco para o BIOS. A primeira geração de placas a utilizar o modo LBA (fabricadas até 1999) ainda estavam presas às instruções INT 13h e por isso continuavam limitadas a HDs de 7.88 GB (8.4 GB decimais). Em muitas das placas fabricadas entre 1998 e 1999 é possível solucionar o problema através de um upgrade de BIOS. O maior problema no caso é encontrar os arquivos de atualização, já que os fabricantes não costumam dar suporte a placas tão antigas.

As placas fabricadas a partir daí, incluem as "INT 13h Extensions", ou seja, extensões para o conjunto original, que permitem bipassar as limitações e acessar HDs de até 128 GB, como previsto pelo padrão IDE.

Naturalmente, não demorou para que este limite também se tornasse um problema. A solução definitiva veio em 2001, juntamente com a introdução das interfaces ATA/100 (ATA-6), onde foi incluída uma extensão para os endereços disponíveis. Passaram a ser usados 48 bits para o endereçamento, ao invés dos 28 anteriores, resultando em uma capacidade de endereçamento 1.048.576 vezes maior. A extensão foi rapidamente adotada pelos fabricantes, de forma que todas as placas fabricadas a partir do final de 2001 já são capazes de endereçar HDs IDE de grande capacidade normalmente.

Para os casos de placas antigas que não possuam upgrades de BIOS disponíveis, existem um conjunto de soluções criativas que podem ser usadas. Normalmente, o valor destas placas é muito baixo, de forma que normalmente você não vai querer perder muito tempo com elas. Mesmo assim, é interessante conhecer as possibilidades, mesmo que apenas para referência histórica.

A primeira é instalar um DDO (Dynamic Drive Overlay), um software tradutor, instalado no primeiro setor do HD, que passa a ser carregado no início do boot, antes do carregamento do sistema operacional.

O DDO bipassa as instruções do BIOS, permitindo superar suas limitações. A Ontrack comercializa o "Disk Go!", que funciona com HDs de qualquer fabricante. O problema é que ele é um programa comercial, enquanto as versões dos fabricantes são gratuitas.

Usar um driver de Overlay traz várias desvantagens: eles não são compatíveis com muitos programas de diagnóstico, não permitem o uso dos drivers de Bus Mastering, o que prejudica a performance do HD e do sistema como um todo. Também temos problemas com muitos boot managers, dificultando a instalação de mais de um sistema operacional no mesmo HD.

Uma segunda solução é simplesmente desativar as portas IDE da placa mãe e passar a usar uma interface IDE externa. Elas permitem também instalar portas ATA/100 ou ATA/133 em placas que contam apenas com interfaces ATA/33, que limitam o desempenho dos HDs atuais. A grande maioria também oferece a possibilidade de usar RAID:
img-a2be0128.jpg
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Quando lançadas, estas placas eram relativamente caras, custando por volta de US$ 50 no exterior. Mas, como todo equipamento antigo, você pode achá-las hoje em dia por preços muito baixos nos sites de leilão.

Note que estas limitações aplicam-se apenas a HDs IDE. Elas não existem no caso de HDs SCSI e SATA, que utilizam padrões diferentes de endereçamento.

Mais uma limitação de capacidade, esta um pouco mais rara, é a limitação de 32 GB que atinge algumas placas mãe com BIOS da Award, fabricadas entre 1998 e 1999. Estas placas possuem um bug na implementação do LBA, que limita os endereços a 65.535 cilindros, 16 cabeças e 63 setores, o que equivale a 31.5 GB (33.8 GB decimais).

Como estas placas bugadas representaram um volume considerável das placas vendidas durante este período, muitos HDs IDE suportam a opção "Cap Limit", que é acionada ao colocar o jumper traseiro em uma posição especificada:
img-abd68f07.jpg


Ao ativar a opção, a placa lógica reporta ao BIOS que o HD tem apenas 31.5 GB. Você perde o acesso ao restante da capacidade do disco, mas pelo menos ele passa a ser acessado.
 

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
Concluindo, além das limitações por parte do BIOS, temos ainda algumas limitações adicionais por parte dos sistemas operacionais.

O MS-DOS (todas as versões), além da primeira versão do Windows 95 e outros sistemas antigos ainda estão presos às instruções INT 13h originais, de forma que não são capazes de acessar HDs com mais de 7.88 GB mesmo que por ventura sejam instalados numa placa atual. Como eles também suportam apenas FAT16, você precisa dividir o HD em 4 partições de 2 GB cada. O Windows 95 OS/2 inclui um novo driver que permite o endereçamento de HDs com até 32 GB e também a possibilidade de usar partições formatadas em FAT32, removendo também o limite de 2 GB por partição.

A versão original do Windows XP não inclui suporte ao padrão LBA de 48 bits e por isso não é capaz de acessar HDs ATA com mais de 128 GB (137 GB decimais). Neste caso a limitação diz respeito ao sistema operacional e por isso ocorre mesmo ao usar uma placa mãe recente.

Este problema foi corrigido com o SP1, por isso basta atualizar o sistema, ou já instalar diretamente usando uma mídia de instalação com o SP2. No caso do Windows 2000, o problema foi corrigido a partir do SP3.

No caso do Linux, não existem limitações com relação ao sistema operacional, que é capaz de endereçar o HD corretamente independentemente do BIOS. Apesar disso, você pode ter problemas para iniciar o sistema em placas antigas, com a limitação dos 7.88 GB, já que se o BIOS não reconhece corretamente o HD, não consegue iniciar o carregamento do sistema.

A grande maioria das distribuições atuais utiliza o grub como gerenciador de boot. Se ao instalar, você receber o famoso erro 18 do grub durante o boot, significa que você está usando uma placa atingida pelo problema.

Nestes casos, a solução é reparticionar o HD, de forma que o sistema seja instalado em uma partição de no máximo 7.88 GB, colocada logo no início do disco. Como a partição está dentro do limite visto pelo BIOS, o sistema é carregado normalmente e, dentro do Linux, o HD passa a ser acessado diretamente, bipassando as limitações do BIOS.

Você passa então a ver o restante do disco normalmente e pode usar o restante do espaço para criar outras partições e guardar arquivos, o problema é apenas o boot.

Fonte :guiadohardware

cumpts
hell
 
Topo