Partição – Saiba tudo

Publicado: 19 de fevereiro de 2009 em ARTIGOS

Um interessante artigo do Wikipédia sobre particionamento e disco rígido.

Uma partição é uma divisão de um disco rígido (SCSI ou ATA). Cada partição pode conter um sistema de arquivos diferente. Consequentemente, vários sistemas operacionais podem ser instalados na mesma unidade de disco.

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.).
Índice

* 1 Geometria de disco
* 2 Partição DOS — MBR
o 2.1 Notação
o 2.2 Partições primárias
o 2.3 Partição estendida
* 3 GPT (EFI)
* 4 Referências
* 5 Texto em revisão — Ferramentas
o 5.1 Particionamento destrutivo e não destrutivo
o 5.2 Particionadores Gráficos
o 5.3 Particionador integrado aos instaladores
o 5.4 Unix

Geometria de disco

Uma unidade de disco constitui-se de um ou mais pratos 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.

As trilhas são numeradas de fora para dentro. Um conjunto de trilhas com o mesmo raio forma o cilindro. As cabeças de leitura-gravação são movimentadas conjuntamente, posicionando-se no mesmo cilindro.

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 numero 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.

O padrão LBA (logical block address) é mais simples. Os setores são identificados seqüencialmente (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).

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).

# fdisk -lu /dev/sdb

Disk /dev/sdb: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders, total 156301488 sectors
Units = sectors of 1 * 512 = 512 bytes

Device Boot      Start         End      Blocks   Id  System
/dev/sdb1              63     4016249     2008093+  82  Linux swap / Solaris
/dev/sdb2         4016250    20033054     8008402+  83  Linux
/dev/sdb3        20033055    36049859     8008402+   7  HPFS/NTFS
/dev/sdb4        36049860   156296384    60123262+   5  Extended
/dev/sdb5        36049923   156296384    60123231   83  Linux

Notação

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.

A arquitetura x86 (PC) usa um armazenamento little endian (CARRIER, 2005, p. 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 seqüência “3a 5f”.

Partições primárias

O MBR é o primeiro setor do disco e divide-se em duas áreas. É identificado por uma assinatura (0xaa55) localizada nos dois últimos bytes (510-511) — por ser little endian, a seqüê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-445). A segunda área, com tamanho de 64 bytes, contida na faixa 446-509, contém a tabela de partições. (CARRIER, 2005, p. 81-101).

# dd if=/dev/sdb bs=512 count=1 | xxd

