Wie verkleinere ich das logische Root-Volume (LV) in LVM?

11

Ich muss die MBR-Partition nicht verkleinern, sondern nur das logische Volume, das das Root-Dateisystem "/" enthält. Es ist jetzt ~ 200 GB, und ich muss es auf ~ 150 GB verkleinern, um Platz für ein neues logisches Volume zu schaffen. Wie gehe ich vor?

Michael Kropat
quelle

Antworten:

23

BEVOR SIE ALLES ÄNDERN, STELLEN SIE SICHER, DASS SIE EINE AKTUELLE SICHERUNG HABEN. Das alles hat bei mir funktioniert, aber bei Ihnen funktioniert es möglicherweise nicht. Wenn es aus irgendeinem Grund explodiert, möchten Sie nichts verlieren, was Sie nicht wiederherstellen können. Weiter…

Meines Wissens ist es nicht möglich, ein Dateisystem zu verkleinern, während es gemountet ist. Daher müssen wir die eigentliche Größenänderung von einer Live-CD vornehmen. Bei allen folgenden Anweisungen wird davon ausgegangen, dass Sie von der 11.10 Desktop Install-CD gebootet haben.

Öffnen Sie das Terminal, nachdem die Live-CD auf dem Desktop gestartet wurde.

Das LVM-Tool ist nicht in die Live-CD integriert, daher müssen wir sie zuerst installieren:

sudo apt-get install lvm2

Suchen Sie den Namen der Volume-Gruppe (im Folgenden „somevg“), die das logische Root-Volume enthält:

sudo lvs

(Wenn es nicht angezeigt wird, versuchen Sie es sudo lvmdiskscanund sudo pvscanversuchen Sie es erneut.)

Wenn Sie ausführen ls /dev/mapper/, wird möglicherweise angezeigt, dass die logischen Volumes nicht angezeigt werden. Wenn es nicht vorhanden ist, müssen Sie den folgenden Befehl ausführen, um den Kernel auf die logischen Volumes aufmerksam zu machen:

sudo vgchange --available y <somevg>

Da wir das Root-Dateisystem nicht gemountet haben, sollte die Größe sicher geändert werden können. Fahren Sie mit der eigentlichen Größenänderung des logischen Volumes fort. Beachten Sie, dass dieser Befehl ( --size -50G) das Volume um 50 GB verkleinert. Lesen Sie die Manpage lvreduce (8), um zu erfahren, wie Sie eine andere Größe angeben.

sudo lvreduce --resizefs --size -50G /dev/<somevg>/root

(Mein logisches Volume heißt "root", aber Ihr Volume kann etwas anderes heißen.)

Dieser Befehl verkleinert zuerst das Dateisystem und dann das logische Volume, das es enthält. Dies ist der einzig sichere Weg, dies zu tun.

Sie können das System jetzt neu starten und Ihr Root-Dateisystem mit geänderter Größe starten.

Michael Kropat
quelle
Diese Anweisungen funktionieren nicht. lvszeigt die richtige neue Größe an, GPartedzeigt aber immer noch das LVM mit der Originalgröße. Sie müssen lediglich erklären, wie Sie das Dateisystem und nicht die Partition verkleinern. Die Partition belegt immer noch den ursprünglichen Speicherplatz.
Cerin
Versuchen Sie möglicherweise, die VG- und / oder MBR-Partition zusätzlich zum LV zu verkleinern? Diese Anweisungen dienen nur zum Verkleinern des LV. Ich werde die Frage aktualisieren, da sie (wie ich beim erneuten Lesen sehe) nicht sehr klar ist.
Michael Kropat
Ihre Annahme ist nicht richtig. Die Online-Größenänderung (während die Partition gemountet und verwendet wird) von ext3 / ext4-Partitionen gibt es schon seit langer Zeit. Ich benutze das oft und hatte noch nie ein einziges Problem damit. Und ja, ich habe ständig aktuelle Backups.
Floyd
@Floyd: Hast du zufällig ein Zitat dafür? Mir war bewusst, dass eine Online-Größenänderung beim Erweitern möglich ist, nicht jedoch beim Verkleinern. Wenn Online-Schrumpfen jetzt möglich ist, wären das coole Neuigkeiten.
Michael Kropat
4
@Floyd, ext3 / 4 unterstützt Online-WACHSEN, aber nicht schrumpfen.
Psusi
4

Beide lvresizeund unterstützen lvreducejetzt die Größenänderung des Dateisystems vor dem Verkleinern des logischen Volumes.

Dies ist ein Ausschnitt aus einer Manpage unter CentOS 6.5

-r, --resizefs
       Resize underlying filesystem together with the logical volume using fsadm
jlmontes
quelle
3

Alle Partitions- und LV-Größenänderungen sollten auf nicht gemounteten Partitionen vorgenommen werden. Sie müssen also von der Ubuntu-Installationsdiskette oder dem USB-Stick booten, sie als Live-CD ausführen, eine Verbindung zum Internet herstellen und installieren lvm2

sudo apt-get install lvm2

... oder Sie können jede Linux-Rettungs-CD verwenden, die bereits lvm2verfügbar ist. Stellen Sie dann sicher, dass Ihr Root-LV nicht installiert ist

mount 

und heben Sie es bei Bedarf auf, und führen Sie dann eine Dateisystemprüfung durch

e2fsck -f /dev/yourVG/yourLV 

auf diesem LV. Dann verkleinern Sie das Dateisystem

resize2fs /dev/yourVG/yourLV 150G

und LV reduzieren

lvreduce -L -50G /dev/yourVG/yourLV

Starten Sie Ihr System neu, viel Spaß!

Galle
quelle
3
+1 Danke für deine Hilfe. Ich habe die Antwort auf meine Frage nachgeschlagen, nachdem ich sie gestellt hatte. Die LVM-Tools haben jetzt die --resizefsOption, die zu funktionieren scheint und Sie können einen Schritt überspringen.
Michael Kropat