Centos 7 Rozszerz partycję o nieprzydzielone miejsce

16

Mam serwer Centos 7 (CentOS Linux release 7.3.1611 (Core))Kiedy zaktualizowałem mój serwer, zobaczyłem błąd, że potrzebujesz dodatkowej przestrzeni. Ale miałem 20 GB dysku na serwerze, kiedy sprawdzałem miejsca na dysku, zobaczyłem, że utworzono tylko partycję 4,5 GB, a partycja 16 GB to wolne miejsce bez nieprzydzielonego miejsca. Jak mogę rozszerzyć partycję z 16 GB wolnego miejsca?

lsblk:

NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
fd0               2:0    1    4K  0 disk
sda               8:0    0   20G  0 disk
├─sda1            8:1    0  500M  0 part /boot
└─sda2            8:2    0  4.5G  0 part
  ├─centos-root 253:0    0    4G  0 lvm  /
  └─centos-swap 253:1    0  512M  0 lvm  [SWAP]
sr0              11:0    1 1024M  0 rom

wprowadź opis zdjęcia tutaj

kibar
źródło
do man lvmor tldp.org/HOWTO/LVM-HOWTO
alexus

Odpowiedzi:

22

Należy wykonać trzy kroki:

  1. zmień tablicę partycji, aby sda2kończyła się na końcu dysku
  2. ponownie przeczytaj tablicę partycji (będzie wymagać ponownego uruchomienia)
  3. zmień rozmiar swojego LVM pv za pomocą pvresize

Krok 1 - Tabela partycji

Uruchom fdisk /dev/sda. Problem pz wydrukowaniem bieżącej tablicy partycji i skopiowaniem danych wyjściowych w bezpieczne miejsce. Teraz problem, dpo którym następuje 2usunięcie drugiej partycji. Problem nz utworzeniem nowej drugiej partycji. Upewnij się, że początek jest równy początkowi tabeli partycji wydrukowanej wcześniej. Upewnij się, że koniec znajduje się na końcu dysku (zwykle domyślny).

Problem, tpo którym 2następuje, a następnie, 8eaby przełączyć typ partycji nowej drugiej partycji na 8e (Linux LVM).

Emisja precenzję nowy układ partycji i upewnij się, że początek nowego drugiej partycji jest dokładnie tam, gdzie był stary druga partycja.

Jeśli wszystko wygląda poprawnie, możesz wzapisać tablicę partycji na dysk. Otrzymasz komunikat o błędzie z partprobe, że nie można ponownie odczytać tablicy partycji (ponieważ dysk jest w użyciu).

Uruchom ponownie system

Ten krok jest konieczny, aby tablica partycji została ponownie odczytana.

Zmień rozmiar PV LVM

Po ponownym uruchomieniu systemu wywołaj polecenie pvresize /dev/sda2. Twój fizyczny wolumin LVM będzie teraz obejmował resztę dysku i możesz tworzyć lub rozszerzać woluminy logiczne w tym miejscu.

Andreas Rogge
źródło
świetne rozwiązanie, działa idealnie. wciąż tylko część jak rozszerzyć woluminy logiczne.
Mimouni,
1
Ta znakomita odpowiedź zatrzymała się tuż przed metą! Wymyśliłem, jak to zakończyć. Przykład udostępniony w pytaniu pokazał dwa logiczne tomy poniżej sda2: centos-rooti centos-swap. W tym przypadku grupą woluminów jest, centosa dwa woluminy logiczne w tej grupie to rooti swap. Gdybyśmy chcieli rozszerzyć centos-rootwolumin w tym przykładzie o 50% dostępnego miejsca na naszej świeżo rozszerzonej sda2partycji, skorzystalibyśmy lvextend -r -l +50%FREE /dev/centos/root. -rZmienia rozmiar podstawowy system plików pasujące rozszerzony wolumin logiczny.
Shadoninja,
@Shadoninja poza zakresem oryginalnego pytania. Więc nie dodałem go i nie dodam go do tego pytania w przyszłości.
Andreas Rogge
@AndreasRogge Twierdziłbym, że jest to całkowicie w zakresie tego pytania, ponieważ terminologia w tej przestrzeni może być myląca i łatwa do pogodzenia. Warto opublikować pełne podsumowanie, w jaki sposób uzyskać nieprzydzielone miejsce na dysku do wykorzystania przez system plików, ponieważ będzie to niezwykle częsty powód, dla którego ludzie znajdą to pytanie.
Shadoninja
14

