O Comando Linux - fdisk

fdisk é uma linha de comando partição editor que permite criar, editar e gerenciar as partições nos discos rígidos do seu computador a partir da linha de comando. Existem outras ferramentas semelhantes, como cfdisk e parted, mas fdisk é facilmente a mais universal e provavelmente a mais simples.

Mesmo se você não planeja usá-lo regularmente, é bom para qualquer usuário Linux ter uma ideia geral de como trabalhar com fdisk, uma vez que é um grande substituto quando as opções gráficas não estão disponíveis, e provavelmente já está em seu Linux sistema.

Cubículos de escritório vazios
Jetta Productions / Blend Images / Getty Images

Particionar uma unidade com fdisk

Este guia irá guiá-lo pelos fundamentos do particionamento de um disco rígido com o fdisk. Esta é uma ferramenta simples, mas poderosa, que oferece muitas opções para gerenciar suas unidades. Para uma análise técnica mais completa, consulte o manual técnico no final do guia.

Particionar seu disco rígido apagará todos os dados nele. Certifique-se de fazer backup de seus dados ou trabalhar com uma unidade em branco.

  1. Comece descobrindo a localização do seu disco rígido. Podes tentar:

    ls / dev. 

    Em seguida, tente descobrir qual é a unidade. Sua unidade principal é provavelmente / dev / sda, mas você precisa ter certeza.

    Você também pode dar uma olhada em / etc / fstab para ver quais drives estão montados e onde. Se ele fornece números UUID, você pode pesquisar o UUID de cada partição e ver quais correspondem.

    sudo blkid / dev / sda1. 
  2. Em seguida, liste a tabela de partição atual na unidade usando o -eu bandeira. Substitua "/ dev / sda" pela sua unidade real.

    sudo fdisk -l / dev / sda. 
    Linux fdisk list partitions

    Se você estiver trabalhando com uma unidade em branco, não deve haver muito lá.

  3. Execute o comando fdisk novamente. Desta vez, sem bandeiras. Isso o levará ao console do fdisk.

    sudo fdisk / dev / sda. 
    Console Linux fdisk
  4. Assim que estiver no console do fdisk, você pode começar a trabalhar com suas partições. Primeiro, se você quiser listar as partições como antes, você pode inserir o p chave.

    p. 
    Linux fdisk list partitions do console
  5. Então, use o n chave para criar uma nova partição.

    n 
  6. O prompt perguntará se você deseja fazer um primário ou partição estendida. Escolher p(primário).

    p. 
    Linux fdisk definir tipo de partição
  7. Escolha um número de partição. O padrão é 1, para a primeira partição, então use isso.

    1. 
    Linux fdisk definir número de partição
  8. Em seguida, ele pedirá que você escolha o primeiro setor. Não se preocupe muito com isso. Basta apertar Digitar para o padrão.

    Linux fdisk definir primeiro setor
  9. O próximo prompt permitirá que você escolha o tamanho de sua partição. Você pode especificar o tamanho da partição em megabytes (M) ou gigabytes (G). Supondo que você esteja configurando uma unidade para instalar o Linux, 512M é um bom lugar para começar para uma partição de boot.

    + 512M. 
    Linux fdisk definir tamanho da partição
  10. Depois de fazer isso, você pode ver sua nova partição novamente com o p chave.

    Partição Linux fdisk criada
  11. Se você planeja usar sua nova partição como partição de inicialização, será necessário ativar o sinalizador de inicialização. Faça isso pressionando uma. Em seguida, se solicitado, digite o número da partição. Se este for o único em sua unidade, é 1.

    uma
    1.
  12. Agora, você pode criar as outras partições em sua unidade. Comece inserindo n novamente.

  13. pressione 1 novamente para uma partição primária.

  14. Use o número da partição padrão. Se você está começando do zero, é 2.

  15. Use o primeiro setor padrão também. Ele começará imediatamente após a partição anterior. pressione Digitar continuar.

  16. Mais uma vez, escolha o tamanho da sua unidade. Se você está planejando configurar uma partição root com uma partição home separada, algo como + 20G funcionará bem. Se você quiser ocupar o resto do espaço disponível, basta clicar Digitar.

    + 20G. 
    Linux fdisk cria partições restantes
  17. Repita essas etapas para cada nova partição que deseja criar na unidade. Quando terminar, pressione C para gravar a tabela de partição na unidade.

    C. 
  18. Agora, você pode usar o comando mkfs para formatar as partições para uso. Para a maioria dos sistemas Linux, o sistema de arquivos EXT4 é o que você deseja, portanto, você pode executar o seguinte conjunto de comandos para configurar suas partições. Isso pressupõe que você está trabalhando em / dev / sda e que configurou partições home e raiz separadas.

    sudo mkfs.ext4 / dev / sda1
    sudo mkfs.ext4 / dev / sda2
    sudo mkfs.ext4 / dev / sda3.
    Partições de formato Linux
  19. Sua unidade recém-particionada e formatada está pronta para uso. Se você tem acompanhado, pode instalar e executar uma distribuição Linux como Arch Linux fora das partições que você acabou de criar.

