1: não precisa fazer nada com partições primárias / estendidas / lógicas.
2: Eu acho que você queria dizer "lógica" partição em vez de "estendida".
3: O mkfs acha que o tamanho da sua partição é de 0 bytes. Foi muito certo, porque o kernel não foi capaz de atualizar a tabela de partições depois de um reparticionamento. Depois de editar a tabela de partições, você não recebeu alguns avisos sobre a necessidade de reinicialização?
No Linux, há duas tabelas de partições diferentes: existe uma no bloco zeroth do disco rígido. E há um na memória do kernel. Você pode ler o primeiro com um comando fdisk -l /dev/sda
. E o segundo você pode ler com um comando cat /proc/partitions
. Estes dois precisam estar em sincronia, mas nem sempre é possível. Por exemplo, você não pode alterar os limites de uma partição usada atualmente. Neste caso, a tabela de partição do kernel não será alterada.
Você pode deixar o kernel reler a tabela de partições de disco com o comando blockdev --rereadpt /dev/sda
. A maioria das ferramentas de particionamento executa este comando depois de escrever sua tabela de partição recém-alterada no disco.
O problema é que somente kernels linux mais novos são capazes de reler uma tabela de partição de um disco rígido usado. Deste ponto de vista, um disco rígido é considerado "usado" se houver uma partição simples que seja usada nela, seja por uma ferramenta ou por um ponto de montagem ou por uma partição ativa.
E até mesmo esses novos kernels não podem alterar os limites de uma partição sendo usada atualmente.
Eu acho que o seu sistema de raiz está em /dev/sda
, então você precisa fazer uma reinicialização depois de fazer um reparticionamento.