Chciałbym rozszerzyć odpowiedź na @ Søren Løvborg: rozszerzenie partycji z obecną partycją wymiany.
Najpierw układ dysku po rozszerzeniu:
$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
Tak więc sda1 musi zostać rozszerzony o wolne miejsce na końcu dysku, ale partycja wymiany jest pomiędzy nimi. Oto jak możesz to zrobić:
Najpierw musimy wyłączyć swap. Sprawdź, ile zużywa i czy możesz to wyłączyć.
$ free -h
total used free shared buff/cache available
Mem: 992M 52M 464M 3.2M 475M 784M
Swap: 1.0G 0B 1.0G
swap nie jest tutaj używany, więc możemy go wyłączyć
$sudo swapoff /dev/sda5
Teraz zmienimy tablicę partycji:
$sudo fdisk /dev/sda
(uwaga: jeśli zdarzy się, że pierwsza partycja zacznie się od sektora 63 zamiast 2048, musisz dodać opcję -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).
Uwaga: rozmiar sda1 to całkowita liczba sektorów minus rozmiar sektora partycji wymiany: 14335999-2093058 = 12242941
Jak wspomina fdisk: jądro nadal używa starej tablicy partycji, więc musimy ją ponownie załadować.
$partprobe
Teraz musimy uruchomić resize2fs na sda1 (nie zapomnij tego!)
$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.
Teraz jeszcze się nie skończyło. Jak zapewne zauważyłeś, sda2 jest podzielony na partycje jako typ Linux (Ext4). Z jakiegoś powodu fdisk nie ma możliwości wyboru typu. Musimy to na przemian za pomocącfdisk
$ sudo cfdisk
Wybierz sda2 i zmień typ na 82 Linux swap / Solaris
i pamiętaj, aby go napisać (wpisz „tak”, aby potwierdzić)
Teraz możemy ponownie aktywować swap
$mkswap /dev/sda2
/dev/sda2
UUID=d58bf1cb-d27a-487d-b337-056767fd5ad6 none swap sw 0 0
I wreszcie włącz:
$swapon /dev/sda2
Jedyne, co musimy zrobić, to zaktualizować fstab, aby automatycznie instalował partycję wymiany podczas uruchamiania
$sudo nano /etc/fstab
I zmień UUID partycji wymiany na powyższe dane wyjściowe:
# swap was on /dev/sda5 during installation
UUID=d58bf1cb-d27a-487d-b337-056767fd5ad6 none swap sw 0 0
Teraz wszystko jest w porządku i możesz ponownie uruchomić komputer bez problemów.