GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie verkleinere ich ein physisches Volume?

Ich habe ein physisches Volume auf einer Partition, die sich über die gesamte Festplatte erstreckt, sagen wir /dev/sda1 mit 100% von /dev/sda. Jetzt muss ich es verkleinern, um /dev/sda2 zu erstellen. Ein logisches Volume verwendet tatsächlich ~50 % des PV, also ist theoretisch viel Platz verfügbar, aber es wird alles innerhalb des einzelnen PV zugewiesen. Gibt es eine sichere Möglichkeit, das physische Volume (und die zugrunde liegende Festplattenpartition) zu verkleinern, um zusätzlichen Platz für die zweite Partition zu schaffen? Leider schließt meine Konfiguration die Möglichkeit aus, das physische Volume vorübergehend auf ein anderes Gerät zu verschieben.

Natürlich weiß ich, dass ich es auf Dateiebene tun kann (wie das Sichern des Inhalts, das Neupartitionieren des Laufwerks und das Neuerstellen der LVM-Konfiguration), aber ich würde es vorziehen, die Arbeit zu erledigen, ohne LV von Grund auf neu konfigurieren zu müssen.

Vielen Dank im Voraus.

Akzeptierte Antwort:

Wenn Sie nur ein weiteres separates Dateisystem benötigen, müssen Sie keine neue Partition erstellen:Sie können ein weiteres logisches LVM-Volume innerhalb der bestehenden Volume-Gruppe erstellen, indem Sie den nicht zugeordneten Speicherplatz im PV verwenden. Aber wenn Sie speziell eine neue Partition benötigen , dann müssen Sie tun, was Sie ursprünglich geplant hatten.

GParted ist ein GUI-Tool, das den gesamten Vorgang zur Größenänderung von PV + Partitionen für Sie erledigen kann. Sie finden es höchstwahrscheinlich in der Paketsammlung Ihrer Distribution.

Aber wenn Sie es aus irgendeinem Grund nicht verwenden können oder wollen, lesen Sie weiter …

Das Reduzieren eines physischen LVM-Volumes mit nicht zugeordnetem Speicherplatz ist ziemlich einfach. Um beispielsweise die Größe von /dev/sda1 auf 40 GiB zu reduzieren:

# pvresize --setphysicalvolumesize 40G /dev/sda1

Dieser Befehl ist sicher, da er sich weigert, irgendetwas zu tun, wenn der Teil des PV, den er wegschneiden würde, zugewiesene Extents enthält.

Aber das ist nur der erste Schritt. Der zweite Schritt besteht darin, die Größe der Partition selbst zu reduzieren.

Sicherheitshalber wird empfohlen, das PV zunächst etwas stärker zu verkleinern, als Sie die Partition tatsächlich verkleinern möchten, damit Sie nach dem Verkleinern der Partition das PV explizit erweitern können, um die volle Größe der Partition abzudecken. Wenn der Erweiterungsvorgang fehlschlägt, wissen Sie sofort, dass bei der Größenänderung der Partition etwas schief gelaufen ist, und hinterlassen keine versteckten Fehler, die Sie oder jemand anderen in Zukunft in die Falle locken könnten.

Sie können eine Partition mit einem einfachen Linux fdisk verkleinern Befehl, aber Sie müssen ein paar Dinge beachten:

  • Bei Verwendung von fdisk Um die Größe einer Partition zu ändern, stellen Sie sicher, dass alle Partitionsgrößen und Startpositionen in Sektoren angezeigt werden Erste. In der Geschichte von Linux fdisk , ist sein Verhalten hier unterschiedlich:Moderne Versionen tun dies standardmäßig, ältere Versionen benötigen möglicherweise ein -u oder -u=sectors Option dazu.
  • Wenn Sie die Größe einer vorhandenen Partition ändern, können Sie den Startpunkt der Partition nicht verschieben. (Wenn Sie den Startpunkt verschieben, handelt es sich nicht mehr um eine einfache Größenänderung, sondern um eine komplexere Operation zum Verschieben von Partitionen.)
Siehe auch:Macos – Wie wird ein TrueCrypt-Volume unter OSX nach der Anmeldung mit Passwort/Schlüsseldatei automatisch gemountet?