Sinopse Fdisk

Aqui está uma análise técnica do fdisk e suas opções e recursos:

fdisk [-u] [-b tamanho do setor][-C cils] [-H cabeças] [-S seitasdispositivo

fdisk -l [-u] [dispositivo ...]

fdisk -s partição ...

fdisk -v

Fdisk e partições

Os discos rígidos podem ser divididos em um ou mais discos lógicos chamados partições. Esta divisão é descrita no tabela de partição encontrado no setor 0 do disco.

No mundo BSD, fala-se em 'fatias de disco' e um 'disklabel'.

O Linux precisa de pelo menos uma partição, ou seja, para sua raiz sistema de arquivo. Ele pode usar arquivos de swap e / ou partições de swap, mas o último é mais eficiente. Então, normalmente alguém vai querer uma segunda partição Linux dedicada como partição swap.

Em hardware compatível com Intel, o BIOS que inicializa o sistema, muitas vezes só pode acessar os primeiros 1024 cilindros do disco. Por este motivo, pessoas com discos grandes costumam criar uma terceira partição, com apenas alguns MB de tamanho, normalmente montada em /boot, para armazenar a imagem do kernel e alguns arquivos auxiliares necessários no momento da inicialização, de modo a ter certeza de que esse material está acessível para o BIOS.

Pode haver razões de segurança, facilidade de administração e backup, ou teste, para usar mais do que o número mínimo de partições.

Como funciona o Fdisk

fdisk (na primeira forma de chamada) é um programa baseado em menu para a criação e manipulação de tabelas de partição. Ele compreende tabelas de partição do tipo DOS e disklabels do tipo BSD ou SUN.

dispositivo geralmente é 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 discos XT).

(Um nome de dispositivo se refere a todo o disco.)

partição é um dispositivo nome seguido por um número de partição. Por exemplo, /dev/hda1 é a primeira partição no primeiro disco rígido IDE do sistema. Os discos podem ter até 15 partições. Veja também/usr/src/linux/Documentation/devices.txt.

Disklabel tipo BSD / SUN

Um disklabel do tipo BSD / SUN pode descrever 8 partições, a terceira das quais deve ser uma partição de 'disco inteiro'. Não inicie uma partição que realmente usa seu primeiro setor (como uma partição swap) no cilindro 0, pois isso destruirá o disklabel.

Disklabel tipo RIX / SGI

Um disklabel do tipo IRIX / SGI pode descrever 16 partições, a décima primeira das quais deve ser uma partição de 'volume' inteira, enquanto a nona deve ser rotulado como 'cabeçalho do volume'. O cabeçalho do volume também cobrirá a tabela de partição, ou seja, começa no bloco zero e se estende por padrão por cinco cilindros. O espaço restante no cabeçalho do volume pode ser usado pelas entradas do diretório do cabeçalho.

Nenhuma partição pode se sobrepor ao cabeçalho do volume. Também não mude seu tipo e crie algum sistema de arquivos nele, pois você perderá a tabela de partição. Use este tipo de etiqueta apenas ao trabalhar com Linux em máquinas IRIX / SGI ou discos IRIX / SGI em Linux.

Tabela de partição do tipo DOS

Uma tabela de partição do tipo 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 é uma caixa contendo partições lógicas, com descritores encontrados em uma lista vinculada de setores, cada um precedendo as partições lógicas correspondentes. As quatro partições primárias, presentes ou não, recebem os números 1-4. As partições lógicas começam a numerar a partir de 5.

Em uma tabela de partição do tipo DOS, o deslocamento inicial e o tamanho de cada partição são armazenados de duas maneiras: como um número absoluto de setores (dado em 32 bits) e como um triplo de Cilindros / Cabeças / Setores (dado em 10 + 8 + 6 bits). O primeiro está OK; com setores de 512 bytes, isso funcionará até 2 TB. Este último tem dois problemas diferentes. Em primeiro lugar, esses campos C / H / S podem ser preenchidos apenas quando o número de cabeças e o número de setores por trilha são conhecidos.

Em segundo lugar, mesmo que saibamos quais devem ser esses números, os 24 bits disponíveis não são suficientes. O DOS usa apenas C / H / S, janelas usa ambos, o Linux nunca usa C / H / S.

