Wie kann ich die Größe einer LVM-Partition ändern? (dh: physisches Volumen)

89

Ich möchte meine zweite (LVM) Partition verkleinern, um eine neue Partition im neu freigegebenen Speicherplatz zu erstellen. Ich verwende dazu die Live-CD, da ich weiß, dass ich diese Partition nicht in der Größe ändern / verschieben kann, während sie verwendet wird. Als ich GParted auf der Live-CD öffnete, stellte ich fest, dass ich die Partition nicht vergrößern oder verkleinern konnte, da die Option "Größe ändern / verschieben" deaktiviert ist, wenn ich mit der rechten Maustaste darauf klicke.

Ich habe versucht, es abzumelden, es zu "faul" abzumelden ( umount -l /dev/sda2), aber es hat nicht funktioniert.

Ein Screenshot von GParted:

GParted-Screenshot

Idan Yadgar
quelle

Antworten:

49

Bei Google scheint es viele Ergebnisse zu geben, bei denen ähnliche Probleme aufgetreten sind. Ein Beispiel:

Sichern Sie alle wichtigen Daten, bevor Sie dies versuchen. Gehen Sie immer davon aus, dass Sie alle Ihre Daten verlieren können, wenn Sie die Größe von Partitionen ändern.

Verkleinern Sie LVM ohne Datenverlust

Dieser Forenthread schlägt das folgende Verfahren vor. In diesem Beispiel wird eine Partition von 10G auf 9G verkleinert:

Zuerst steigen wir aus.

sudo umount /dev/vg_blah/lv_blah

Überprüfen Sie das Dateisystem.

sudo e2fsck -f /dev/vg_blah/lv_blah

Ändern Sie die Größe des Dateisystems und des logischen Volumes. Wenn Sie dies in einem Schritt tun, können Sie Fehler vermeiden, die zu Datenverlust führen. (Beachten Sie, dass der Parameter lvreduce als 2 ^ 30 Byte und als 10 ^ 9 Byte -Linterpretiert wird .)Gg

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

(Optional) Entfernen Sie bei Bedarf ein physisches Laufwerk aus der Volume-Gruppe (wenn Sie jetzt ein nicht verwendetes Laufwerk haben).

sudo vgreduce vg_blah /dev/sdxy

Alle Kredite gehen an brianmcgee .

Hinweis: vgreduceWird fehlschlagen, cannot resize to xxxxx extents as later ones are allocatedwenn Sie eine andere Version am Ende der Festplatte haben - Ich hatte eine Swap-Version, die ich gelöscht habe. Siehe So verkleinern Sie logische und physische Volumes von Ubuntu LVM? um Hilfe in dieser Situation.

pzkpfw
quelle
1
e2fsck -f /dev/vg_blah/lv_blahRückgabe: „e2fsck: Gerät oder Ressource beschäftigt , während ausschließlich von einem anderen Programm zu öffnen / dev / sda2 Dateisystem gemountet oder geöffnet versuchen?“, das gleiche mit resize2fs ...
Idan Yadgar
12
Es fehlt die Antwort, wie die Größe des physischen Volumens geändert werden kann. Außerdem empfehle ich dringend, die beiden Größenänderungsschritte in einem mit zu kombinieren lvreduce -r.
Flimm
4
Außerdem müssen Sie erkennen, dass 1Gto lvreduce1000000000 Byte beträgt, wohingegen to resize2fsein Gibibyte ist. Wenn Sie 1 Gibibyte übergeben möchten lvreduce, verwenden Sie 1gstattdessen.
Flimm
1
Sie verwenden nicht vgreduce; das ist zum entfernen eines pv aus einer volumengruppe.
Psusi
2
Ich vermute stark, lvreduceverwendet G = Gibibyte im Differentialmodus. Es ist sicherlich im absoluten Modus. Die Manpages sind schlecht geschrieben und erklären nicht, was ihre Einheiten bedeuten, was ich als an kriminelle Nachlässigkeit grenzend betrachte.
Urhixidur,
45

Sie können einen logischen Datenträger sehr leicht mit einem GUI - Tool schrumpfen / erweitern: system-config-lvm. Da system-config-lvmes nicht vorinstalliert ist, müssen Sie es nach dem Booten von einer Live-CD installieren:

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

Führen Sie nach der Installation das Programm aus, wählen Sie das zu ändernde logische Volume im linken Bereich aus und klicken Sie auf "Eigenschaften bearbeiten".

Haupt-GUI des Logical Volume Management-Programms

Ändern Sie nun die Parameter nach Ihren Wünschen!

Fenster "Logisches Volume bearbeiten"

