Jak mogę zmienić rozmiar partycji LVM? (tj .: objętość fizyczna)

89

Chcę zmniejszyć moją drugą partycję (LVM), aby utworzyć nową partycję w nowo zwolnionym miejscu. Używam do tego Live CD, ponieważ wiem, że nie mogę zmienić rozmiaru / przenieść tej partycji, gdy jest ona używana. Kiedy otworzyłem GParted na Live CD, zdałem sobie sprawę, że nie mogę zmienić rozmiaru partycji, ponieważ po kliknięciu jej prawym przyciskiem myszy opcja „Zmień rozmiar / przenieś” jest wyłączona.

Próbowałem odmontować, „leniwy” odmontować ( umount -l /dev/sda2), ale to nie zadziałało.

Zrzut ekranu z GParted:

GParted zrzut ekranu

Idan Yadgar
źródło

Odpowiedzi:

49

Wydaje się, że w Google jest wiele wyników, w których ludzie mieli podobne problemy. Przykład:

Przed próbą wykonaj kopię zapasową wszystkich ważnych danych. Zawsze zakładaj, że możesz zmienić wszystkie dane podczas zmiany rozmiaru partycji.

Zmniejsz LVM bez utraty danych

Ten wątek na forum sugeruje następującą procedurę, w tym przykładzie zmniejszamy partycję z 10G do 9G:

Po pierwsze odmontowujemy.

sudo umount /dev/vg_blah/lv_blah

Sprawdź system plików.

sudo e2fsck -f /dev/vg_blah/lv_blah

Zmień rozmiar systemu plików i woluminu logicznego. Wykonanie tego w jednym kroku pozwala uniknąć błędów, które powodują utratę danych. (Uwaga: parametr lvreduce -Linterpretuje Gjako 2 ^ 30 bajtów i gjako 10 ^ 9 bajtów.)

sudo lvreduce --resizefs -L 9G /dev/vg_blah/lv_blah

(opcjonalnie) W razie potrzeby usuń dysk fizyczny z grupy woluminów (jeśli masz teraz nieużywany dysk).

sudo vgreduce vg_blah /dev/sdxy

Wszystkie zasługi należą się Brianmcgee .

Uwaga: vgreducezakończy się niepowodzeniem, cannot resize to xxxxx extents as later ones are allocatedjeśli na końcu dysku masz inny poziom lv - miałem zmienną lv, którą usunąłem. Zobacz Jak zmniejszyć woluminy logiczne i fizyczne Ubuntu LVM? za pomoc w tej sytuacji.

pzkpfw
źródło
1
e2fsck -f /dev/vg_blah/lv_blahzwraca: „e2fsck: Urządzenie lub zasób zajęty podczas próby otwarcia systemu plików / dev / sda2 zamontowanego lub otwartego wyłącznie przez inny program?”, to samo z resize2fs ...
Idan Yadgar
12
Brakuje odpowiedzi na pytanie, jak zmienić rozmiar woluminu fizycznego. Ponadto bardzo polecam połączenie dwóch kroków zmiany rozmiaru w jeden lvreduce -r.
Flimm,
4
Musisz także zdać sobie sprawę, że 1Gto lvreducejest 1000000000 bajtów, podczas resize2fsgdy jest to gibibajt. Jeśli chcesz przekazać 1 gibibajt lvreduce, użyj 1gzamiast tego.
Flimm
1
Nie używasz vgreduce; to jest do usuwania pv z grupy woluminów.
psusi
2
Podejrzewam, że lvreduceużywa G = gibibajta w trybie różnicowym. Z pewnością działa w trybie absolutnym. Strony podręcznika są źle napisane i nie wyjaśniają, co oznaczają ich jednostki, co uważam za graniczące z zaniedbaniem kryminalnym.
Urhixidur
45

Można zmniejszyć / rozszerzyć wolumin logiczny bardzo łatwo za pomocą narzędzia GUI: system-config-lvm. Ponieważ system-config-lvmnie jest instalowany fabrycznie, po uruchomieniu z live-cd musisz go zainstalować:

sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe"
sudo apt-get update
sudo apt-get install system-config-lvm

Po zainstalowaniu uruchom program, wybierz wolumin logiczny, który chcesz zmienić, w lewym panelu, kliknij „Edytuj właściwości”.

Główny program GUI do zarządzania woluminami logicznymi

Teraz zmień parametry, jak chcesz!

Okno edycji woluminu logicznego

Jedną dobrą rzeczą system-config-lvmjest to, że nie pozwoli ci iść naprzód, jeśli nowy rozmiar partycji jest mniejszy niż wszystkie istniejące dane łącznie (właśnie to wypróbowałem i zobaczyłem na własne oczy).

Bibliografia:

  1. Samouczek dla maniaków instruktażowych (takie jest pochodzenie obrazów).
  2. Kompletny przewodnik po programie Red Hat .
