Hugo Cisneiros (Eitch), hugo arroba devin ponto com ponto br
Versão 4.0, 2006

The Linux Manual

2.3. Particionamento de disco

Índice

2.3.1. Particionamento com o fdisk
2.3.2. Particionamento com o GNU Parted
2.3.3. Particionamento com o FIPS
2.3.4. Ufa!

Esta é uma das mais difíceis tarefas, que impedem e confudem vários iniciantes do Linux! Sem dúvida, esta é a etapa mais difícil de qualquer instalação, todo mundo diz que o Linux é dificil de instalar justamente por causa disto. Mas pense bem, imagine que um computador venha pronto para instalar o Linux, seria difícil? Não, será que nem o Windows e do jeito que os tipos de instalação estão ficando cada vez mais fáceis... Até muito mais fáceis que o próprio Windows!

2.3.1. Particionamento com o fdisk

Legal, mas vamos aprender a mecher então no fdisk do Linux, que é onde criaremos nossas partições :) Antes de mais nada, fique sabendo que você tem que ter o HD com espaco livre (não espaço livre numa partição e sim espaço livre para criar uma partição). Tem gente que opta em formatar o HD, mas como não é todo mundo que gosta disso, tentem usar o FIPS, que deixará espaço livre para você criar outras partições, sem ter de formatar o HD. Funciona, eu já vi funcionar.

Se você não tiver um sistema DOS/Windows, então você pode usar o programa GNU Parted para fazer o particionamento do disco sem ter que perder os dados dele. Também funciona porque eu já tentei aqui na minha própria máquina. Algumas distribuições atuais já incluem na sua instalação uma interface automática para reparticionar o disco com esse programa... Então se for o caso de você usar uma distribuição que tenha este recurso, não será necessário você ter que particionar seu disco como descrito aqui.

[Importante] Importante

Caso seu sistema de arquivos for NTFS (usado pelo Windows 2000/XP), infelizmente nem o FIPS, nem o GNU parted poderão resolver seu problema. A solução seria utilizar um programa proprietário, como por exemplo o Partition Magic.

[Cuidado] Cuidado

Antes de tentar qualquer coisa desesperadamente, certifique-se de que sabe o que você vai fazer e sempre pense duas vezes antes de fazer qualquer coisa. Se você tem dúvidas em relação a particionamento e quer ter a certeza que não vai perder nenhum dado, o ideal seria você fazer um backup dos seus arquivos. Eu mesmo perdi a formatação deste manual todo por causa disso, imagine o trabalho que deu pra fazer de novo...

Então vamos, mãos à obra. Você deve estar no simples prompt do Linux... Nas instalações você pode ser presenteado com uma shell, onde você poderá rodar o fdisk. Se você tiver numa interface gráfica ou coisa assim, experimente apertar Ctrl-Alt-F2, provavelmente você irá para o prompt. Primeiro entenda o seguinte:

Dispositivo Descrição
/dev/hda IDE Primária Master
/dev/hdb IDE Primária Slave
/dev/hdc IDE Secundária Master
/dev/hdd IDE Secundária Slave
/dev/sda SCSI ou Serial-ATA 1
/dev/sdb SCSI ou Serial-ATA 2
/dev/sdc SCSI ou Serial-ATA 3 (...)

Tabela 2.1. Dispositivos de HD

Façamos de conta que aqui eu não tenho o Linux instalado e pretendo instalar ele no segundo HD da minha máquina. Tenho 2 HDs, um para o sistema Windows (/dev/hda) e outro para o Linux (/dev/hdb). O que eu vou particionar com o fdisk é apenas o segundo HD, que é o /dev/hdb, então eu executo o fdisk assim:

fdisk /dev/hdb

Você irá ser presentiado com um prompt. Neste prompt você poderá digitar algumas letras que vão corresponder a comandos... Como primeiro comando, vamos ver a mensagem de ajuda. Digite m e uma mensagem com informações de uso vai aparecer. Os seguintes outros comandos estão disponíveis:

Comando Ação
a Muda a partição ativa (inicializável)
b Edita o disklabel do bsd
c Muda o sinal de compatibilidade do DOS
d Exclui uma partição
l Lista os tipos de partições conhecidas
m Mostra a mensagem de ajuda
n Adiciona uma nova partição
p Mostra a tabela de partições atuais
q Sai sem aplicar as mudanças
t Muda o tipo de partição
u Muda as unidades de entrada/saída
v Verifica a tabela de partições
w Aplica as alterações e sai do programa
x Outras opções

Tabela 2.2. Comandos do fdisk

Vamos começar a mexer com as opções do fdisk. Como vamos mexer com o HD, temos que saber primeiro se ele está vazio... Para fazer isso você usa o comando p para ver a tabela de partições atual:


Command (m for help): p


Disk /dev/hdb: 64 heads, 63 sectors, 526 cylinders
Units = cylinders of 4032 * 512 bytes

     Device   Boot     Begin     Start      End    Blocks    Id    System

Aqui no caso não apareceu nenhuma listagem de partição, então isto quer dizer que o HD está vazio e pronto para se criar partições! Mas se por exemplo, existisse uma partição já criada neste HD, como ficaria? Vejamos:


Command (m for help): p


Disk /dev/hdb: 64 heads, 63 sectors, 526 cylinders
Units = cylinders of 4032 * 512 bytes

     Device   Boot     Begin     Start      End    Blocks    Id    System
/dev/hdb1                  1         1      526  1060384+     b    Win95 FAT32

Aí então apareceu uma partição FAT32 e como eu não quero essa coisa, vou deletá-la para deixar o HD sem partições! :) Repare que é a partição 1, porque vem o número 1 depois de /dev/hdb, ficando /dev/hdb1. Então iremos agora deletar a partição 1:


Command (m for help): d 
Partition number (1-4): 1

Pronto, a partição foi excluída. Como eu vou querer instalar o Linux sozinho, crio as partições Linux Native e Linux Swap. Eu tenho um HD de 1gb e vou colocar 950MB para o Linux Native e 50MB para Swap:


Command (m for help): n


Command action
   e   extended
   p   primary partition (1-4)


p
Partition number (1-4): 1
First cylinder (1-526): 1
Last cylinder or +size or +sizeM or +sizeK ([1]-526): +950M

Command (m for help): p


Disk /dev/hdb: 64 heads, 63 sectors, 526 cylinders
Units = cylinders of 4032 * 512 bytes

     Device   Boot     Begin     Start      End    Blocks    Id    System
/dev/hdb1                  1         1      483   973696+    83    Linux native


Command (m for help): n


Command action
   e   extended
   p   primary partition (1-4)


p
Partition number (1-4): 2
First cylinder (484-526): 484
Last cylinder or +size or +sizeM or +sizeK ([484]-526): 526

Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 82


Changed system type of partition 2 to 82 (Linux swap)


Command (m for help): p


Disk /dev/hdb: 64 heads, 63 sectors, 526 cylinders
Units = cylinders of 4032 * 512 bytes

     Device   Boot     Begin     Start      End    Blocks    Id    System
/dev/hdb1                  1         1      483   973696+    83    Linux native
/dev/hdb2                484       484      526     86688    82    Linux swap

Command (m for help):

Viu como não é tão difícil? Como último comando acima, eu primeiro criei duas partições com tamanhos variados. Uma dessas partições vai ser a swap, então tenho que mudar o tipo (id) dela... Para isso executei o t e coloquei o valor 82 para a partição 2 (/dev/hdb2). Como resultado deste processo todo... podemos ver a ultima mostragem do comando p... Perfeito! Agora só precisamos salvar a configuração e só assim o fdisk irá fazer o particionamento de verdade. Para isso use o comando w e boa sorte :)

Com isso seu HD estará preparado para abrigar uma distribuição Linux. Saindo um pouco do fdisk, vamos ver agora como funciona o GNU Parted e o FIPS. Estes dois programas serão úteis para você não perder os seus queridos dados, como seus vídeos e suas musiquinhas em mp3 :D

2.3.2. Particionamento com o GNU Parted

O GNU Parted é um programa muito bom para reparticionar o seu HD sem perder os dados. Ele é um programa totalmente feito para o Linux, ou seja, você só poderá rodá-lo se tiver um Linux. Então você pergunta... Se eu quero particionar o meu HD para instalar o Linux, como vou fazer isso com esse programa?