Eine gute Sache system-config-lvmist, dass Sie nicht weitermachen können, wenn die neue Partitionsgröße kleiner ist als alle Ihre vorhandenen Daten zusammen (ich habe es gerade ausprobiert und für mich selbst gesehen).

Verweise:

  1. How-To-Geek-Tutorial (das ist der Ursprung der Bilder).
  2. Red Hats vollständiger Leitfaden für das Programm.
Cao Minh Tu
quelle
2
GUI ist definitiv der richtige Weg, allerdings müssen Sie es wahrscheinlich von einer Live-CD ausführen.
Mike
10
warum ist system-config-lvmriskanter als lvresizeoder lvresize -r?
Thufir
1
Sie können auch blivet-gui ( github , Ubuntu PPA ) ausprobieren , den Partitionsmanager der nächsten Generation , der LVM-Laufwerke verwaltet.
Bain
5
Beachten Sie, dass system-config-lvm trotz der (falschen) Formulierung "Gigabyte" Potenzen von 1024 Einheiten verwendet. Es sollte wirklich mögen palimpsest(aka Disk Utility) und seine Bedeutung in eindeutigen Bytes angeben.
Urhixidur,
4
@Suncatcher am 17.10 und 18.04 müssen Sie das Xenial-Repository hinzufügen. sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu xenial universe"
M93a
24

Hinweis : Sie sollten fast alle der folgenden Befehle mit einer Live-CD ausführen. Manchmal möchten Sie, dass Sie die Partition aushängen, die bereits in / eingebunden ist (in diesem Fall können Sie sie nicht aushängen).

Dies sind alle Schritte, die zum Ändern der Größe einer LVM- oder LVM2-Partition erforderlich sind:

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

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

Wenn der zweite Befehl ungefähr so ​​aussieht:

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

Anschließend müssen Sie den nicht zugewiesenen Speicherplatz am Ende des LVM neu anordnen. Das heißt nach root und Swap_1 Partition. Zunächst müssen Sie die Informationen zu den physischen Volumes mit dem folgenden Befehl überprüfen:

sudo pvs -v --segments /dev/sda5

Dies zeigt die Ausgabe wie folgt:

/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

Beachten Sie das JJJ-WWW . Verwenden Sie den folgenden Befehl, um externe Fragmentierung zu entfernen:

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

Nun wollen wir sehen, wie es geht:

sudo pvs -v --segments /dev/sda5

Dies zeigt die Ausgabe wie folgt (Änderungen beachten):

/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

Verwenden Sie danach GParted und ändern Sie die Größe des LVM auf den maximal genutzten Bereich. Der Rest befindet sich im nicht zugewiesenen Speicherplatz. Genießen...

UJJAL
quelle
16

Ich würde ein anderes GUI-Tool empfehlen - KVPM . Es kombiniert die Funktionalität von GParted und system-config-lvm. Darüber hinaus sind einige Vorgänge auf aktiven (bereitgestellten) Partitionen möglich, die system-config-lvm nicht zulässt. Zum Verkleinern muss das Volume jedoch deaktiviert werden.

Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben

Es befindet sich seit Ubuntu 12.04 im Universums-Repository sudo apt-get install kvpm

Hinweis: Starten Sie es mit root-Rechten sudo kvpm

Kos
quelle
Es ist nicht im Universums-Repository:E: Unable to locate package kvpm
Jeff Puckett
Das hat bei mir funktioniert, wo der "system-config-lvm" keine angeschlossenen Geräte / Laufwerke / Dateisysteme geladen hat. Mit dem zusätzlichen Vorteil, dass ich kein zusätzliches Repository herunterladen und auf meinem Ubuntu-Rechner vorkonfigurieren muss. Außerdem wurde Gparted überarbeitet, da dies Fehler verursachte, weil das Dateisystem zu stark reduziert wurde. (Ich bin Ändern der Größe einer RetroOrangepi SD - Karte nach unten von 32 GB bis 8 GB für Backup - Zwecke)
BiTinerary
Sieht gut aus , dachte , es könnte eine zusätzliche ~ 100M für alle anderen K Abhängigkeiten wollen, wenn Sie nicht bereits verwenden KDE
Xen2050
12

Nur die neueste Version von Gparted (0.14) unterstützt das Ändern der Größe von physischen LVM-Volumes. Die mit Ubuntu 12.10 oder 13.04 gelieferte Version unterstützt dies nicht.

