Jak zmienić rozmiar partycji Ext4

dodał: DDarko (2012-07-29 09:37),   tagi: linux

Opis zmiany rozmiaru rozmiaru partycji EXT4 utworzonej na macierzy RAID po dołożeniu nowych dysków twardych.

​Zacznę od opisania zaistniałej sytuacji. Posiadam sprzętową macierz RAID 5 do której były podłączone 3 dyski, zaś na nich stworzona jedna, zajmująca obszar całej macierzy partycja EXT4. Partycja została oczywiście wypełniona całkowicie danymi i potrzebowałem ją rozszerzyć nie tracąc tym samym danych.

Zacząłem oczywiście od dokupienia dwóch nowych dysków i podłączenia ich do macierzy. Z tą częścią nie było większych problemów. Następnie korzystając z narzędzi dostarczonych przez producenta kontrolera RAID dodałem nowo zakupione dyski. Pomijając, iż proces migracji trwał kilka dni (każdy dysk ma po 2TB) z tą częścią nie było również problemów.

Oczywiście mam tablice partycji GPT. Tablice partycji typu MSDOS nie obsługują partycji większych niż 4TB.

Następnie narzędziem po jakie sięgnąłem było gparted.
Po wybraniu właściwego dysku zobaczyłem ~4TB i dodatkowe niewykorzystane ~4TB przestrzeni.
Więc wcisnąłem "przesuń/zmień rozmiar partycji" i przesunąłem maksymalnie w prawo koniec istniejącej partycji. Po czym oczywiście zastosuj.

Operacja nie zakończyła się powodzeniem. Zastanawiałem się przez kilkanaście minut gdzie jest problem. Tym samym szukając rozwiązania w internecie. 90% podpowiedzi radziło skorzystać z resize2fs. Jednak to narzędzie również nie potrafiło sobie poprawnie poradzić z moim problemem:
"resize2fs /dev/sdb1 
resize2fs 1.42 (29-Nov-2011)
System plików już ma wielkość 976556544 bloków. Nie ma nic do roboty!"

Znalazłem podpowiedź o skorzystaniu z parted. Wykonałem następujące polecenia:
$ parted /dev/sdb
(parted) print
Błąd: Kopia zapasowa tablicy GPT nie znajduje się na końcu dysku, a powinna.  Może to oznaczać, że inny system operacyjny myśli, że dysk jest mniejszy niż jest w rzeczywistości.  Czy naprawić
to poprzez przesunięcie kopii zapasowej na koniec (i usunięcie starej kopii)?
Popraw/Fix/Zignoruj/Ignore/Poniechaj/Cancel? Fix                          
Ostrzeżenie: Nie całe dostępne miejsce na /dev/sdb wydaje się być używane, poprawić GPT, aby użyte zostało całe miejsce (dodatkowe 7812456448 bloków) czy kontynuować przy aktualnych
ustawieniach? 
Popraw/Fix/Zignoruj/Ignore? Fix

Gdzie /dev/sdb jest moim dyskiem zawierającym macierz.
Po otrzymaniu powyższych komunikatów wszystko było jasne.
Powróciłem do gparted i tym razem zmiana rozmiaru partycji poszła bezproblemowo.