Cao Minh Tu
źródło
2
GUI to zdecydowanie droga, jednak prawdopodobnie będziesz musiał uruchomić go z płyty CD na żywo.
Mike
10
dlaczego jest system-config-lvmbardziej ryzykowny niż lvresizelub lvresize -r?
Thufir
1
Możesz także wypróbować blivet-gui ( github , Ubuntu PPA ), menedżer partycji nowej generacji, który obsługuje dyski LVM.
bain
5
Uważaj, że system-config-lvm używa jednostek mocy 1024, pomimo użycia (niepoprawnego) sformułowania „gigabajt”. Naprawdę powinien to robić palimpsest(inaczej Disk Utility) i określać jego znaczenie w jednoznacznych bajtach.
Urhixidur
4
@Suncatcher w dniach 17.10 i 18.04 musisz dodać repozytorium Xenial. sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu xenial universe"
m93a
24

Uwaga : Powinieneś uruchomić prawie wszystkie z poniższych poleceń za pomocą Live CD. Czasami chce odmontować partycję, która już została zamontowana na / (w tym przypadku nie można jej odmontować).

Są to wszystkie kroki wymagane do zmiany rozmiaru partycji LVM lub LVM2:

sudo lvresize --verbose --resizefs -L -150G /dev/mapper/ubuntu

sudo pvresize --setphysicalvolumesize {some-space} /dev/sda5

Jeśli drugie polecenie generuje coś takiego:

/dev/sda5: cannot resize to xxxxx extents as later ones are allocated.

Następnie musisz zmienić kolejność nieprzydzielonego miejsca na końcu LVM. Oznacza to po partycji root i swap_1. Tak więc początkowo musisz sprawdzić informacje o woluminach fizycznych za pomocą poniższego polecenia:

sudo pvs -v --segments /dev/sda5

Spowoduje to wyświetlenie danych wyjściowych takich jak:

/dev/sda5 ubuntu lvm2 a-- 698.04g 150g   0 xxx root 0 linear /dev/sda:0-rrr
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx sss 0 free                          
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g zzz ttt swap 0 linear /dev/sda5:yyy-www

Zwróć uwagę na yyy-www . Użyj następującego polecenia, aby usunąć fragmentację zewnętrzną:

sudo pvmove --alloc anywhere /dev/sda5:yyy-www

Zobaczmy teraz, jak to wygląda:

sudo pvs -v --segments /dev/sda5

Spowoduje to wyświetlenie danych wyjściowych takich jak (zauważ zmiany):

/dev/sda5 ubuntu lvm2 a-- 698.04g 150g   0 xxx root 0 linear /dev/sda:0-rrr
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx ttt swap 0 linear /dev/sda5:xxx-sss
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g yyy www 0 free

Następnie użyj GParted i zmień rozmiar LVM do maksymalnego wykorzystywanego obszaru, a reszta będzie w nieprzydzielonym miejscu. Cieszyć się...

UJJAL
źródło
16

Poleciłbym inne narzędzie GUI - KVPM . Łączy w sobie funkcjonalność GParted i system-config-lvm. Co więcej, pozwala na pewne operacje na aktywnych (zamontowanych) partycjach, na które system-config-lvm nie pozwala. Jednak wolumin musi zostać odmontowany, aby go zmniejszyć.

wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj

Jest w repozytorium wszechświatów od Ubuntu 12.04, więc po prostu zrób to sudo apt-get install kvpm

Uwaga: zacznij od uprawnień roota sudo kvpm

Kos
źródło
nie ma go w repozytorium wszechświata:E: Unable to locate package kvpm
Jeff Puckett,
Działa to dla mnie, gdy „system-config-lvm” nie załadował żadnych podłączonych urządzeń / napędów / systemów plików. Z dodatkową premią za brak konieczności pobierania i dodatkowego repozytorium oraz prekonfigurowania na moim komputerze Ubuntu. Pracowałem także nad Gparted, ponieważ powodowało to błędy związane z nadmiernym zmniejszeniem systemu plików. (Zmieniam rozmiar karty SD RetroOrangepi z 32 GB na 8 GB w celu tworzenia kopii zapasowych)
BiTinerary
Wygląda dobrze, pomyślałem, że może potrzebować dodatkowego ~ 100 mln dla wszystkich innych zależności K, jeśli jeszcze nie używasz KDE
Xen2050
12

Tylko najnowsza wersja Gparted (0.14) obsługuje zmianę wielkości woluminów fizycznych LVM. Wersja dostarczana z Ubuntu 12.10 lub 13.04 nie obsługuje tego.

