Vorrei fare un'estensione sulla risposta di @ Søren Løvborg: estendere la partizione con una partizione di swap presente.
Innanzitutto il layout del disco dopo averlo esteso:
$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
Quindi sda1 deve essere esteso con lo spazio libero alla fine del disco, ma la partizione di swap è tra di loro. Ecco come puoi farlo:
Per prima cosa dobbiamo disabilitare lo scambio. Controlla quanto viene utilizzato e se è possibile disattivarlo.
$ free -h
total used free shared buff/cache available
Mem: 992M 52M 464M 3.2M 475M 784M
Swap: 1.0G 0B 1.0G
lo swap non è utilizzato qui, quindi possiamo disattivarlo
$sudo swapoff /dev/sda5
Ora cambieremo la tabella delle partizioni:
$sudo fdisk /dev/sda
(nota: se la prima partizione inizia nel settore 63 anziché nel 2048, è necessario aggiungere l'opzione -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: la dimensione di sda1 è la quantità totale di settori meno la dimensione del settore della partizione di swap: 14335999-2093058 = 12242941
Come menziona fdisk: il kernel sta ancora usando la vecchia tabella delle partizioni, quindi dobbiamo ricaricarla.
$partprobe
Ora dobbiamo eseguire resize2fs su sda1 (non dimenticarlo!)
$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.
Ora, le cose non sono ancora finite. Come probabilmente avrai notato, sda2 è partizionato come tipo Linux (Ext4). Per qualche motivo, in fdisk non è possibile scegliere il tipo. Quindi dobbiamo alternarlo usandocfdisk
$ sudo cfdisk
Scegli sda2 e modifica il tipo in 82 Linux swap / Solaris
e assicurati di scriverlo (digitare yes per confermare)
Ora possiamo riattivare lo swap
$mkswap /dev/sda2
/dev/sda2
UUID=d58bf1cb-d27a-487d-b337-056767fd5ad6 none swap sw 0 0
E infine accenderlo:
$swapon /dev/sda2
L'unica cosa che dobbiamo fare è aggiornare fstab per montare automaticamente la partizione di swap all'avvio
$sudo nano /etc/fstab
E cambia l'UUID della partizione di swap nell'output sopra:
# swap was on /dev/sda5 during installation
UUID=d58bf1cb-d27a-487d-b337-056767fd5ad6 none swap sw 0 0
Ora va tutto bene e puoi riavviare senza problemi.