Sim, existe um jeito bem simples de você usar o GNU Parted sem ter instalado o Linux em sua máquina. Para fazer isso você precisará de um disquete e alguns utilitários. Com isso iremos criar um bootdisk que vai conter o GNU Parted para você usar à vontade! Se você já tiver Linux, não precisa criar um bootdisk... :) Você precisará de dois arquivos para criar o bootdisk:

Rawrite:

Imagem do disco:

O Rawrite é um programa que cria bootdisks a partir de imagens. Então para criar a bootdisk, a imagem (segundo arquivo) é o necessário. Essa imagem contém um Linux bem compacto, com o GNU Parted contido nele. No DOS, descompacte o Rawrite em um diretório e coloca a imagem neste mesmo diretório e executa o comando:


rawrite partboot.img a:

Ou você pode digitar rawrite apenas e ele vai te pedir a imagem e depois aonde escrever a imagem. Então você coloca os dois parâmetros (partboot.img que é a origem e a: que é o destino). Espere um pouco e o bootdisk está pronto para ser utilizado.

[Dica] Dica

Existe também o Rawritewin, uma versão do Rawrite para Windows, com uma interface agradável com o usuário. Se quiser, pode usar ele.

Para criar este bootdisk no Linux, você só precisará da imagem, então é só utilizar o comando:


dd if=partboot.img of=/dev/fd0 bs=1440k

[Dica] Dica

Existem algumas distribuições em forma de LiveCDs (ou seja, CDs que permitem usar o Linux sem precisar instalá-lo) que contém as ferramentas necessárias, sendo dispensável o uso de um bootdisk. Isso é útil para aqueles que não possuem mais drives de disquete (e eu particularmente prefiro ter um CD do que um disquete). Exemplos destas distribuições incluem: SystemRescueCD, Knoppix, Kurumin.

Para utilizar o bootdisk, reinicie a máquina, coloque o disquete no drive e espere o boot (o boot por disquete tem de estar habilitado na BIOS claro). Você irá cair no prompt do Linux, podendo usar o GNU Parted à vontade. Vou explicar agora como usar o GNU Parted direitinho. Primeiro de tudo, você tem de executar o parted em um HD. No exemplo anterior (do fdisk), estávamos usando o /dev/hdb, então aqui vai ser a mesma coisa:


parted /dev/hdb

Você será presenteado com um prompt. Digite print para obter a tabela de partições atual do seu HD. Vamos usar aqui um exemplo que bate com a maioria dos casos:


(parted) print


Disk geometry for /dev/hdb: 0.000-2457.984 megabytes
Disk label type: msdos
Minor    Start       End     Type      Filesystem  Flags
1          0.031   2457.000  primary   FAT         boot

Aqui eu tenho uma partição de 2.5GB. Os dados fornecidos pelo comando print estão todos em MB... O que você terá de fazer aqui é redimensionar esta partição, para deixar um espaço livre para Linux. Antes de redimensionar certifique-se de que sabe o que está fazendo e de que o espaço livre tenha o tamanho da partição que você quer criar (é meio impossível você criar uma partição sem espaço em disco disponível né? :)). Vamos supor que eu quero criar uma partição de 1.5GB, faço assim:


(parted) resize 1 0.031 1000

O programa irá mecher com seu HD como se estivesse esbagaçando ele todinho, mas o que ele está fazendo é redimensionando a partição, mexendo nos dados e verificando tudo para que se houver algum crash, possa se recuperar alguma coisa depois. O comando resize já diz tudo, redimensiona a partição. O primeiro parâmetro, o 1 corresponde ao número da partição (Minor), que foi mostrado com o comando print. O segundo e terceiro parâmetro são respectivamente o início e o fim em Megabytes da partição que vai ser redimensionada, no exemplo, a partição ia de 0 até 2500, então diminuímos ela para de 0 até 1000, deixando 1500 Megabytes livres para criar outras partições. Feito com sucesso essa modificação da tabela de partições do HD, saia com o comando quit e manuseie normalmente o seu HD com o programa fdisk (criação de partições Linux, definições como Linux Native e Swap, etc). Por que usar o fdisk? Questão de gosto :)

2.3.3. Particionamento com o FIPS