Oto jak zmienić rozmiar woluminu fizycznego LVM:

  1. Jeśli grupa woluminów skojarzona z woluminem fizycznym LVM nie ma wystarczającej ilości nieprzydzielonego miejsca, musisz je zrobić, zmniejszając wolumin logiczny. Spójrz na odpowiedź bigbadonk420, aby uzyskać instrukcje, jak to zrobić. Możesz również użyć Dysków GNOME (dołączonych do Ubuntu) do niektórych kroków, jeśli wolisz GUI.

  2. Wypal najnowszy obraz .iso ze strony internetowej GParted i wypal go na płycie CD lub umieść na pamięci USB. Uruchom komputer z dysku CD lub pamięci USB. Alternatywnie możesz skompilować najnowszą wersję GParted ze źródła.

  3. Użyj GParted, aby zmienić rozmiar woluminu fizycznego LVM. GParted nie pozwoli ci zmniejszyć woluminu fizycznego LVM do rozmiaru mniejszego niż pozwala na to nieprzydzielone miejsce.

Flimm
źródło
Dzięki Flimm. Spodziewałem się, że 12.10 będzie mieć dość najnowszą wersję gparted. Twoja odpowiedź wskazała mi właściwy kierunek.
Martijn Heemels,
1
Mam najnowszą wersję gparted, ale nie pozwoli mi to zmienić wielkości partycji ... Mam / dev / sda2 typu ext2, a pod nią / dev / sda5 typu lvm2. Ale gparted mówi, że zarówno minimalne, jak i maksymalne rozmiary są takie same, a zatem nie pozwala mi to zmienić ... :-(
Paul,
Lub skorzystanie pvresizez pakietu LVM2, prawda?
203967
@Paul to rozwiązałeś? Mam dokładnie ten sam problem: S
Castiblanco,
@Castiblanco Nie rozwiązałem tego, ostatecznie wycierałem wszystkie rzeczy i instalowałem ponownie bez LVM. Dla mnie jedna lekcja: Nie używaj LVM do standardowych instalacji na komputerze.
Paul,
9

Znalazłem tę odpowiedź przez przypadek, ale to zadziałało przynajmniej dla mnie. W moim przypadku miałem już zarezerwowane nieprzydzielone miejsce na dysku po rootowaniu, więc pomijam część, w której zyskujesz więcej miejsca i wyjaśniam tylko, jak użyłem go na rootie bez uruchamiania.

UWAGA: Zamiast używać gparted, prawdopodobnie lepiej jest używać system-config-lvm. Następnym razem użyłbym tego zamiast tego ... Moja wersja z dwoma partiami to 0.18.

  1. Najpierw gpartedrozszerzałem partycję root tak bardzo, jak tylko mogłem. Ku mojemu zdziwieniu rozszerzyło ono jedynie rozmiary fizyczne i nie zrobiło nic logicznego. Więc df -kpolecenie powiedziało, że dysk jest nadal pełny.
  2. lvresize -l +100%FREE /dev/ubuntu-vg/rootrozszerza partycję logiczną tak daleko, jak to możliwe. Nie trzeba sprawdzać i obliczać GB ani bloków różnymi metodami.
  3. resize2fs /dev/ubuntu-vg/root jest wtedy trzecim krokiem, który zrobiłem: rozszerza system plików do rozmiaru partycji logicznej.

Ostatni krok można połączyć w drugi:

lvresize -l +100%FREE --resizefs /dev/ubuntu-vg/root

Timo Riikonen
źródło
Pozwala to zmniejszyć wolumin logiczny, ale pytanie PO dotyczy zmniejszenia woluminu fizycznego.
Stefan
uratowałeś mi życie
Quang Hà
1

Oprócz @ bigbadonk420 „s odpowiedzi , zamiast w następujący sposób:

resize2fs -p /dev/vg_blah/lv_blah 9G
lvreduce -L -1G /dev/vg_blah/lv_blah

Zrobić:

lvreduce -r -L 9G /dev/vg_blah/lv_blah

Zwróć uwagę, -rco zmniejsza jednocześnie system plików i jest bezpieczne.

eyeinsky
źródło
Ale to nie zmniejsza objętości fizycznej .
Stefan
0

Ostrzeżenie o aktualnie najczęściej głosowanej odpowiedzi : Aby NIE zniszczyć twojej nowej domyślnej instalacji z opcją LVM (14.04 Trusty Tahr), 1) przeczytaj całą stronę, 2) usuń swap 3) i prawdopodobnie zmodyfikuj polecenie dla „Zmniejsz rozmiar logiki wolumin ”:

lvreduce -L -1g /dev/vg_blah/lv_blah

Zdecydowanie polecam system-config-lvm.

biegowy użytkownik 293759
źródło
Ponownie PO chce zmniejszyć objętość fizyczną .
Stefan
0

Aby to zrobić za pomocą GParted, kliknij prawym przyciskiem myszy dev / sda2 (który chcesz zmniejszyć). Wybierz „Dezaktywuj”. Teraz możesz zmienić rozmiar partycji lvm.

Aktualizacja: rozwiązanie @Cao Min Tu jest znacznie lepsze. Po zmianie rozmiaru miałem kilka problemów z GParted

Junaid
źródło