W Linuksie zmieniałem rozmiar partycji MBR za pomocą fdisk, nawet na aktywnych systemach plików, a następnie wydawałem resize2fs / pvresize / ... (w zależności od typu fs), aby uzyskać przydzielone nowe miejsce.
Ostatnio korzystam z partycji Xen i GPT i zauważyłem, że niestety parted nie pozwala na zmianę rozmiaru montowanej partycji w czasie rzeczywistym, w rzeczywistości będzie narzekać:
Error: Partition XXX is being used. You must unmount it before you modify it with Parted.
Wypróbowałem kombinację resize
polecenia, a nawet rm
+ mkpart
, ale oba będą narzekać na zamontowanie partycji.
Jak mogę to zrobić?
linux
partitioning
gpt
cyberz
źródło
źródło
Odpowiedzi:
Najbezpieczniejszym sposobem na to jest uruchomienie przy użyciu awaryjnego nośnika (Live CD lub podobnego) i użycie GParted, który zmieni rozmiar partycji i systemu plików, który zawiera. Działa to tylko wtedy, gdy partycja nie jest aktualnie używana.
Jeśli nie możesz sobie pozwolić na przestoje, możesz spróbować użyć
gdisk
zamiastparted
. Musisz usunąć partycję, której rozmiar chcesz zmienić, i utworzyć nową w jej miejscu z tym samym punktem początkowym, podobnie jak zrobiłbyś tofdisk
.gdisk
chce pracować na używanym dysku, chociaż jądro może nie rejestrować żadnych zmian. W takim przypadku może być konieczne użyciepartprobe
lubkpartx
pobranie jądra w celu zaakceptowania nowej tablicy partycji lub nawet ponowne uruchomienie komputera, jeśli to nie zadziała. (To wszystko powinno być dość podobne do korzystaniafdisk
).źródło
gdisk
w swoich repozytoriach, i słyszałem, żegdisk
zostaną uwzględnione w następnej wersji RHEL (a zatem CentOS).gdisk
jest dostępny w EPEL.partx
ipartprobe
ostatecznie musiałem zrestartować komputer. W każdym razie dziękuję za te wskazówkiZwykle działa to tylko z nowszymi dystrybucjami Linuksa. Potrzebne narzędzia:
Partycja GPT przechowuje nagłówek kopii zapasowej na końcu dysku. Jeśli zmieniłeś rozmiar urządzenia bazowego, nagłówek kopii zapasowej znajdzie się gdzieś pośrodku. Pierwszym krokiem jest przeniesienie nagłówka partycji na koniec dysku.
Zakładając, że dysk to / dev / sda, a partycja to / dev / sda3 (musi być również ostatnią partycją):
Następnie usuń ostatnią partycję i utwórz ją ponownie:
Zazwyczaj zobaczysz komunikat wskazujący, że jądro nie może ponownie załadować tablicy partycji. Musisz uruchomić partprobe, aby partycja została zarejestrowana w nowym rozmiarze:
Jeśli to się nie powiedzie, będziesz musiał ponownie uruchomić maszynę wirtualną. Następnie możesz rozbudować swój system plików za pomocą odpowiedniego narzędzia, dla ext4 itp .:
Uwaga : uruchomienie sgdisk może być destrukcyjne. Upewnij się, że masz odpowiednie procedury tworzenia kopii zapasowych.
źródło
partprobe
krok - zawsze myślałem, że konieczne jest ponowne uruchomienie przy zmianie tablicy partycji z dowolnymi zamontowanymi partycjami.Oto przykład, za pomocą którego zautomatyzowane narzędzie zmienia rozmiar partycji online w jednym uruchomieniu:
Oto lista opcji polecenia sgdisk:
gdisk /dev/xvda; p
wyjście, aby ponownie użyć tego samego identyfikatora użytkownika/ dev / xvda był dyskiem, który podzieliliśmy na partycje.
Więc usuwa i tworzy od razu nową partycję na swoim miejscu.
PS. Kilka uwag na temat kodu typu „0700”. Od mężczyzny SGDISK (8)
Znaleziono najlepsze wyjaśnienie znaczenia „0700” tutaj - http://www.rodsbooks.com/gdisk/walkthrough.html
W moim przypadku uważam, że była to partycja ext4 dla Linuksa, ale kod typu partycji nie oznacza typu systemu plików, więc „0700” wygląda bardziej jak typ catchall dla sgdisk. Przynajmniej w przypadkach, które widziałem.
PPS. Może być konieczne uruchomienie
partprobe
jądra, aby dowiedzieć się o zmianie partycjonowania bez ponownego uruchamiania systemu.źródło
Właśnie podsumowuję tutaj odpowiedzi i komentarze:
parted
po prostu odmówi zmiany dowolnej zamontowanej partycji.gdisk
wykona zadanie za Ciebie, ale nie ma go w standardowym repozytorium RHEL lub CentOS. Jest jednak w repozytorium EPEL .Pamiętaj, że zmiana partycji na używanym dysku może uniemożliwić jądrze zarejestrowanie zmian. Jeśli tak się stanie, stosowanie
partprobe
,partx
lub restart.źródło
Czy pytasz o zmianę rozmiaru woluminu logicznego? Oto jak bym to zrobił:
LUB (xfs):
źródło
-r
dolvextend
, a następnie wywołujeresize2fs
dla Ciebie.fdisk
jest zwykle nadal dostępny i może to zrobić, jeśli partycja jest ostatnią partycją, a jej początek się nie porusza.Jest to jednak niebezpieczna operacja, którą należy wykonać z dużą ostrożnością. Zrób kopię zapasową!
źródło