Se você não pode usar o fdisk e não quer usar o GNU Parted para reparticionar sem perder dados, o FIPS é uma boa alternativa para fazer isso. O FIPS é um programa para DOS, então é o oposto ao GNU Parted: só roda em DOS e não em Linux. O FIPS foi muito usado para fazer a tarefa de repartição do HD, mas se tornou obsoleto com o tempo. Mesmo assim mostrarei a seguir os passos básicos para você redimensionar uma partição Windows, seguindo o mesmo escopo dos exemplos anteriores.

Antes de mais nada, você terá que desfragmentar o seu disco todo. No Windows e no DOS isto é feito com o programa defrag, que move os arquivos para o começo do HD, organizando e deixando o final livre. O FIPS requer que o final do HD fique livre, assim ele pode dividir a partição sem mexer com nenhum dado. Outra coisa muito importante: crie um disco de boot do Windows e coloque dentro dele também o fips.exe. Então inicialize com este bootdisk que você criou e execute o fips:


a:\fips.exe

Depois disso, algumas informações irão ser mostradas, como por exemplo a tabela de partições e os informações sobre o setor de boot, como no exemplo a seguir:


Partition table:

     |        |     Start      |      |      End       | Start  |Number of|
Part.|bootable|Head Cyl. Sector|System|Head Cyl. Sector| Sector |Sectors  |  MB
-----+--------+----------------+------+----------------+--------+---------+----
1    |    yes |   1    0      1|   0Ch| 127  783     63|      63|  6330177|3090
2    |     no |   0    0      0|   00h|   0    0      0|       0|        0|   0
3    |     no |   0    0      0|   00h|   0    0      0|       0|        0|   0
4    |     no |   0    0      0|   00h|   0    0      0|       0|        0|   0

Boot sector:

Bytes per sector: 512
Sectors per cluster: 8
Reserved sectors: 32
Number of FATs: 2
Number of rootdirectory entries: 0
Number of sectors (short): 0
Media descriptor byte: F8h
Sectors per FAT: 6176
Sectors per track: 63
Drive heads: 128
Hidden sectors: 63
Number of sectors (long): 6330177
Physical drive number: 80h
Signature: 29h

Checking boot sector ... OK
Checking FAT ...

Na mensagem Checking FAT..., o programa está verificando o seu sistema de arquivos FAT16/32 para ver se ele vai poder fazer o redimensionamento da partição. Se por exemplo você não tiver o último cilindro da partição livre (isso porque você não deve ter executado o defrag para colocar tudo no começo), então o programa diz que não pode criar partição e sai. Se tudo ocorrer bem, você já poderá especificar qual o tamanho para ser redimensionado.

Escolha o tamanho da sua nova partição movendo as dimensões dos cilindros com os cursores (setas do teclado). Depois de tudo ajeitado conforme as suas necessidades, aperte Enter para continuar. O programa irá verificar novamente por cilindros livres e depois vai recalcular os dados da tabela de partições do HD, mostrando as novas configurações. Apertando C agora, ele vai fazer mais verificações e finalmente irá perguntar se você deseja continuar. Apertando Y você confirma, ele cria a nova partição, salva e sai do programa.

2.3.4. Ufa!

Finalmente tudo está criado e pronto para se instalar Linux. Só para finalizar o assunto de partições, vamos falar sobre os sistemas de arquivos suportados pelos redimensionadores (GNU Parted e FIPS). O FIPS suporta apenas redimensionamento de partições do tipo DOS (FAT16/32), sendo impossível dividir uma partição Linux (ext2). Já o GNU Parted suporta partições DOS (FAT16/32) e Linux (swap e ext2). No Linux também é possível usar o sistema de arquivos ReiserFS e para redimensionar este tipo de partição, há um utilitário próprio chamado reiserfs resizer, que vem junto com o pacote ReiserFS. Se você tiver uma partição ReiserFS o pacote pode ser obtido através do endereço:

http://www.namesys.com/

Qualquer dúvida sobre o partições e o uso de destes programas, você pode e deve recorrer à algumas documentações disponíveis:

Partition mini-HOWTO:

GNU Parted User Guide:

Manpage do fdisk:

  • Comando man fdisk

Documentação do FIPS:

  • Incluso no fips20.zip