So ändern Sie die Größe eines physischen LVM-Volumes:

  1. Wenn die mit dem physischen LVM-Volume verknüpfte Volume-Gruppe nicht über genügend nicht zugewiesenen Speicherplatz verfügt, müssen Sie einige durch Verkleinern eines logischen Volumes vornehmen. Anweisungen dazu finden Sie in der Antwort von bigbadonk420 . Sie können auch GNOME-Festplatten (im Lieferumfang von Ubuntu enthalten) für einige der Schritte verwenden, wenn Sie eine GUI bevorzugen.

  2. Brennen Sie das neueste .iso-Image von der GParted-Website und brennen Sie es auf eine CD oder legen Sie es auf einen USB-Stick. Booten Sie von der CD oder vom USB-Stick. Alternativ können Sie die neueste Version von GParted aus dem Quellcode kompilieren.

  3. Verwenden Sie GParted, um die Größe des physischen LVM-Volumes zu ändern. Mit GParted können Sie das physische LVM-Volume nicht auf eine Größe verkleinern, die kleiner ist als der nicht zugewiesene Speicherplatz.

Flimm
quelle
Danke Flimm. Ich hatte erwartet, dass 12.10 eine ausreichend aktuelle Version von gparted hat. Ihre Antwort hat mich in die richtige Richtung geleitet.
Martijn Heemels
1
Ich habe das neueste gparted, aber ich kann die Partitionsgrößen nicht ändern ... Ich habe / dev / sda2 vom Typ ext2 und darunter / dev / sda5 vom Typ lvm2. Aber gparted sagt für beide, dass min und max gleich sind, und erlaubt mir daher nicht, es zu ändern ... :-(
Paul
Oder nutzen Sie pvresizedie LVM2-Suite, oder?
03.11.14, 203967,
@Paul hast du es gelöst? Ich habe genau das gleiche Problem: S
Castiblanco
@ Castiblanco Ich habe es nicht gelöst, am Ende habe ich die ganzen Dinge gelöscht und ohne LVM neu installiert. Eine Lektion, die ich gelernt habe: Verwenden Sie LVM nicht für Standard-Desktop-Installationen.
Paul
9

Ich habe diese Antwort zufällig gefunden, aber das hat zumindest bei mir funktioniert. In meinem Fall hatte ich bereits einen reservierten, nicht zugewiesenen Speicherplatz nach dem Root, daher überspringe ich den Teil, wie Sie mehr Speicherplatz erhalten, und erkläre nur, wie ich ihn beim Root verwendet habe, ohne zu booten.

HINWEIS: Anstatt zu verwenden gparted, ist es wahrscheinlich besser, wenn Sie verwenden system-config-lvm. Das nächste Mal würde ich stattdessen diese Version verwenden ... Meine gparted-Version war 0.18.

  1. Zuerst habe ich gparteddie Root-Partition so weit wie möglich erweitert. Zu meiner Überraschung hat es nur die physischen Größen erweitert und nichts mit dem logischen Teil zu tun. So df -ksagte Befehl, dass die Festplatte noch voll war.
  2. lvresize -l +100%FREE /dev/ubuntu-vg/rootErweitert die logische Partition so weit wie möglich. Es ist nicht erforderlich, GBs oder Blöcke mit verschiedenen Methoden zu prüfen und zu berechnen.
  3. resize2fs /dev/ubuntu-vg/root Dann ist der dritte Schritt, den ich gemacht habe: Es erweitert das Dateisystem auf die Größe der logischen Partition.

Der letzte Schritt kann in den zweiten zusammengefasst werden:

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

Timo Riikonen
quelle
Auf diese Weise können Sie ein logisches Volume verkleinern. Die Frage des OP betrifft jedoch das Verkleinern eines physischen Volumes.
Stefan
Du hast mein Leben gerettet
Quang Hà
1

Zusätzlich zu den @ bigbadonk420 ‚s Antwort , stattdessen folgendes tun:

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

Machen:

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

Beachten Sie das, -rwas das Dateisystem gleichzeitig reduziert und sicher ist.

eyeinsky
quelle
Dies verringert jedoch nicht die physische Lautstärke.
Stefan
0

Warnung zu der aktuell am häufigsten gewählten Antwort : Um Ihre neue Standardinstallation mit der LVM-Option (14.04 Trusty Tahr) NICHT zu zerstören, 1) lesen Sie die ganze Seite, 2) löschen Sie Swap 3) und ändern Sie wahrscheinlich den Befehl für "Reduzieren Sie die Größe der logischen Volume "wie folgt:

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

Ich kann es nur empfehlen system-config-lvm.

user293759
quelle
Auch hier möchte das OP ein physikalisches Volumen reduzieren .
Stefan
0

Klicken Sie dazu mit der rechten Maustaste auf dev / sda2 (das Sie verkleinern möchten). Wählen Sie "Deaktivieren". Jetzt können Sie die Größe Ihrer lvm-Partition ändern.

Update: @Cao Min Tu Lösung ist viel besser. Nach der Größenänderung hatte ich einige Probleme mit GParted

Junaid
quelle