O fdisk
Com o fdisk podemos criar novas partições em um disco, até 4 partições primárias e inúmeras partições lógicas, dependendo somente do tamanho do disco (levando em conta que cada partição requer um mínimo de 40MB). Também podemos modificar ou deletar partições já existentes ou recém criadas no disco.
Neste artigo vamos ver alguns exemplos práticos de como trabalhar com o fdisk. ATENÇÃO: Não crie, modifique ou apague partições do seu disco se você não sabe o que está fazendo, ou perderá todos os dados em disco. Vamos lá, mãos a obra… Visualizando as partições no HDAntes de criar uma nova partição, modificar ou deletar, você vai precisar dar uma olhada em todas as partições que existem no disco. Então para esta missão vamos usar o “fdisk -l”, como abaixo: # fdisk -l Disco /dev/sda: 320.1 GB, 320072933376 bytes 255 heads, 63 sectors/track, 38913 cylinders Unidades = cilindros de 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Identificador do disco: 0x0003e877 Dispositivo Boot Início Fim Blocos Id Sistema /dev/sda1 * 1 9914 79629573+ 83 Linux /dev/sda2 9914 38914 232939521 5 Estendida /dev/sda5 38166 38914 6007808 82 Linux swap / Solaris /dev/sda6 19429 37418 144494592 83 Linux /dev/sda7 37418 38165 6005760 82 Linux swap / Solaris /dev/sda8 9914 19036 73268224 83 Linux /dev/sda9 19036 19429 3154944 82 Linux swap / Solaris Outro exemplo: # fdisk -l Disk /dev/sda: 80.0 GB, 80026361856 bytes 255 heads, 63 sectors/track, 9729 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0xf6edf6ed Device Boot Start End Blocks Id System /dev/sda1 1 1959 15735636 c W95 FAT32 (LBA) /dev/sda2 1960 5283 26700030 f W95 Ext'd (LBA) /dev/sda3 5284 6528 10000462+ 7 HPFS/NTFS /dev/sda4 6529 9729 25712032+ c W95 FAT32 (LBA) /dev/sda5 * 1960 2661 5638752 83 Linux /dev/sda6 2662 2904 1951866 83 Linux /dev/sda7 2905 3147 1951866 83 Linux /dev/sda8 3148 3264 939771 82 Linux swap / Solaris O comando lista todas as partições de todos os discos conectados. No caso de ter vários discos, eles serão mostrados na ordem de dispositivo /dev. Exemplo: /dev/sda, /dev/sdb, /dev/sdc e assim por diante. |
|
Ver disco específico e comandos disponíveis
Para ver apenas as partições de um determinado disco podemos incluir no comando o nome do disco como segue:
# fdisk -l /dev/sda Para ver o “help” com todos os comandos que podem ser usados no disco podemos usar o fdisk sem a opção “-l” e usar o comando “m”, como no exemplo: # fdisk /dev/sda Comando (m para ajuda): m Comando - ação a alterna a opção "inicializável" b edita rótulo BSD no disco c alterna a opção "compatibilidade" d exclui uma partição l lista os tipos de partição conhecidos m mostra este menu n cria uma nova partição o cria uma nova tabela de partições DOS vazia p mostra a tabela de partições q sai sem salvar as alterações s cria um novo rótulo de disco Sun vazio t altera a identificação da partição para o sistema u altera as unidades das entradas mostradas v verifica a tabela de partições w grava a tabela no disco e sai x funcionalidade adicional (somente para usuários avançados) Pronto, agora que sabemos as opções disponíveis para usar com o fdisk, vamos em frente. Deletando uma partição do HDDigamos que você queira deletar algumas partições do disco. Primeiro vamos ver as partições, usando agora o comando “p”, faça o seguinte: # fdisk /dev/sda Comando (m para ajuda): p Disco /dev/sda: 320.1 GB, 320072933376 bytes 255 heads, 63 sectors/track, 38913 cylinders, total de 625142448 setores Unidades = setores de 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Identificador do disco: 0x0003e877 Dispositivo Boot Início Fim Blocos Id Sistema /dev/sda1 * 2048 159261194 79629573+ 83 Linux /dev/sda2 159262718 625141759 232939521 5 Estendida /dev/sda5 613126144 625141759 6007808 82 Linux swap / Solaris /dev/sda6 312117248 601106431 144494592 83 Linux /dev/sda7 601108480 613119999 6005760 82 Linux swap / Solaris /dev/sda8 159262720 305799167 73268224 83 Linux /dev/sda9 305801216 312111103 3154944 82 Linux swap / Solaris Visto, vamos deletar sda6, sda7 e sda8 usando o comando “d”, desta maneira: Comando (m para ajuda): d Número da partição (1-9): 6 Comando (m para ajuda): d Número da partição (1-9): 7 Comando (m para ajuda): d Número da partição (1-9): 8 E gravar as alterações usando o comando “w”, assim: Comando (m para ajuda): w A tabela de partições foi alterada! Chamando ioctl() para reler tabela de partições. WARNING: Re-reading the partition table failed with error 16: Dispositivo ou recurso está ocupado. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Sincronizando discos. Prontinho, partições apagadas. E agora? |
|
Criando uma nova partição
Podemos criar uma nova partição de um tamanho específico utilizando o comando “n”, conforme abaixo:
Comando (m para ajuda): n Comando - ação l lógica (5 ou superior) p partição primária (1-4) l Primeiro setor (305801216-625141759, padrão 305801216): Usando valor padrão 305801216 Last setor, +setores or +size{K,M,G} (305801216-312111103, padrão 312111103): Usando valor padrão 312111103 No caso o comando perguntou se desejava criar uma partição lógica ou uma partição primária, para o caso escolhi uma partição lógica teclando “l”. Logo o comando faz as perguntas que vão definir o tamanho e a localização da partição. Pergunta o cilindro de início da partição e o cilindro em que ela vai acabar ou o tamanho que ela terá, usando K para kilobytes, M para megabytes ou G para gigabytes. No caso simplesmente dei “enter” para usar os valores padrão e todo o espaço disponível em disco para a partição. Lembre-se que a cada modificação é preciso salvar: Comando (m para ajuda): w A tabela de partições foi alterada! Chamando ioctl() para reler tabela de partições. WARNING: Re-reading the partition table failed with error 16: Dispositivo ou recurso está ocupado. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Sincronizando discos. Depois de criada a partição deve ser formatada com o comando “mkfs”, de acordo com o tipo de sistema de arquivos desejado. Digamos que tenhamos criado a partição “9”, alguns exemplos seriam: 1) Para ext4: # mkfs.ext4 /dev/sda9 2) Para reiserfs: # mkfs.reiserfs /dev/sda9 3) Para ntfs (Windows XP e outros): # mkfs.ntfs /dev/sda9 Partição criada e formatada, agora é só usar. Ver o tamanho de uma partiçãoPara ver o tamanho de uma partição podemos usar a opção “-s” como no exemplo: # fdisk -s /dev/sda9 O número apresentado é o tamanho da partição em blocos, para este caso isso equivale a cerca de 3100MB. Outros exemplos: # fdisk -s /dev/sda1 ou # fdisk -s /dev/sda5 Confira que usando o comando “p” também será apresentada uma coluna com os tamanhos das partições. Confira se está de acordo: Comando (m para ajuda): p Disco /dev/sda: 320.1 GB, 320072933376 bytes 255 heads, 63 sectors/track, 38913 cylinders Unidades = cilindros de 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Identificador do disco: 0x0003e877 Dispositivo Boot Início Fim Blocos Id Sistema /dev/sda1 * 1 9914 79629573+ 83 Linux /dev/sda2 9914 38914 232939521 5 Estendida /dev/sda5 38166 38914 6007808 82 Linux swap / Solaris /dev/sda6 19429 37418 144494592 83 Linux /dev/sda7 37418 38165 6005760 82 Linux swap / Solaris /dev/sda8 9914 19036 73268224 83 Linux /dev/sda9 19036 19429 3154944 83 Linux Fácil, não é? |
|
Marcando partições de boot
O fdisk mostra as partições de boot marcadas com um “*”, veja:
Comando (m para ajuda): p Disco /dev/sda: 320.1 GB, 320072933376 bytes 255 heads, 63 sectors/track, 38913 cylinders Unidades = cilindros de 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Identificador do disco: 0x0003e877 Dispositivo Boot Início Fim Blocos Id Sistema /dev/sda1 * 1 9914 79629573+ 83 Linux /dev/sda2 9914 38914 232939521 5 Estendida /dev/sda5 38166 38914 6007808 82 Linux swap / Solaris /dev/sda6 19429 37418 144494592 83 Linux /dev/sda7 37418 38165 6005760 82 Linux swap / Solaris /dev/sda8 9914 19036 73268224 83 Linux /dev/sda9 19036 19429 3154944 83 Linux No caso a partição 1 ou /dev/sda1 é que está marcada. O comando “a” serve para marcar ou desmarcar a partição como de boot. Então se quisermos desmarcar a partição 1, faríamos: Comando (m para ajuda): a Número da partição (1-9): 1 Não esqueça de gravar as alterações usando o comando “w”, assim: Comando (m para ajuda): w A tabela de partições foi alterada! Chamando ioctl() para reler tabela de partições. WARNING: Re-reading the partition table failed with error 16: Dispositivo ou recurso está ocupado. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Sincronizando discos. Para confirmar se a alteração foi feita: Comando (m para ajuda): p Disco /dev/sda: 320.1 GB, 320072933376 bytes 255 heads, 63 sectors/track, 38913 cylinders Unidades = cilindros de 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Identificador do disco: 0x0003e877 Dispositivo Boot Início Fim Blocos Id Sistema /dev/sda1 1 9914 79629573+ 83 Linux /dev/sda2 9914 38914 232939521 5 Estendida /dev/sda5 38166 38914 6007808 82 Linux swap / Solaris /dev/sda6 19429 37418 144494592 83 Linux /dev/sda7 37418 38165 6005760 82 Linux swap / Solaris /dev/sda8 9914 19036 73268224 83 Linux /dev/sda9 19036 19429 3154944 83 Linux Agora para marcar a partição 6 seria: Comando (m para ajuda): a Número da partição (1-9): 6 Entendido? Vamos adiante. |
|
Corrigindo a ordem da tabela de partições
Quando você deleta partições e cria outras a ordem das partições no disco fica alterada. Se, por exemplo, deletamos as partições 2, 3 e 4 e neste espaço criamos uma nova partição que ficará sendo a partição 2, o sistema ficará com a ordem quebrada, terá no exemplo as partições 1, 2, 5, 6 etc. Veja como fica:
Comando (m para ajuda): p Disco /dev/sda: 320.1 GB, 320072933376 bytes 255 heads, 63 sectors/track, 38913 cylinders Unidades = cilindros de 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Identificador do disco: 0x0003e877 Dispositivo Boot Início Fim Blocos Id Sistema /dev/sda1 * 1 9914 79629573+ 83 Linux /dev/sda2 9914 38914 232939521 5 Estendida /dev/sda5 38166 38914 6007808 82 Linux swap / Solaris /dev/sda6 19429 37418 144494592 83 Linux /dev/sda7 37418 38165 6005760 82 Linux swap / Solaris /dev/sda8 9914 19036 73268224 83 Linux /dev/sda9 19036 19429 3154944 83 Linux Partições lógicas fora da ordem do disco Para corrigir isso usamos o comando “f”, como ele não consta da lista de comandos precisamos ativar as funcionalidades adicionais por meio do comando “x”, fica então desta forma: Comando (m para ajuda): x Comando avançado (m para ajuda): f Concluído. Gravamos a modificação: Comando (m para ajuda): w A tabela de partições foi alterada! Chamando ioctl() para reler tabela de partições. WARNING: Re-reading the partition table failed with error 16: Dispositivo ou recurso está ocupado. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Sincronizando discos. Vamos confirmar com o comando “p” e ver que a mensagem de partições lógicas fora de ordem desapareceu, embora a ordem sda1, sda2, sda5, sda6 etc não tenha se alterado a ordem internamente para o sistema foi corrigida: Comando (m para ajuda): p Disco /dev/sda: 320.1 GB, 320072933376 bytes 255 heads, 63 sectors/track, 38913 cylinders Unidades = cilindros de 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Identificador do disco: 0x0003e877 Dispositivo Boot Início Fim Blocos Id Sistema /dev/sda1 * 1 9914 79629573+ 83 Linux /dev/sda2 9914 38914 232939521 5 Estendida /dev/sda5 9914 19036 73268224 83 Linux /dev/sda6 19036 19429 3154944 83 Linux /dev/sda7 19429 37418 144494592 83 Linux /dev/sda8 37418 38165 6005760 82 Linux swap / Solaris /dev/sda9 38166 38914 6007808 82 Linux swap / Solaris Bem, era isso! |