Geometria do Disco

Se possível, fdisk obterá a geometria do disco automaticamente. Esta não é necessariamente a geometria do disco físico (na verdade, os discos modernos não têm nada parecido com uma geometria física, certamente não algo que pode ser descrito na forma simplista de Cilindros / Cabeças / Setores), mas é a geometria do disco que o MS-DOS usa para a partição tabela.

Normalmente, tudo vai bem por padrão e não há problemas se o Linux for o único sistema no disco. No entanto, se o disco tiver que ser compartilhado com outros sistemas operacionais, geralmente é uma boa ideia deixar um fdisk de outro sistema operacional criar pelo menos uma partição. Quando o Linux é inicializado, ele examina a tabela de partição e tenta deduzir qual geometria (falsa) é necessária para uma boa cooperação com outros sistemas.

Checagem de Consistência

Sempre que uma tabela de partição é impressa, uma verificação de consistência é executada nas entradas da tabela de partição. Esta verificação verifica se os pontos de início e de extremidade físicos e lógicos são idênticos e se a partição começa e termina em um limite de cilindro (exceto para a primeira partição).

Algumas versões do MS-DOS criam uma primeira partição que não começa no limite do cilindro, mas no setor 2 do primeiro cilindro. As partições que começam no cilindro 1 não podem começar em um limite de cilindro, mas é improvável que isso cause dificuldade, a menos que você tenha OS / 2 em sua máquina.

Um sync () e um BLKRRPART ioctl () (reler a tabela de partição do disco) são executados antes de sair quando a tabela de partição foi atualizada. Há muito tempo, era necessário reiniciar após o uso do fdisk. Não acho mais que seja esse o caso; na verdade, reinicializar muito rapidamente pode causar perda de dados ainda não gravados. Observe que tanto o kernel quanto o hardware do disco podem armazenar dados em buffer.

Aviso do Dos 6.x

O comando DOS 6.x FORMAT procura algumas informações no primeiro setor da área de dados da partição e trata essas informações como mais confiáveis ​​do que as informações na tabela de partição. O DOS FORMAT espera que o DOS FDISK limpe os primeiros 512 bytes da área de dados de uma partição sempre que ocorrer uma alteração de tamanho. O DOS FORMAT examinará essas informações extras mesmo se o sinalizador / U for fornecido - consideramos isso um bug no DOS FORMAT e no DOS FDISK.

O resultado final é que se você usar cfdisk ou fdisk para alterar o tamanho de uma entrada da tabela de partição DOS, você também deve usar dd para zerar os primeiros 512 bytes dessa partição antes de usar o DOS FORMAT para formatar a partição. Por exemplo, se você estava usando o cfdisk para criar uma entrada na tabela de partição DOS para / dev / hda1, então (após sair do fdisk ou cfdisk e reinicializar Linux para que as informações da tabela de partição sejam válidas), você usaria o comando "dd if = / dev / zero of = / dev / hda1 bs = 512 count = 1" para zerar o primeiros 512 bytes da partição.

Seja extremamente cuidadoso se você usar o dd, uma vez que um pequeno erro de digitação pode tornar todos os dados do seu disco inúteis.

Para obter os melhores resultados, você deve sempre usar um programa de tabela de partição específico do sistema operacional. Por exemplo, você deve fazer partições DOS com o programa DOS FDISK e Linux partições com o programa Linux fdisk ou Linux cfdisk.

Opções de fdisk

-b tamanho do setor: Especifique o tamanho do setor do disco. Os valores válidos são 512, 1024 ou 2048. (Kernels recentes sabem o tamanho do setor. Use isso apenas em kernels antigos ou para substituir as idéias do kernel.)

-C cils: Especifique o número de cilindros do disco. Não temos ideia de por que alguém iria querer fazer isso.

-H cabeças: Especifique o número de cabeças do disco. (Não o número físico, é claro, mas o número usado para tabelas de partição.) Os valores razoáveis ​​são 255 e 16.

-S seitas: Especifique o número de setores por trilha do disco. (Não o número físico, é claro, mas o número usado para tabelas de partição.) Um valor razoável é 63.

-eu: Liste as tabelas de partição para os dispositivos especificados e saia. Se nenhum dispositivo for fornecido, aqueles mencionados em /proc/partitions (se existir) são usados.

-você: Ao listar as tabelas de partição, forneça os tamanhos em setores em vez de cilindros.

-s partição: Tamanho da partição (em blocos) é impresso na saída padrão.

-v: Imprimir o número da versão de fdisk programar e sair.