FDISK( 8 ) Manual do Programador Linux FDISK( 8 )
NAME
fdisk - Manipulador da tabela de partições para o Linux
SINOPSE
fdisk [-b] [-u][_d_i_s_p_o_s_i_t_i_v_o]
fdisk -l [-b] [-u] [_d_i_s_p_o_s_i_t_i_v_o_._._.]
fdisk -s _p_a_r_t_i_ç_ã_o _._._.
fdisk -v
DESCRIÇÃO
Discos rígidos podem ser divididos em um ou mais discos
lógicos chamados de partições. Esta divisão é descrita na
tabela de partições encontrada no setor 0 do disco.
No mundo BSD as pessoas falam sobre `disk slices´ e
`disklabel´.
O Linux precisa de pelo menos uma partição, para o seu
sistema de arquivos raiz. Ele pode usar arquivos de swap
ou partições de swap, mas as partições são mais efi*
cientes. Normalmente usa-se uma segunda partição no Linux
dedicada como swap. Em equipamentos compatíveis com o
padrão Intel, a BIOS que inicializa o sistema normalmente
pode acessar somente os primeiros 1024 cilindros do disco.
Por esta razão, muitas pessoas com discos grandes criam
uma terceira partição, com somente alguns Mb, normalmente
montada no /boot, para guardar a imagem do kernel e alguns
arquivos auxiliares necessários em tempo de inicialização
do sistema. Assim, tem-se a certeza que tudo será
acessível pelo BIOS. Pode ainda existir razões de segu*
rança, facilidade de administração e geração de cópias de
segurança, ou teste, para usar um número maior de
partições no sistema.
O fdisk (na primeira forma de execução) é um programa sob
a forma de menus para a criação e manipulação de tabelas
de partição. Ele conhece tabelas de partições DOS e BSD
ou disklabels da SUN.
O dispositivo é normalmente um dos seguintes:
/dev/hda
/dev/hdb
/dev/sda
/dev/sdb
(/dev/hd[a-h] para discos IDE, /dev/sd[a-p] para discos
SCSI, /dev/ed[a-d] para discos ESDI, /dev/xd[ab] para dis*
cos XT). Um nome de dispositivo refere-se ao disco
inteiro.
A partição é um dispositivo seguido por um número de
partição. Por exemplo, /dev/hda1 é a primeira partição do
primeiro disco IDE no sistema. Discos IDE podem ter até
63 partições, discos SCSI até 15. Veja também
/usr/src/linux/Documentation/devices.txt.
Um disklabel BSD/SUN pode descrever 8 partições, sendo que
a terceira deve conter todo o disco. Não inicie uma
partição que usa seu primeiro setor (como uma partição
swap) no cilindro 0, pois esta irá destruir o disklabel.
Uma tabela de partição do DOS pode descrever um número
ilimitado de partições. No setor 0 há espaço para a
descrição de 4 partições (chamadas `primárias´

. Uma delas
pode ser uma partição estendida; esta guarda as partições
lógicas, com os descritores localizados em uma lista lig*
ada de setores, cada um precedendo a partição lógica cor*
respondente. As quatro partições primárias, presentes ou
não, possuem números de 1 a 4. Partições lógicas iniciam
no número 5.
Em uma tabela de partição do DOS, o deslocamento inicial e
o tamanho de cada partição é armazenada de duas maneiras:
como um número absoluto de setores (dados em 32 bits) e
como uma tripla cilindros/cabeças/setores (dados em 10+8+6
bits). A primeira funciona até 2 TB, utilizando setores de
512-bytes. A segunda tem dois problemas diferentes.
Primeiro, os campos de C/C/S podem ser preenchidos somente
quando o número de cabeças e o número de setores por
trilha são conhecidos. Depois, mesmo que se conheça estes
números, os 24 bits que estão disponíveis não são sufi*
cientes. O DOS usa somente a trinca C/C/S, o Windows
ambas e o Linux nunca as usa.
Se possível, o fdisk obterá a geometria do disco automati*
camente. Esta não é necessariamente a geometria física do
disco (ainda, discos novos não tem algo como uma geometria
física, certamente nada que pode ser descrito da forma
simplista cilindro/cabeças/setores) mas é a geometria do
disco que o MS-DOS usa para a tabela de partições.
Normalmente tudo funciona bem por padrão, e não existem
problemas caso o Linux seja o único sistema operacional no
disco. Contudo, caso o disco seja dividido com outro sis*
tema operacional, é uma boa idéia deixar o fdisk do outro
sistema criar pelo menos uma partição. Quando o Linux ini*
cializa, ele acessa a tabela de partição e tenta deduzir
qual geometria é adequada para a cooperação com outros
sistemas.
Sempre que a tabela de partições é mostrada, uma checagem
de consistência é feita nas entradas da tabela. Esta
checagem verifica que o início físico e lógico, bem como
os pontos finais são idênticos, e também que a partição
inicia e termina nos limites de um cilindro (exceto para a
primeira partição).
Algumas versões do MS-DOS criam a primeira partição fora
dos limites de um cilindro, ficando no segundo setor do
primeiro cilindro. Partições começando no primeiro cilin*
dro não iniciam nos limites do cilindro, mas normalmente
não causam problemas a menos que você use o OS/2 em sua
máquina.
Um sync() e um BLKRRPART ioctl() (releitura da tabela de
partição do disco) são executados antes da saída quando a
tabela de partições foi atualizada. A tempos atrás era
necessário reinicializar o sistema depois do uso do fdisk.
Eu não acho que isto seja mais necessário - de fato,
reinicializar o sistema muito rapidamente pode causar
perda de dados ainda não escritos. Note que o kernel e o
hardware do disco podem armazenar dados (buffers) antes de
gravá-los.
DOS 6.x ALERTA
O comando FORMAT do DOS 6.x procura por informações no
primeiro setor da área de dados da partição, e utiliza
esta informação ao invés da que está na tabela de
partições. O format do DOS espera que o fdisk (do DOS)
limpe os primeiros 512 bytes da área de dados da partição
caso qualquer mudança de tamanho ocorra. O format do DOS
irá usar esta informação adicional mesmo que o indicador
/U for usado -- nós consideramos isto um erro (bug) no
format e no fdisk do DOS.
A questão é que se você usar o cfdisk ou o fdisk para tro*
car o tamanho de uma partição DOS, então deverá também
usar o dd para zerar os primeiros 512 bytes desta partição
antes de usar o FORMAT do DOS para formatá-la. Por exem*
plo, caso você esteja usando o cfdisk para criar uma
partição DOS para o /dev/hda1, então (depois de sair do
fdisk ou do cfdisk e reinicializar o Linux para ter
certeza que a informação na tabela de partições é válida)
você deverá usar o comando "dd if=/dev/zero of=/dev/hda1
bs=512 count=1" para zerar os primeiros 512 bytes desta
partição.
SEJA EXTREMAMENTE CUIDADOSO caso você use o comando dd,
pois o menor descuido pode fazer com que todos os seus
dados sejam perdidos.
Para melhores resultados, você deve sempre usar o programa
particionador que acompanha cada sistema operacional. Por
exemplo, crie partições DOS com o DOS FDISK e partições
Linux com o fdisk ou o cfdisk do Linux.
OPÇÕES
-v Mostra o número da versão do fdisk e sai.
-l Lista a tabela de partições para os seguintes dis*
positivos /dev/hd[a-d], /dev/sd[a-h], /dev/ed[a-d],
e sai.
-b Na listagem de tabelas de partições, também imprime
uma coluna de início `Begin´ como versões antigas
do fdisk faziam por padrão. (Nota: os valores
nesta coluna, quando dados em cilindros, não podem
ser maiores que 1023. Não há nada de errado caso o
`Begin´ e o `Start´ sejam diferentes, pelo menos
nada que o Linux se importe.)
-u Na listagem de tabelas de partições, mostra os
tamanhos em setores ao invés de cilindros.
-s partição
O tamanho da partição (em blocos) é mostrado na
saída padrão. Este valor é normalmente usado como
um argumento para o programa mkfs( 8 ) para especi*
ficar o tamanho da partição que irá ser formatada.
(Versões antigas do fdisk somente farão isso caso a
identificação da partição for maior que 10, na ten*
tativa de recusar partições DOS; este teste foi
retirado.) Note que o sfdisk -s mostra diferentes
(na verdade, corretas) respostas. A razão para a
diferença é que o kernel e o fdisk não necessitam
ter o mesmo padrão sobre numeração de partições
(isto é, no caso de você ter partições BSD), e
podem ter idéias diferentes sobre o tamanho de um
partição estendida.
BUGS
Existem diversos *fdisk por aí. Cada um tem seus prós e
contras. Teste-os nesta ordem cfdisk, fdisk, sfdisk.
Retirado do man do fdisk!!!!
[ Esta mensagem foi editada por: Futuremax em 18-12-2002 09:39 ]
Marcadores