Eu gostaria de fazer uma extensão da resposta de @ Søren Løvborg: estendendo a partição com uma partição swap presente.
Primeiro o layout do disco após estendê-lo:
$sudo parted /dev/sda 'unit s print' free
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 14336000s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
63s 2047s 1985s Free Space
1 2048s 10485759s 10483712s primary ext4 boot
10485760s 10487805s 2046s Free Space
2 10487806s 12580863s 2093058s extended
5 10487808s 12580863s 2093056s logical linux-swap(v1)
12580864s 14335999s 1755136s Free Space
Portanto, o sda1 precisa ser estendido com o espaço livre no final do disco, mas a partição swap está entre eles. É assim que você pode fazer:
Primeiro, precisamos desativar a troca. Verifique quanto é usado e se você pode desligá-lo.
$ free -h
total used free shared buff/cache available
Mem: 992M 52M 464M 3.2M 475M 784M
Swap: 1.0G 0B 1.0G
troca não é usada aqui para que possamos desativá-la
$sudo swapoff /dev/sda5
Agora vamos mudar a tabela de partição:
$sudo fdisk /dev/sda
(nota: se a primeira partição iniciar no setor 63, em vez de 2048, você precisará adicionar a opção -c=dos
)
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): p
Disk /dev/sda: 6.9 GiB, 7340032000 bytes, 14336000 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: 0x9e11c6df
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 10485759 10483712 5G 83 Linux
/dev/sda2 10487806 12580863 2093058 1022M 5 Extended
/dev/sda5 10487808 12580863 2093056 1022M 82 Linux swap / Solaris
Command (m for help): d
Partition number (1,2,5, default 5): 2
Partition 2 has been deleted.
Command (m for help): d
Selected partition 1
Partition 1 has been deleted.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-14335999, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-14335999, default 14335999): 12242941
Created a new partition 1 of type 'Linux' and of size 5.9 GiB.
Command (m for help): n
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2): 2
First sector (12242942-14335999, default 12242944):
Last sector, +sectors or +size{K,M,G,T,P} (12242944-14335999, default 14335999):
Created a new partition 2 of type 'Linux' and of size 1022 MiB.
Command (m for help): a
Partition number (1,2, default 2): 1
The bootable flag on partition 1 is enabled now.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Device or resource busy
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).
Nota: o tamanho de sda1 é a quantidade total de setores menos o tamanho do setor da sua partição de swap: 14335999-2093058 = 12242941
Como o fdisk menciona: o kernel ainda está usando a tabela de partições antiga, portanto, precisamos recarregá-lo.
$partprobe
Agora precisamos executar o resize2fs no sda1 (não esqueça disso!)
$resize2fs /dev/sda1
resize2fs 1.42.12 (29-Aug-2014)
Filesystem at /dev/sda1 is mounted on /; on-line resizing required
old_desc_blocks = 3, new_desc_blocks = 10
The filesystem on /dev/sda1 is now 38833617 (4k) blocks long.
Agora, as coisas ainda não acabaram. Como você provavelmente notou, o sda2 está particionado como tipo Linux (Ext4). Por alguma razão, no fdisk não há como escolher o tipo. Então nós temos que alternar usandocfdisk
$ sudo cfdisk
Escolha sda2 e altere o tipo para 82 Linux swap / Solaris
e certifique-se de escrevê-lo (digite yes para confirmar)
Agora podemos reativar a troca
$mkswap /dev/sda2
/dev/sda2
UUID=d58bf1cb-d27a-487d-b337-056767fd5ad6 none swap sw 0 0
E, finalmente, ative:
$swapon /dev/sda2
A única coisa que precisamos fazer é atualizar o fstab para montar a partição swap automaticamente após a inicialização
$sudo nano /etc/fstab
E mude o UUID da partição swap para a saída acima:
# swap was on /dev/sda5 during installation
UUID=d58bf1cb-d27a-487d-b337-056767fd5ad6 none swap sw 0 0
Agora está tudo bem e você pode reiniciar sem problemas.