Particionamento de disco: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Linha 1:
= [[Www.pudim.com.br|Uma '''partição''' é uma festa muito grande]] <s>divisão do espaço de um [[disco rígido]] ([[SCSI]] ou [[ATA|SATA]]). Cada partição pode conter um [[sistema de ficheiros|sistema de arquivos]] diferente. Consequentemente, cada partição pode ser instalado um [[sistemas operacionais|Sistema Operacional]] sendo possível portanto a convivência de vários Sistemas Operacionais na mesma unidade de disco.</s> =
<s>Existem diferentes modelos de particionamento, sendo o tipo [[DOS]] o mais conhecido, usado nos computadores PC. Um tipo que começa a ser difundido é o [[GPT]] ([[GUID]] ''Partition Table''), usado em conjunto com o [[UEFI]] (''Unified Extensible Firmware Interface'' -- padrão criado pela [[Intel]] para substituir o [[BIOS]], atualmente mantido por Unified EFI, Inc.).</s>
 
=== <s>Geometria de disco</s> ===
Existem diferentes modelos de particionamento, sendo o tipo [[DOS]] o mais conhecido, usado nos computadores PC. Um tipo que começa a ser difundido é o [[GPT]] ([[GUID]] ''Partition Table''), usado em conjunto com o [[UEFI]] (''Unified Extensible Firmware Interface'' -- padrão criado pela [[Intel]] para substituir o [[BIOS]], atualmente mantido por Unified EFI, Inc.).
<s>Uma unidade de disco constitui-se de um ou mais pratos (discos) sobrepostos, cobertos por uma camada magnética. Existe uma cabeça de leitura-gravação para cada superfície. Cada superfície é dividida em anéis concêntricos (as trilhas) e uma trilha é dividida em setores, onde um setor tem, normalmente, 512 bytes.</s>
 
<s>As trilhas são numeradas de fora para dentro. Um conjunto de trilhas com o mesmo raio forma o</s>
== Geometria de disco ==
Uma unidade de disco constitui-se de um ou mais pratos (discos) sobrepostos, cobertos por uma camada magnética. Existe uma cabeça de leitura-gravação para cada superfície. Cada superfície é dividida em anéis concêntricos (as trilhas) e uma trilha é dividida em setores, onde um setor tem, normalmente, 512 bytes.
 
<s>cilindro. As cabeças de leitura-gravação são movimentadas conjuntamente, posicionando-se no mesmo cilindro.</s>
As trilhas são numeradas de fora para dentro. Um conjunto de trilhas com o mesmo raio forma o
 
<s>Essa geometria básica fornece um modelo para localização do setor, chamado CHS (''cylinder, head, sector''). O número do cilindro, juntamente com o número da cabeça, fornece a localização da trilha. Identificando-se a trilha, pode-se localizar um determinado setor. Esse esquema é tridimensional, sendo necessário conhecer sempre os três parâmetros para localização do setor.</s>
cilindro. As cabeças de leitura-gravação são movimentadas conjuntamente, posicionando-se no mesmo cilindro.
 
<s>O padrão LBA (''logical block address'') é mais simples. Os setores são identificados sequencialmente (linearmente), começando da trilha mais externa. Se houver mais de um prato, cada superfície é numerada (a partir de zero) -- o setor zero é o primeiro setor na trilha zero, cabeça (superfície) zero. Essa é uma identificação unidimensional. Cabe à controladora no disco transformar esse número lógico de setor com a sua localização física no disco (mapeando cilindro, cabeça e setor correspondente).</s>
Essa geometria básica fornece um modelo para localização do setor, chamado CHS (''cylinder, head, sector''). O número do cilindro, juntamente com o número da cabeça, fornece a localização da trilha. Identificando-se a trilha, pode-se localizar um determinado setor. Esse esquema é tridimensional, sendo necessário conhecer sempre os três parâmetros para localização do setor.
 
== <s>Partição DOS — MBR</s> ==
O padrão LBA (''logical block address'') é mais simples. Os setores são identificados sequencialmente (linearmente), começando da trilha mais externa. Se houver mais de um prato, cada superfície é numerada (a partir de zero) -- o setor zero é o primeiro setor na trilha zero, cabeça (superfície) zero. Essa é uma identificação unidimensional. Cabe à controladora no disco transformar esse número lógico de setor com a sua localização física no disco (mapeando cilindro, cabeça e setor correspondente).
<s>O particionamento do tipo [[DOS]] é comumente encontrado num computador PC doméstico. Localiza-se no primeiro setor do disco, que é chamado [[MBR]] (''Master Boot Record''). Caracteriza-se por permitir até quatro partições, ditas primárias. Caso seja necessário um número maior, pode-se usar uma partição primária como estendida. Neste caso, essa partição será um repositório de unidades lógicas (ou partições lógicas). Por pré-definição, MBR possibilita 4 primárias, e no máximo apenas poderá incluir 32 partições (primárias e estendidas)</s>
 