0000000: faeb 2101 b501 4c49 4c4f 1606 3f79 f247  ..!…LILO..?y.G
0000010: 0000 0000 e6c7 bd47 ca59 9ecf 8100 8060  …….G.Y…..`
0000020: 6ac5 e500 b8c0 078e d0bc 0008 fb52 5306  j…………RS.
0000030: 56fc 8ed8 31ed 60b8 0012 b336 cd10 61b0  V…1.`….6..a.
0000040: 0de8 6701 b00a e862 01b0 4ce8 5d01 601e  ..g….b..L.].`.
0000050: 0780 fafe 7502 88f2 bb00 028a 761e 89d0  ….u…….v…
0000060: 80e4 8030 e078 0a3c 1073 06f6 461c 4075  …0.x.<.s..F.@u
0000070: 2e88 f266 8b76 1866 09f6 7423 52b4 08b2  …f.v.f..t#R…
0000080: 8053 cd13 5b72 550f b6ca ba7f 0042 6631  .S..[rU……Bf1
0000090: c040 e870 0066 3bb7 b801 7403 e2ef 5a53  .@.p.f;…t…ZS
00000a0: 8a76 1fbe 2000 e84a 00b4 9966 817f fc4c  .v.. ..J…f…L
00000b0: 494c 4f75 275e 6880 0807 31db e834 0075  ILOu’^h…1..4.u
00000c0: fbbe 0600 89f7 b90a 00f3 a675 0db0 02ae  ………..u….
00000d0: 7508 0655 b049 e8d2 00cb b49a b020 e8ca  u..U.I……. ..
00000e0: 00e8 b700 fe4e 0074 07bc e807 61e9 5eff  …..N.t….a.^.
00000f0: f4eb fd66 ad66 09c0 740a 6603 4610 e804  …f.f..t.f.F…
0000100: 0080 c702 c360 5555 6650 0653 6a01 6a10  …..`UUfP.Sj.j.
0000110: 89e6 53f6 c660 7458 f6c6 2074 14bb aa55  ..S..`tX.. t…U
0000120: b441 cd13 720b 81fb 55aa 7505 f6c1 0175  .A..r…U.u….u
0000130: 4a52 06b4 08cd 1307 7259 51c0 e906 86e9  JR……rYQ…..
0000140: 89cf 59c1 ea08 9240 83e1 3ff7 e193 8b44  ..Y….@..?….D
0000150: 088b 540a 39da 7339 f7f3 39f8 7733 c0e4  ..T.9.s9..9.w3..
0000160: 0686 e092 f6f1 08e2 89d1 415a 88c6 eb06  ……….AZ….
0000170: 6650 5958 88e6 b801 02eb 02b4 425b bd05  fPYX……..B[..
0000180: 0060 cd13 7310 4d74 0a31 c0cd 1361 4deb  .`..s.Mt.1…aM.
0000190: f0b4 40e9 46ff 8d64 1061 c3c1 c004 e803  ..@.F..d.a……
00001a0: 00c1 c004 240f 2704 f014 4060 bb07 00b4  ….$.’…@`….
00001b0: 0ecd 1061 c300 4970 ca59 9ecf 0000 0001  …a..Ip.Y……
00001c0: 0100 82fe 3ff9 3f00 0000 3b48 3d00 0000  ….?.?…;H=…
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.

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.

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

Cada entrada da tabela de partições possui seis campos:
Faixa     Nº byte(s)     Descrição
0         1     Marca de inicialização
1-3      3     Endereço CHS inicial
4         1     Tipo de partição
5-7      3     Endereço CHS final
8-11    4     Endereço LBA inicial
12-15  4     Tamanho (em nº de setores)

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).

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-
03  XENIX usr               3c  PartitionMagic  83  Linux           c4  DRDOS/sec (FAT-
04  FAT16 <32M           40  Venix 80286     84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
05  Extended                 41  PPC PReP Boot   85  Linux extended  c7  Syrinx
06  FAT16                      42  SFS             86  NTFS volume set da  Non-FS data
07  HPFS/NTFS           4d  QNX4.x          87  NTFS volume set db  CP/M / CTOS / .
08  AIX                           4e  QNX4.x 2nd part 88  Linux plaintext de  Dell Utility
09  AIX bootable          4f  QNX4.x 3rd part 8e  Linux LVM       df  BootIt
0a  OS/2 Boot Manag 50  OnTrack DM      93  Amoeba          e1  DOS access
0b  W95 FAT32            51  OnTrack DM6 Aux 94  Amoeba BBT      e3  DOS R/O
0c  W95 FAT32 (LBA) 52  CP/M            9f  BSD/OS          e4  SpeedStor
0e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs
0f  W95 Ext’d (LBA)    54  OnTrackDM6      a5  FreeBSD         ee  EFI GPT
10  OPUS                        55  EZ-Drive        a6  OpenBSD         ef  EFI (FAT-12/16/
11  Hidden FAT12         56  Golden Bow      a7  NeXTSTEP        f0  Linux/PA-RISC b
12  Compaq diagnost   5c  Priam Edisk     a8  Darwin UFS      f1  SpeedStor
14  Hidden FAT16 <3  61  SpeedStor       a9  NetBSD          f4  SpeedStor
16  Hidden FAT16        63  GNU HURD or Sys ab  Darwin boot     f2  DOS secondary
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

Partição estendida

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. 83-84).

# mmls /dev/sdb

DOS Partition Table
Sector: 0
Units are in 512-byte sectors

Slot    Start        End          Length       Description
00:  —–   0000000000   0000000000   0000000001   Primary Table (#0)
01:  —–   0000000001   0000000062   0000000062   Unallocated
02:  00:00   0000000063   0004016249   0004016187   Linux Swap / Solaris x86 (0x82)
03:  00:01   0004016250   0020033054   0016016805   Linux (0x83)
04:  00:02   0020033055   0036049859   0016016805   NTFS (0x07)
05:  00:03   0036049860   0156296384   0120246525   DOS Extended (0x05)
06:  —–   0036049860   0036049860   0000000001   Extended Table (#1)
07:  —–   0036049861   0036049922   0000000062   Unallocated
08:  01:00   0036049923   0156296384   0120246462   Linux (0x83)

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.

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.

# dd if=/dev/sdb bs=512 count=1 skip=36049860 | xxd

0000000: 0000 0000 0000 0000 0000 0000 0000 0000  …………….
0000010: 0000 0000 0000 0000 0000 0000 0000 0000  …………….
*** dados retirados — contêm apenas zeros ***
00001b0: 0000 0000 0000 0000 0000 0000 0000 00fe  …………….
00001c0: ffff 83fe ffff 3f00 0000 bed0 2a07 0000  ……?…..*…
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.

GPT (EFI)

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.

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 270 bytes ou 8 ZiB).

Particionamento destrutivo e não destrutivo

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.

Um particionador não destrutivo que funciona em modo texto é o Fips. É criado um disco de inicialização DOS e à partir dele inicia-se o Fips.

Particionadores Gráficos

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.

Outro particionador muito bom é o Gparted, que é em Português. Atualmente já está bem amadurecido, tanto que já se tornou o particionador gráfico do Kurumin.

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.

Para distribuições GNU/Linux baseadas no Debian há uma excelente dica de utilização no Guia do Hardware

Particionador integrado aos instaladores

O particionador do Mandriva Linux foi um dos primeiros a ganhar notoriedade por sua simplicidade, mas o Fedora tem hoje um bom particionador integrado ao instalador. O projeto Debian está implementando esta funcionalidade para as próximas versões.

Unix

Para baseados em Unix e Unix-like sistemas operacionais, como Linux e Mac OS X a criação de partições separadas para / boot, / home, / tmp / usr, / var / opt, trocar arquivos e tudo 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 arquivo 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 previsã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 de mesa 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, o Mac OS X sistemas 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).

Fonte

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s