Możesz to zrobić bez ponownego uruchamiania w CentOS 7. Zakładając, że twój dysk to / dev / vda i standardowe partycjonowanie RHEL / CentOS:

Rozszerz partycję

# fdisk /dev/vda

Wprowadź, paby wydrukować początkową tablicę partycji.

Wpisz d(usuń), a następnie 2usuń istniejącą definicję partycji (partycja 1 to zwykle / boot, a partycja 2 to zazwyczaj partycja główna).

Wpisz n(nowy), następnie p(główny), a następnie, 2aby ponownie utworzyć partycję nr 2 i enterzaakceptować blok początkowy i enterponownie, aby zaakceptować blok końcowy, który jest domyślnie ustawiony na końcu dysku.

Wpisz t(wpisz), a 2następnie, 8eaby zmienić nowy typ partycji na „Linux LVM”.

Wejdź, paby wydrukować nową tablicę partycji i upewnij się, że blok startowy jest zgodny z tym, co było w początkowej tabeli partycji wydrukowanej powyżej.

Wprowadź, waby zapisać tablicę partycji na dysk. Zobaczysz błąd, Device or resource busyktóry możesz zignorować.

Zaktualizuj tabelę partycji jądra w pamięci

Po zmianie tabeli partycji uruchom następujące polecenie, aby zaktualizować tabelę partycji w pamięci jądra:

# partx -u /dev/vda

Zmień rozmiar woluminu fizycznego

Zmień rozmiar PV, aby rozpoznać dodatkową przestrzeń

# pvresize /dev/vda2

Zmień rozmiar LV i systemu plików

W tym poleceniu centosjest PV, rootjest LV i /dev/vda2jest rozszerzoną partycją. Użyj pvsi lvspoleceń, aby zobaczyć nazwy woluminów fizycznych i logicznych, jeśli ich nie znasz. -rRozwiązaniem w tego polecenia zmienia rozmiar plików odpowiednio więc nie trzeba zadzwonić resize2fslub xfs_growfsoddzielnie.

# lvextend -r centos/root /dev/vda2
Aner
źródło
Bardziej skomplikowana odpowiedź niż „wybrana odpowiedź”!
Furkat U.
To jest genialne. Dziękuję Ci! To powinna być zaakceptowana odpowiedź. Brakowało mi ostatniego kroku zmiany rozmiaru systemu LV i systemu plików!
Skinner927
4

Dla tych, którzy mają problemy z rozszerzeniem logicznych tomów, takich jak ja, czytanie tego postu może być pomocne. Podsumowując, możesz użyć lvextenddo rozszerzenia woluminu logicznego: lvextend -l +<PE> <LV_PATH> możesz uzyskać liczbę pozostałych PE ( <PE>) vgdisplayi uzyskać ścieżkę swojego woluminu logicznego ( LV_PATH) przez lvdisplay.

Następnie, w zależności od dystrybucji, albo chcesz xfs_growfs <LV_PATH>(Centos 7), albo resize2fs <LV_PATH>ostatecznie zmienić rozmiar.

liwt31
źródło
0

Sprawdź to - wszystko w jednym wierszu, bez pytań:

parted —pretend-input-tty /dev/vda resizepart 2 100%;
partx -u /dev/vda; pvresize /dev/vda2;
lvextend -r centos/var /dev/vda2
Hix
źródło
Powinieneś rozważyć dodanie wyjaśnień i swojego środowiska. Na przykład moja partx nie ma opcji -u(Centos6.7 util-linux-ng-2.17.2-12.28.el6).
Boop
@Boop wygląda na to, że działa na Centos 7.x + 8.x
Hix