As partições não devem se sobrepor ... mas o que você tem aqui é uma " partição estendida ". Com partições estendidas, você cria uma partição " parent " que contém outras, permitindo que você tenha mais que as 4 partições suportadas por um MBR .
Para fazer uso do seu espaço extra, você precisa excluir e recriar cuidadosamente as partições ...
Meu exemplo usa um arquivo de 100MB que particionei, coloque um sistema de arquivos.
$ fdisk disk.dd <<<"p"
Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): Disk disk.dd: 100 MiB, 104857600 bytes, 204800 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xcff1f22d
Device Boot Start End Sectors Size Id Type
disk.dd1 2048 43007 40960 20M 83 Linux
disk.dd2 43008 204799 161792 79M 5 Extended
disk.dd5 45056 204799 159744 78M 83 Linux
Eu então estendo o arquivo (isso tem um efeito muito semelhante ao que você fez):
$ truncate -s 200M disk.dd
Agora, devemos excluir todas as partições contidas pela partição estendida e, em seguida, a própria partição estendida:
$ fdisk disk.dd
Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): d
Partition number (1,2,5, default 5): 5
Partition 5 has been deleted.
Command (m for help): d
Partition number (1,2, default 2): 2
Partition 2 has been deleted.
Command (m for help): p
Disk disk.dd: 200 MiB, 209715200 bytes, 409600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xcff1f22d
Device Boot Start End Sectors Size Id Type
disk.dd1 2048 43007 40960 20M 83 Linux
Depois, devemos recriar as partições, certificando-se de que os setores Iniciar correspondam aos originais exatamente (isso usa meus números, não os seus). Em seguida, escreva as alterações.
Aqui estou usando os padrões (basta pressionar partições retornadas no início e torná-las o maior possível) ... Você pode dar valores se quiser manter algum espaço para outras partições.
Command (m for help): n
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p): e
Partition number (2-4, default 2):
First sector (43008-409599, default 43008): 43008
Last sector, +sectors or +size{K,M,G,T,P} (43008-409599, default 409599):
Created a new partition 2 of type 'Extended' and of size 179 MiB.
Command (m for help): n
All space for primary partitions is in use.
Adding logical partition 5
First sector (45056-409599, default 45056):
Last sector, +sectors or +size{K,M,G,T,P} (45056-409599, default 409599):
Created a new partition 5 of type 'Linux' and of size 178 MiB.
Command (m for help): p
Disk disk.dd: 200 MiB, 209715200 bytes, 409600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xcff1f22d
Device Boot Start End Sectors Size Id Type
disk.dd1 2048 43007 40960 20M 83 Linux
disk.dd2 43008 409599 366592 179M 5 Extended
disk.dd5 45056 409599 364544 178M 83 Linux
Command (m for help): w
The partition table has been altered.
Synching disks.
Não se esqueça de manter o tipo de partição. No exemplo, o padrão ( 83
) é bom, mas você vai querer usar t
para definir o tipo de volta para 8e
.
Agora, você pode precisar executar partprobe
, fornecendo seu dispositivo (por exemplo: /dev/sda
). Isso fará com que o sistema recarregue a tabela de partições. Use lsblk
para verificar se os tamanhos das partições parecem corretos.
Finalmente, redimensione o sistema de arquivos. Isso pode ser feito enquanto estiver online (montado). Se não estiver montado, provavelmente será solicitado que você execute uma "verificação completa e corrija" primeiro:
$ e2fsck -f /dev/loop1
e2fsck 1.42.13 (17-May-2015)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/loop1: 12/20000 files (0.0% non-contiguous), 8180/79872 blocks
$ resize2fs /dev/loop1
resize2fs 1.42.13 (17-May-2015)
Resizing the filesystem on /dev/loop1 to 182272 (1k) blocks.
The filesystem on /dev/loop1 is now 182272 (1k) blocks long.
Agora, quando o sistema de arquivos for remontado, você verá o espaço extra desejado:
$ mount /dev/loop1 ./mnt
$ df -h mnt
Filesystem Size Used Avail Use% Mounted on
/dev/loop1 169M 1.6M 155M 1% /home/attie/box/so/mnt
$ cat mnt/test
hello world
Você apontou (em um comentário) que não conseguiu colocar o início da partição 5 onde deveria estar - fdisk
estava fornecendo um intervalo incompatível.
Para consertar isso, você precisará criar a partição 5 como por normal ... mas use o valor inicial padrão incorreto que é alguns setores maiores que o valor desejado. Depois que a partição tiver sido criada, você poderá entrar no modo especialista ( x
) e colocar a partida mais manualmente. Então retorne ao modo normal ( r
) e reimprima a tabela ... se os números parecerem bons, então escreva ( w
).
No meu exemplo abaixo, criei a partição e usei o valor padrão que fdisk
provided (45056) ... Então, uso o modo expert para definir o valor " correto " ( 43010), que de outra forma estaria fora do alcance.
Command (m for help): p
Disk disk.dd: 200 MiB, 209715200 bytes, 409600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xa11ae080
Device Boot Start End Sectors Size Id Type
disk.dd1 2048 43007 40960 20M 83 Linux
disk.dd2 43008 409599 366592 179M 5 Extended
disk.dd5 45056 409599 364544 178M 83 Linux
Command (m for help): x
Expert command (m for help): b
Partition number (1,2,5, default 5): 5
New beginning of data (43009-409599, default 45056): 43010
Expert command (m for help): r
Command (m for help): p
Disk disk.dd: 200 MiB, 209715200 bytes, 409600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xa11ae080
Device Boot Start End Sectors Size Id Type
disk.dd1 2048 43007 40960 20M 83 Linux
disk.dd2 43008 409599 366592 179M 5 Extended
disk.dd5 43010 409599 366590 179M 83 Linux
Eu tive um pequeno remexer nas fontes fdisk
, mas não pude ver claramente por que ele estava adicionando esse buffer de ~ 1MB ... Como seu disco já está configurado sem ele, as coisas devem ficar bem.