O particionamento consiste em criar as partições necessárias para instalar o sistema operacional. As partições são divisões no disco, tratadas como se fossem discos independentes.
O particionamento faz parte do processo de instalação de qualquer distribuição
GNU/Linux. Algumas trazem ferramentas gráficas para essa tarefa, como Mandriva, SuSE e Fedora, outras possuem ferramentas em modo texto um pouco mais simples, como o Debian, e outras, como o Slackware, não possuem ferramentas próprias, e exigem que o usuário execute um aplicativo de particionamento em modo texto antes de iniciar o processo de instalação.
O programa mais poderoso para particionamento de HD's é o fdisk (não confunda com o fdisk para DOS), entretanto, por ser baseado em linha de comando, podemos facilmente cometer erros que podem nos levar a perder todos os dados de um disco que tenha dados gravados.
Uma alternativa para o fdisk é o cfdisk. O cfdisk nada mais é que uma interface para o fdisk, bastante intuitiva e muito simples de usar.
Tabela de partições
Tabela de partições, ou partition table, é o local no HD onde ficam armazenadas as informações sobre as partições existentes.
Como visto anteriormente, as partições podem ser de 3 tipos: primárias, extendidas e lógicas, de forma que podemos ter até 16 partições no disco: 3 primárias, 1 extendida e 12 lógicas. Dessas, apenas 15 podem receber sistemas de arquivos, uma vez que a partição extendida só serve para abrigar as partições lógicas.
Esquema de particionamento
Primeiramente, é preciso ter em mente as partições que se deseja criar. Por motivos de desempenho e segurança, pode-se decidir criar várias partições, uma para cada diretório importante do sistema. Esse procedimento é muito útil pois, no caso de uma corrupção no sistema que o torne inacessível, é possível recuperar facilmente os dados das outras partições. Além disso, pode-se colocar os diretórios que são mais acessados no início do disco, onde os dados são lidos mais rapidamente.
Partição | Ponto de montagem | Tipo | Tamanho |
Bandeira |
/dev/hda1 | | extendida | 8736 MB | |
/dev/hda5 | /boot | lógica | 32 MB |
boot |
/dev/hda6 | /usr | lógica | 4096 MB | |
/dev/hda7 | swap | lógica | 512 MB | |
/dev/hda8 | /var | lógica | 4096 MB | |
/dev/hda2 | / | primária | 3072 MB | |
/dev/hda3 | /home | primária | 24032 MB |
|
/dev/hda4 | /backup | primária | 5120 MB |
|
Nessa estrutura existem 7 partições. 1 para a raiz do sistema /, 1 para a memória virtual (swap), 4 para diretórios importantes do sistema (/boot/, /usr/, /var/, /home/) e 1 para um diretório de backup (/backup/).
Existem basicamente duas vantagens em escolher partições separadas para os diretórios importantes do sistema:
- Segurança: Gravar nossos dados pessoais em partições separadas da partição principal é seguro pois, na eventualidade de o sistema ser corrompido e não puder ser inicializado, poderemos recuperar facilmente os nossos dados, pois eles não estarão gravados na mesma partição do sistema, mas em uma partição à parte;
- Desempenho: Nem todos os diretórios são acessados com a mesma freqüência. Alguns são mais lidos, outros são mais gravados, alguns são lidos somente na inicialização do sistema, enfim. Dessa forma, podemos otimizar o sistema colocando os diretórios mais acessados em partições localizadas no início do disco, onde a leitura e a gravação ocorrem de forma mais rápida.
Sabendo disso, fica fácil entender o porquê dessa estrutura de particionamento acima escolhida.
A primeira partição foi separada para receber o diretório /boot/, pois é nesse diretório que se encontram a imagem do kernel e os arquivos utilizados pelo gerenciador de inicialização, ambos utilizados durante a inicialização do sistema. Colocar esse diretório numa partição no início do disco garante uma leitura mais rápida dos arquivos e, portanto, alguns segundos a menos no tempo de carregamento do sistema.
A segunda partição foi separada para receber o diretório /usr/, que contém os arquivos utilizados pela maioria dos programas dos usuários. Colocar esse diretório numa partição próxima ao início do disco torna a inicialização dos programas um pouco mais rápida.
A terceira partição foi separada para a memória virtual. A memória virtual é utilizada para armazenar dados quando a memória RAM não for suficiente. Quanto mais rapidamente os dados forem lidos e gravados na partição swap, melhor o desempenho do sistema quando a memória virtual estiver sendo utilizada.
A quarta partição separamos para o diretório /var/. Essa partição contém diversas informações sobre muitos dos programas do sistema, incluindo arquivos de log. Em sistemas de servidores, os logs são muito importantes, além de outros arquivos que podem ser muito úteis para o administrador do sistema. Separar o diretório /var/ é útil para fins de segurança, pois os dados contidos nesse diretório podem ser de extrema importância em certos casos.
A quinta partição será utilizada pela raiz do sistema e o demais diretórios principais.
A penúltima partição será utilizada para o diretório /home/. Esse diretório, como você sabe, recebe os arquivos pessoais de cada usuário, e tê-lo em uma partição separada oferece uma segurança em relação a integridade dos dados, que podem ser facilmente recuperados no caso de corrompimento do sistema.
Por fim, temos a última partição, que separamos para o diretório /backup/. Esse diretório é personalizado, não existindo na FHS do
Linux, e nesse exemplo será utilizado para realização de backup.
Agora, vejamos como proceder para criar essa tabela de partições. Para isso, podemos utilizar vários programas. O mais conhecido é o fdisk, ferramenta em modo texto extremamente poderosa, porém não muito intuitiva. Existe ainda o cfdisk, que nada mais é que uma interface para o fdisk, bem mais simples de utilizar.
Existem ainda alguns utilitários de particionamento em modo gráfico, com o QTParted, bastante simples de utilizar e muito eficiente.
Vejamos agora como criar a tabela de partições acima utilizando o fdisk.
O fdisk
Para iniciar o fdisk, usamos o seguinte comando:
# fdisk [dispositivo]
Onde [dispositivo] é o disco que estamos particionando. Geralmente utilizamos o disco rígido IDE ligado como primary master, o /dev/hda:
# fdisk /dev/hda
The number of cylinders for this disk is set to 4865.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help):
Ao iniciar, o fdisk mostra algumas informações a respeito do programa e apresenta o prompt de comandos "Command (m for help):". É aqui que devemos dar os comandos para trabalhar as partições. Os comandos são:
- a: Marcar uma partição como ativa;
- d: Apagar uma partição;
- l: Lista dos sistemas de arquivos conhecidos;
- m: Ajuda básica sobre os comandos;
- n: Criar uma nova partição;
- p: Mostra da tabela de partições do disco;
- q: Sair sem salvar as alterações;
- t: Mudar o tipo do sistema de arquivos em uma partição;
- w: Gravar a tabela de partições no disco.
Vejamos agora um exemplo prática de uso do fdisk, criando a tabela de partições mostrada na seção anterior.
Considerando que o disco está vazio, o primeiro passo é criar a partição extendida /dev/hda1:
command (m for help):
n
Command action
e extended
p primary partition (1-4)
e
Partition number (1-4):
1
First cylinder (1-4865, default 1):
1
Last cylinder or +size or +sizeM or +sizeK (1-4865, default 4865):
+8736M
Ao usar o comando n, para criar uma nova partição, o fdisk pergunta que tipo de partição criar. Escolhemos e (extendida). O fdisk pergunta então qual o número que queremos dar à partição. Escolhemos 1. Em seguida, devemos informar o cilindro inicial da partição. Apenas pressionamos Enter, pois a partição deve ficar no início do disco. Por fim, devemos informar o tamanho da partição. Colocamos +8736M, para definir um tamanho de 8736 MB.
Agora, devemos criar as 4 partições lógicas /dev/hda5, /dev/hda6, /dev/hda7 e '/dev/hda8, com 32 MB, 4096 MB, 512 MB e 4096 MB, respectivamente. Vamos criar primeira a partição /dev/hda5, com 32 MB:
Command (m for help):
n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (1-1063, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-1063, default 1063):
+32M
Na seqüência, criamos a partição /dev/hda6, com 4096 MB:
Command (m for help):
n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (6-1063, default 6):
Using default value 6
Last cylinder or +size or +sizeM or +sizeK (6-1063, default 1063):
+4096M
Em seguida, criamos a partição /dev/hda7, com 512 MB:
Command (m for help):
n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (505-1063, default 505):
Using default value 505
Last cylinder or +size or +sizeM or +sizeK (505-1063, default 1063):
+512M
E, por fim, criamos a última partição lógica, /dev/hda8. Como ela deve ocupar todo o espaço disponível, não precisamos informar o seu tamanho:
Command (m for help):
n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (568-1063, default 568):
Using default value 568
Last cylinder or +size or +sizeM or +sizeK (568-1063, default 1063):
Using default value 1063
Concluída a criação das partições lógicas, é hora de criar as 3 partições primárias restantes: /dev/hda2, /dev/hda3 e /dev/hda4. Começamos por criar a partição /dev/hda2, com 3072 MB:
Command (m for help):
n
Command action
l logical (5 or over)
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (1064-4865, default 1064):
Using default value 1064
Last cylinder or +size or +sizeM or +sizeK (1064-4865, default 4865):
+3072M
Em seguida, criamos a partição /dev/hda3, com 24032 MB:
Command (m for help):
n
Command action
l logical (5 or over)
p primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (1438-4865, default 1438):
Using default value 1438
Last cylinder or +size or +sizeM or +sizeK (1438-4865, default 4865):
+24032M
E, finalmente, criamos a última partição primária, /dev/hda4, utilizando o espaço restante no HD:
Command (m for help):
n
Command action
l logical (5 or over)
p primary partition (1-4)
p
Selected partition 4
First cylinder (4361-4865, default 4361):
Using default value 4361
Last cylinder or +size or +sizeM or +sizeK (4361-4865, default 4865):
Using default value 4865
Agora, utilizamos o comando p para listar as partições criadas:
Command (m for help):
p
Disk /dev/hda: 40.0 GB, 40020664320 bytes
255 heads, 63 sectors/track, 4865 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 1063 8538516 5 Extended
/dev/hda2 1064 1437 3004155 83 Linux
/dev/hda3 1438 4360 23478997+ 83 Linux
/dev/hda4 4361 4865 4056412+ 83 Linux
/dev/hda5 1 5 40099+ 83 Linux
/dev/hda6 6 504 4008186 83 Linux
/dev/hda7 505 567 506016 83 Linux
/dev/hda8 568 1063 3984088+ 83 Linux
Pronto. Todas as partições estão criadas, mas o particionamento ainda não está completo. Precisamos definir a partição /dev/hda7 como swap. Para isso, utilizamos o comando t, e escolhemos o número 82, para definir a partição como Linux Swap:
Command (m for help):
t
Partition number (1-8):
7
Hex code (type L to list codes):
82
Changed system type of partition 7 to 82 (Linux swap / Solaris)
Segue abaixo a lista completa com os códigos de todos os tipos de partições suportados pelo fdisk:
0 | Empty |
1e | Hidden W95 FAT1 |
80 | Old Minix |
be | Solaris boot |
1 | FAT12 |
24 | NEC DOS |
81 | Minix / old Lin |
bf | Solaris |
2 | XENIX root |
39 | Plan 9 |
82 | Linux swap / So |
c1 | DRDOS/sec (FAT- |
3 | XENIX usr |
3c | PartitionMagic |
83 | Linux |
c4 | DRDOS/sec (FAT- |
4 | FAT16 <32M |
40 | Venix 80286 |
84 | OS/2 hidden C: |
c6 | DRDOS/sec (FAT- |
5 | Extended |
41 | PPC PReP Boot |
85 | Linux extended |
c7 | Syrinx |
6 | FAT16 |
42 | SFS |
86 | NTFS volume set |
da | Non-FS data |
7 | HPFS/NTFS |
4d | QNX4.x |
87 | NTFS volume set |
db | CP/M / CTOS / . |
8 | AIX |
4e | QNX4.x 2nd part |
88 | Linux plaintext |
de | Dell Utility |
9 | AIX bootable |
4f | QNX4.x 3rd part |
8e | Linux LVM |
df | BootIt |
a | OS/2 Boot Manag |
50 | OnTrack DM |
93 | Amoeba |
e1 | DOS access |
b | W95 FAT32 |
51 | OnTrack DM6 Aux |
94 | Amoeba BBT |
e3 | DOS R/O |
c | W95 FAT32 (LBA) |
52 | CP/M |
9f | BSD/OS |
e4 | SpeedStor |
e | W95 FAT16 (LBA) |
53 | OnTrack DM6 Aux |
a0 | IBM Thinkpad hi |
eb | BeOS fs |
f | 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 |
1c | Hidden W95 FAT3 |
75 | PC/IX |
|
|
Por fim, precisamos ligar a bandeira inicializável em uma das partições. Pelo menos uma partição deve ter essa bandeira ligada, para que seja possível inicializar o sistema operacional.
Vamos utilizar o comando a para ligar essa bandeira na partição /dev/hda5, que é a primeira partição do HD:
Command (m for help):
a
Partition number (1-8):
5
E a tabela de partições está finalmente concluída. Vejamos como ela ficou:
Command (m for help):
p
Device Boot Start End Blocks Id System
/dev/hda1 1 1063 8538516 5 Extended
/dev/hda2 1064 1437 3004155 83 Linux
/dev/hda3 1438 4360 23478997+ 83 Linux
/dev/hda4 4361 4865 4056412+ 83 Linux
/dev/hda5 * 1 5 40099+ 83 Linux
/dev/hda6 6 504 4008186 83 Linux
/dev/hda7 505 567 506016 82 Linux swap
/dev/hda8 568 1063 3984088+ 83 Linux
Uma vez concluído o particionamento, utilizamos o comando w para gravar a tabela de partições no disco. O fdisk vai pedir confirmação antes de fazer a gravação.
Para sair do programa, utilize o comando q.