Po zwiększeniu dysku w Twoim VPS Linux Infrawire dysk wirtualny jest większy, ale partycja i system plików nadal mają stary rozmiar. Oba trzeba powiększyć ręcznie, na działającym systemie, bez odmontowywania roota.
Poradnik obejmuje zwykłe partycje (ext4 i XFS) oraz konfiguracje LVM na Ubuntu 24.04, Debian 12, AlmaLinux 9 i Rocky 9.
📋 Wymagania
- VPS z już powiększonym dyskiem (nowy rozmiar widać w
lsblk) - Dostęp SSH jako root (IP i hasło roota znajdziesz w panelu klienta)
- Świeża kopia zapasowa ważnych danych
1. Kopia zapasowa przed zmianami w partycjach
Zmiana rozmiaru zamontowanego systemu plików ext4 lub XFS to rutyna, ale błąd w tablicy partycji może zniszczyć dane. Najpierw zabezpiecz to, co ważne:
Bash# Zarchiwizuj dane, których nie możesz stracić tar -czf /root/backup-etc.tar.gz /etc rsync -avz /var/www/ USER@BACKUP_HOST:/backups/www/ # Zapisz tablicę partycji (przyda się do przywrócenia) sfdisk -d /dev/vda > /root/vda-partition-table.txt
2. Rozpoznaj dysk, partycję i system plików
Bashlsblk -f df -hT /
Typowy wynik: dysk vda 80G, partycja vda1 40G zamontowana w /, system plików ext4 lub xfs. Jeśli root leży na /dev/mapper/..., używasz LVM: zobacz sekcję 5. Dysk może się też nazywać sda lub nvme0n1 (partycje kończą się wtedy na p1).
3. Powiększ partycję za pomocą growpart
Zainstaluj narzędzie. W Ubuntu i Debianie pakiet nazywa się cloud-guest-utils, w AlmaLinux i Rocky cloud-utils-growpart:
Bash# Ubuntu / Debian apt update && apt install -y cloud-guest-utils # AlmaLinux / Rocky dnf install -y cloud-utils-growpart
Następnie powiększ partycję numer 1 dysku /dev/vda (zwróć uwagę na spację między dyskiem a numerem):
Bashgrowpart /dev/vda 1
Jeśli komunikat brzmi NOCHANGE, partycja zajmuje już całą przestrzeń. Niektóre obrazy mają za rootem małą partycję (np. swap): wtedy growpart nie może powiększyć roota i trzeba najpierw usunąć lub przenieść tę partycję.
Sprawdź, czy jądro widzi nowy rozmiar:
Bashlsblk /dev/vda # Jeśli nadal widać stary rozmiar: partprobe /dev/vda
4. Powiększ system plików
Użyj polecenia odpowiedniego dla typu systemu plików (pokazuje go lsblk -f).
Dla ext4:
Bashresize2fs /dev/vda1
Dla XFS (domyślny w AlmaLinux i Rocky). Argumentem jest punkt montowania, a nie urządzenie, a XFS można tylko powiększać, nigdy zmniejszać:
Bashxfs_growfs /
5. Przypadek LVM: pvresize i lvextend
Gdy wolumen logiczny roota leży na LVM, dochodzi jeszcze jedna warstwa: partycja, wolumen fizyczny, wolumen logiczny, a na końcu system plików.
Bashlsblk pvs && vgs && lvs # 1. Powiększ partycję zawierającą wolumen fizyczny (tu vda3) growpart /dev/vda 3 # 2. Poinformuj LVM, że wolumen fizyczny jest większy pvresize /dev/vda3 # 3. Powiększ wolumen logiczny i jego system plików jednym poleceniem (-r) lvextend -r -l +100%FREE /dev/mapper/VG_NAME-LV_NAME
Opcja -r sama wywołuje właściwe narzędzie (resize2fs lub xfs_growfs). Dopasuj VG_NAME-LV_NAME do wyniku lvs, np. /dev/ubuntu-vg/ubuntu-lv. Aby użyć tylko części wolnego miejsca, zamień -l +100%FREE na -L +10G.
6. Sprawdź wynik
Bashdf -h / lsblk
Kolumna Size w df -h powinna teraz odpowiadać nowej pojemności, a lsblk powinien pokazywać partycję wypełniającą cały dysk. Restart nie jest potrzebny, a aplikacje działają przez cały czas.
🛠️ Rozwiązywanie problemów
growpart: command not found: pakiet nie jest zainstalowany. Zainstaluj cloud-guest-utils (apt) lub cloud-utils-growpart (dnf).
NOCHANGE: partition 1 could not be grown: albo dysk nie został faktycznie powiększony (porównaj lsblk z zamówieniem), albo tuż za partycją jest inna. Sprawdź przez fdisk -l /dev/vda.
resize2fs: Bad magic number in super-block: system plików to prawdopodobnie XFS, a nie ext4. Uruchom lsblk -f i użyj xfs_growfs /.
xfs_growfs: / is not a mounted XFS filesystem: podano nazwę urządzenia albo system plików to ext4. Podaj punkt montowania i najpierw sprawdź typ.
lvextend zgłasza brak wolnych extentów: pominięto growpart lub pvresize. Uruchom pvs i sprawdź kolumnę PFree.
🎉 Dodatkowe miejsce na dysku jest już dostępne: bez restartu, bez przestoju, a df -h to potwierdza!