<pre><s># fdisk -lu /dev/sdb
== Partição DOS — MBR ==
O particionamento do tipo [[DOS]] é comumente encontrado num computador PC doméstico. Localiza-se no primeiro setor do disco, que é chamado [[MBR]] (''Master Boot Record''). Caracteriza-se por permitir até quatro partições, ditas primárias. Caso seja necessário um número maior, pode-se usar uma partição primária como estendida. Neste caso, essa partição será um repositório de unidades lógicas (ou partições lógicas). Por pré-definição, MBR possibilita 4 primárias, e no máximo apenas poderá incluir 32 partições (primárias e estendidas)
 
<pre># fdisk -lu /dev/sdb
 
Disk /dev/sdb: 80.0 GB, 80026361856 bytes
Linha 28 ⟶ 27:
/dev/sdb3 20033055 36049859 8008402+ 7 HPFS/NTFS
/dev/sdb4 36049860 156296384 60123262+ 5 Extended
/dev/sdb5 36049923 156296384 60123231 83 Linux</s></pre>
<center>''<s>Fig. 1: particionamento de um disco</s>''</center>
 
=== <s>Notação</s> ===
<s>Os valores usados aqui são hexadecimais, muito mais práticos que lidar diretamente com números binários. Na notação hexadecimal, cada byte é representado por dois caracteres. Por exemplo, o número decimal 63 é representado pela seqüência 0x3f (onde "0x" indica hexadecimal); o valor 255 (maior valor armazenado em um byte é representado por 0xff.</s>
 
<s>A arquitetura x86 (PC) usa um armazenamento ''little endian'' (CARRIER, 2005, p.&nbsp;21). Isso significa que números grandes são lidos ou escritos a partir do dígito menos significativo (da esquerda para a direita). Por exemplo, o valor decimal 24.378, equivalente a 0x5f3a, seria armazenado em disco pela sequência "3a 5f".</s>
 
=== <s>Partições primárias</s> ===
<s>O MBR é o primeiro setor do disco e divide-se em duas áreas. É identificado por uma assinatura (0xaa55) localizada nos dois últimos bytes (510&ndash;511) &mdash; por ser ''little endian'', a sequência 0x55 encontra-se no byte 510 e 0xaa no byte 511. A primeira parte do setor é reservada para conter o carregador de inicialização do sistema operacional (''boot loader'') e possui um tamanho de 446 bytes (0&ndash;445). A segunda área, com tamanho de 64 bytes, contida na faixa 446&ndash;509, contém a tabela de partições. (CARRIER, 2005, p.&nbsp;81&ndash;101).</s>
 
<pre><s># dd if=/dev/sdb bs=512 count=1 | xxd
 
0000000: faeb 2101 b501 4c49 4c4f 1606 3f79 f247 ..!...LILO..?y.G
Linha 72 ⟶ 71:
00001d0: 01fa 83fe ffff 7a48 3d00 a565 f400 00fe ......zH=..e....
00001e0: ffff 07fe ffff 1fae 3101 a565 f400 00fe ........1..e....
00001f0: ffff 05fe ffff c413 2602 fdd0 2a07 55aa ........&...*.U.</s></pre>
<center>''<s>Fig. 2: primeiro setor de um disco (MBR) — observe a assinatura (0x55aa) no final</s>''</center>
 
<s>Os 64 bytes antes da assinatura constituem a tabela de partições. Esta, por sua vez, é dividida em quatro entradas, que definem as partições primárias.</s>
 
<pre><s>entrada marca CHS(ini) tipo CHS(fim) LBA(ini) LBA(tam)
 
[1] 00 010100 82 fe3ff9 3f000000 3b483d00
[2] 00 0001fa 83 feffff 7a483d00 a565f400
[3] 00 feffff 07 feffff 1fae3101 a565f400
[4] 00 feffff 05 feffff c4132602 fdd02a07</s></pre>
<center>''<s>Fig. 3: tabela de partições</s>''</center>
 
<s>Cada entrada da tabela de partições possui seis campos:</s>
 
{| border="1" align="center"
! align="center" | <s>Faixa</s>
! align="center" | <s>Nº byte(s)</s>
! align="center" | <s>Descrição</s>
|-
| align="center" | <s>0</s>
| align="center" | <s>1</s>
| <s>Marca de inicialização</s>
|-
| align="center" | <s>1&ndash;3</s>
| align="center" | <s>3</s>
| <s>Endereço CHS inicial</s>
|-
| align="center" | <s>4</s>
| align="center" | <s>1</s>
| <s>Tipo de partição</s>
|-
| align="center" | <s>5&ndash;7</s>
| align="center" | <s>3</s>
| <s>Endereço CHS final</s>
|-
| align="center" | <s>8&ndash;11</s>
| align="center" | <s>4</s>
| <s>Endereço LBA inicial</s>
|-
| align="center" | <s>12&ndash;15</s>
| align="center" | <s>4</s>
| <s>Tamanho (em nº de setores)</s>
|-
|}
<center>''<s>Fig. 4: estrutura de uma entrada na tabela de partições</s>''</center>
 
<s>O primeiro campo é usado para o BIOS identificar a partição de inicialização e terá o valor 0x80 para a partição de inicialização do MS-DOS e derivados. Sistemas ''Unix-like'' não necessitam dessa marca — neste caso o valor será 0x00. O byte de tipo permite até 255 tipos de partição (o zero identifica uma partição vazia).</s>
 
<pre><s>00 Empty 1e Hidden W95 FAT1 80 Old Minix be Solaris boot
01 FAT12 24 NEC DOS 81 Minix / old Lin bf Solaris
02 XENIX root 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-
Linha 143 ⟶ 142:
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fd Linux raid auto
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fe LANstep
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid ff BBT</s></pre>
<center>''<s>Fig. 5: tipos de partição (lista parcial)</s>''</center>
 
=== <s>Partição estendida</s> ===
<s>O limite de quatro partições é inconveniente. Para ultrapassá-lo, usa-se a partição estendida, que é uma partição primária que serve de repositório para outras partições. A partição cujo tipo é 0x05 ou 0x0f não contém um sistema de arquivos. Em vez disso, contém outra partição (dita secundária), que por sua vez contém uma partição (ou unidade) lógica. (CARRIER, 2005, p.&nbsp;83&ndash;84).</s>
 
<s>A figura 1 mostra uma estrutura com mais de quatro partições. A figura 6 mostra o mesmo particionamento usando outra ferramenta, onde percebe-se o início e fim de cada partição. Observe-se que existe uma outra tabela de partições no início da partição estendida.</s>
 
<pre><s># mmls /dev/sdb
 
DOS Partition Table
Linha 166 ⟶ 165:
06: ----- 0036049860 0036049860 0000000001 Extended Table (#1)
07: ----- 0036049861 0036049922 0000000062 Unallocated
08: 01:00 0036049923 0156296384 0120246462 Linux (0x83)</s></pre>
<center>''<s>Fig. 6: particionamento completo (os números indicam setores)</s>''</center>
 
<s>A tabela de partições estendida contém no máximo duas entradas. A primeira descreve uma unidade lógica e a segunda, quando existe, aponta para uma partição estendida secundária, que por sua vez irá conter outra unidade lógica e uma outra eventual partição estendida. Esse esquema funciona como uma [[lista encadeada]].</s>
 
<s>O setor que contém a tabela secundária (endereço 36.049.860) estará praticamente vazio, contendo apenas a tabela que irá descrever a unidade lógica.</s>
 
<pre><s># dd if=/dev/sdb bs=512 count=1 skip=36049860 | xxd
 
0000000: 0000 0000 0000 0000 0000 0000 0000 0000 ................
Linha 182 ⟶ 181:
00001d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00001e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00001f0: 0000 0000 0000 0000 0000 0000 0000 55aa ..............U.</s></pre>
<center>''<s>Fig. 7: setor contendo a tabela de partições secundária — observe a assinatura (0x55aa) no final</s>''</center>
 
== <s>Gpt (efi)</s> ==
<s>As duas principais limitações do MBR são: o número de partições (embora seja possível usar partições estendidas e lógicas, o processamento do encadeamento é ineficiente); e o tamanho máximo da partição (e do disco) -- 2 TiB. Para resolver esse e outros problemas, a Intel criou a interface EFI, que atualmente é mantida por um consórcio de empresas—a UEFI (http://www.uefi.org, que inclui a Intel, IBM, Apple, Microsoft e outras importantes empresas), cujo objetivo principal é substituir o BIOS.</s>
 
<s>Uma das novas especificações é o particionamento GPT (GUID ''Partition Table''). A GPT, dentre outros recursos, possibilita a redundância, a verificação de integridade, um grande número de partições (a Microsoft limita em 128, mas a especificação não) e os campos de endereçamento e tamanho da partição aumentaram de quatro bytes (32 bits) para oito (64 bits) -- que permitem partições de 8.589.934.592 TiB (8 x 2<sup>70</sup> bytes ou 8 ZiB).</s>
 
== <s>Referências gerais</s> ==
* <s>[1] BROUWER, Andries. '''Large disk howto'''. v. 2.5. 2004. Disponível em http://www.ibiblio.org/pub/Linux/docs/HOWTO/. Acessado em 16 de setembro de 2008.</s>
* <s>[2] CARRIER, Brian. '''File system forensic analysis'''. Upper Saddle River: Addison-Wesley. 2005.</s>
* <s>[3] Intel Corporation. '''Extensible Firmware Interface specification'''. v. 1.10. 2002. Disponível em http://www.intel.com/technology/efi/. Acessado em 14 de setembro de 2008.</s>
* <s>[4] Unified EFI, Inc. '''Unified Extensible Firmware Interface specification'''. v. 2.2. Sep. 2008. Disponível em http://www.uefi.org/specs/. Acessado em 23 de dezembro de 2008.</s>
 
== <s>Texto em revisão -- Ferramentas</s> ==
{{Revisão|ciência=sim|data=dezembro de 2009}}
{{contextualizar|ciência=sim|data=dezembro de 2009}}
 
=== <s>Particionamento destrutivo e não destrutivo</s> ===
<s>O [[FDISK]] do MS DOS é um exemplo de particionador destrutivo. Ele não é capaz de redimensionar partições, ou seja, se houver um sistema Windows ocupando todo o HD, não é possível redimensionar a partição existente.</s>
 
<s>Um particionador não destrutivo que funciona em modo texto é o [[Fips]]. É criado um disco de inicialização DOS e a partir dele inicia-se o Fips.</s>
 
=== <s>Particionadores Gráficos</s> ===
<s>Uma solução rápida para particionar é usar um [[Live CD's]] que traga o excelente particionador [[Qtparted]], capaz de redimensionar partições de modo bastante eficaz.</s>
 
<s>Outro particionador muito bom é o [[Gparted]], disponível em Português. Atualmente já está bem amadurecido, tanto que já se tornou o particionador gráfico do [[Kurumin]] e [[Ubuntu]].</s>
 
<s>Uma vantagem de se usar um particionador de um Live CD é que você já inicia o particionamento direto, não sendo necessário sequer entrar no sistema instalado na máquina.</s>
 
<s>Para distribuições [[GNU/Linux]] baseadas no [[Debian]] há uma excelente dica de utilização no [http://www.guiadohardware.net/kurumin/dicas/011/ Guia do Hardware]</s>
 
=== <s>Particionador integrado aos instaladores</s> ===
<s>O particionador do [[Mandriva| Mandriva Linux]] foi um dos primeiros a ganhar notoriedade por sua simplicidade, mas o [[Fedora Linux|Fedora]] tem hoje um bom particionador integrado ao instalador. O projeto Debian está implementando esta funcionalidade para as próximas versões. O particionador do instalador do [[Ubuntu]] também é intuitivo e prático.</s>
 
=== <s>Unix</s> ===
<s>Para baseados em [[UNIX]] e sistemas operacionais [[Unix-like]], como [[GNU/Linux|Linux]] e [[MacOS X|Mac OS X]] a criação de partições separadas para /boot, /home, /tmp, /usr, /var, /opt, [[swap|arquivo de troca]] e todo remanescente sob o "/" (Diretório raiz) é possível, exceto as suas partições chamados slices. Esse esquema tem uma série de vantagens potenciais: se um [[sistema de arquivos]] fica danificado, o restante dos dados (os outros sistemas de arquivos) permanecem intactos, minimizando perda de dados; partições podem ser acessadas somente para leitura e para a execução de setuid arquivos desativados, assim, aumentar a segurança e o desempenho pode ser mais reforçado. Este método tem a desvantagem de subdividir a unidade em partições de tamanho fixo, portanto, um usuário poderia ficar sem espaço no disco rígido do seu /home, apesar de outras partições ainda terem todo o espaço utilizável. Uma boa implementação exige que o usuário calcule com precisão de quanto espaço cada partição irá precisar, o que pode ser uma tarefa difícil, especialmente para novos usuários. [[Logical Volume Management]], muitas vezes utilizado em servidores, aumenta a flexibilidade, permitindo a expansão nos volumes de dados em discos físicos separados (que podem ser adicionados quando necessário), é outra opção para redimensionar as partições, quando necessário. Típicos sistemas desktop são muitas vezes constituídos por uma única "/" (diretório raiz), contendo o conjunto de arquivos muito menores, acrescidos de uma partição swap. Por padrão, sistemas Mac OS X utilizam um único "/" (diretório raiz), contendo o conjunto de arquivos (inclusive o arquivo de troca) como um ponto de simplicidade (mas existem outras opções de configuração).</s>
 
{{Portal3|Ciência|Tecnologias de informação}}