Bei Verwendung von fdisk , werden alle Änderungen nur dann auf die Festplatte geschrieben, wenn Sie w verwenden Befehl. Ich würde also vorschlagen, wie folgt vorzugehen:

  • Verwenden Sie sfdisk -d /dev/sda > /safe/location/partition_table_backup.dump um die bestehende Partitionstabelle zu sichern.
  • starte fdisk /dev/sda im interaktiven Modus
  • benutze den p Befehl, um die aktuelle Partitionstabelle anzuzeigen und zu überprüfen, ob die Werte „Start“ und „Ende“ als Sektoren angezeigt werden. Notieren Sie sich den „Start“-Wert.
  • benutze den d Befehl zum Löschen des aktuellen Partitionseintrags für sda1 .
  • benutze den n Befehl zum Neuerstellen des primären Partitionseintrags 1 für sda1 in der gewünschten Größe, wobei darauf geachtet wird, die Position des ersten Sektors genau so anzugeben, wie sie war (d. h. dieselbe Nummer, die im „start“-Wert des p angezeigt wurde Befehl).
  • benutze den t Befehl, um den Typ der Partition 1 auf „Linux LVM“ zu setzen.
  • überprüfen Sie Ihre Arbeit noch einmal
  • benutze den w Befehl, um die aktualisierte Partitionstabelle zu schreiben und fdisk zu beenden .

Achten Sie auf die von fdisk angezeigte Meldung Am Ende. Wenn es heißt „Der Kernel verwendet immer noch die alte Tabelle“, blockiert etwas die Online-Aktualisierung der Partitionstabelle. Sie können partprobe /dev/sda ausprobieren um den Kernel anzuweisen, die Partitionstabelle neu zu lesen (unter Verwendung einer neueren Schnittstelle als einige ältere Versionen von fdisk verwenden, also könnte es helfen und sicherlich nicht schaden) und dann cat /proc/partitions anschauen um zu sehen, ob die Partition jetzt vom Kernel in der erwarteten Größe erkannt wird.

Wenn die Größenänderung der Partition erfolgreich war, können Sie jetzt pvresize /dev/sda1 ausführen . Wenn Sie meinem Rat gefolgt sind und das PV anfänglich etwas kleiner als die gewünschte neue Größe der Partition geändert haben, sollte es das PV jetzt erfolgreich ein wenig erweitern, um die geänderte Partition automatisch vollständig abzudecken. Wenn dieser Befehl einen Fehler meldet, haben Sie wahrscheinlich einen Fehler bei der Angabe der neuen Größe gemacht und sollten sfdisk /dev/sda < /safe/location/partition_table_backup.dump verwenden um die Partitionstabelle auf den ursprünglichen Zustand zurückzusetzen, und versuchen Sie es erneut.

(Auf sehr alten Systemen müssen Sie möglicherweise die VG deaktivieren, bevor Sie partprobe ausführen oder sogar neu starten, damit das System die aktualisierte Partitionstabelle erneut lesen kann.)

Sobald die Größenänderung abgeschlossen ist, können Sie jetzt fdisk verwenden erneut, um die zweite benötigte Partition zu erstellen. Ja, Sie könnten dies auch gemeinsam tun, während Sie die Größe der Partition ändern, aber nur eine Sache nach der anderen zu tun ist sicherer und stellt sicher, dass Sie Ihre Änderungen bei Bedarf einfach rückgängig machen können.


Linux
  1. RHEL / CentOS :So verkleinern Sie das LVM-Volumen

  2. CentOS / RHEL :So fügen Sie ein physisches Volume (PV) zu einer Volume-Gruppe (VG) in LVM hinzu

  3. So löschen Sie eine Festplattenpartition mit dem Parted-Befehl

  4. Erweitern Sie die Datenträgergruppe nach dem Erweitern des physischen Datenträgers

  5. Wie verwende ich die Befehlszeile, um die Lautstärke zu ändern?

So partitionieren Sie eine Festplatte unter Linux

So klonen Sie Festplatten mit dem Linux-Befehl dd

So klonen und wiederherstellen Sie eine Linux-Partition mit dem dd-Befehl

So erstellen Sie eine Partition mit dem Befehl „parted“

CentOS / RHEL :So erweitern Sie das physische Volume in LVM, indem Sie die verwendete Festplattenpartition erweitern

Ist es möglich, ein EXT4-Volume mit LVM online zu verkleinern?