Wie erweitere ich eine Partition mit einem LVM und dem darin enthaltenen physischen und logischen Volume?

33

Auf meiner 240 GB SSD hatte ich zuerst zwei Partitionen, eine mit dem Logical Volume mit Linux Mint und die andere mit einer NTFS-Partition, die ich mit Windows teilen wollte. Jetzt habe ich die NTFS-Partition entfernt und möchte meine logische Datenträgergruppe erweitern, um den freigegebenen Speicherplatz zu nutzen.

Wie erweitere ich die Datenträgergruppe , meinen logischen Datenträger mit / home und das Dateisystem (ext4) auf / home? Ist das online möglich?

PS: Ja, ich weiß, dass ich meine Daten sichern muss :)

/dev/sdb/  (240GB)
    linuxvg  (160GB) should use 100% of the disk space
        swap
        root
        home (ext4, 128GB) should be extended to use the remaining space

Ausgabe von sudo vgdisplay:

  --- Volume group ---
  VG Name               linuxvg
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               160,00 GiB
  PE Size               4,00 MiB
  Total PE              40959
  Alloc PE / Size       40959 / 160,00 GiB
  Free  PE / Size       0 / 0   
  VG UUID               ...

  --- Logical volume ---
  LV Path                /dev/linuxvg/swap
  LV Name                swap
  VG Name                linuxvg
  LV UUID                ...
  LV Write Access        read/write
  LV Creation host, time mint, 2013-08-06 22:48:32 +0200
  LV Status              available
  # open                 2
  LV Size                8,00 GiB
  Current LE             2048
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0

  --- Logical volume ---
  LV Path                /dev/linuxvg/root
  LV Name                root
  VG Name                linuxvg
  LV UUID                ...
  LV Write Access        read/write
  LV Creation host, time mint, 2013-08-06 22:48:43 +0200
  LV Status              available
  # open                 1
  LV Size                24,00 GiB
  Current LE             6144
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:1

  --- Logical volume ---
  LV Path                /dev/linuxvg/home
  LV Name                home
  VG Name                linuxvg
  LV UUID                ...
  LV Write Access        read/write
  LV Creation host, time mint, 2013-08-06 22:48:57 +0200
  LV Status              available
  # open                 1
  LV Size                128,00 GiB
  Current LE             32767
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:2

  --- Physical volumes ---
  PV Name               /dev/sdb1     
  PV UUID               ...
  PV Status             allocatable
  Total PE / Free PE    40959 / 0

Ausgabe von sudo fdisk -l:

Disk /dev/sdb: 240.1 GB, 240057409536 bytes
255 heads, 63 sectors/track, 29185 cylinders, total 468862128 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1   468862127   234431063+  ee  GPT

Disk /dev/mapper/linuxvg-swap: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders, total 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


Disk /dev/mapper/linuxvg-root: 25.8 GB, 25769803776 bytes
255 heads, 63 sectors/track, 3133 cylinders, total 50331648 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


Disk /dev/mapper/linuxvg-home: 137.4 GB, 137434759168 bytes
255 heads, 63 sectors/track, 16708 cylinders, total 268427264 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
klingt.net
quelle
2
Nun, die einfache Möglichkeit wäre gewesen, einfach die NTFS-Partition zu erstellen und zu verwenden vgextend, anstatt die Partition vollständig zu entfernen. Wenn Sie stattdessen die vorhandene PV-Partition vergrößern, müssen Sie wahrscheinlich neu starten, da Linux sich weigert, die Partitionstabelle erneut zu lesen, während die Festplatte verwendet wird. Online daran zu arbeiten ist umständlich. - Bitte zeigen Sie Ihre aktuelle Partitionstabelle.
Frostschutz
Ich kann bei Bedarf neu starten.
klingt.net

Antworten:

44

Sie können dies ziemlich einfach tun. Ein bisschen überrascht, dass es hier schon keine Antwort gibt.

Sie können diesen gesamten Prozess ausführen, während Sie das Dateisystem verwenden, dessen Größe Sie ändern möchten (ja, es ist sicher und wird vollständig unterstützt). Rettungs-CDs oder alternative Betriebssysteme sind nicht erforderlich.

  1. Ändern Sie die Größe der Partition (Sie können dies auch bei laufendem System tun). GParted ist einfach zu bedienen und unterstützt die Größenänderung.
    Sie können auch ein untergeordnetes Tool verwenden, z fdisk. Sie müssen jedoch die Partition löschen und neu erstellen. Stellen Sie dabei nur sicher, dass die neue Partition genau am selben Ort beginnt.
  2. Starten Sie neu. Da die Partitionstabelle auf dem laufenden System geändert wurde, wird sie erst nach einem Neustart wirksam.
  3. Führen Sie pvresize /dev/sdXYden Befehl aus, damit LVM den neuen Speicherplatz abholt.
  4. Ändern Sie die Größe des logischen Volumes mit lvextend. Wenn Sie wollen, um das Ganze verwenden lvextend -r -l +100%FREE /dev/VGNAME/LVNAME. Das -rwird das Dateisystem als auch die Größe neu.
    Ich empfehle jedoch immer, nicht die gesamte Volumengruppe zu verwenden. Sie wissen nie, was Sie in Zukunft brauchen werden. Sie können später immer erweitern, Sie können nicht verkleinern.
Patrick
quelle
3
Ich möchte Ihre Antwort akzeptieren, aber ich habe nicht wie von Ihnen vorgeschlagen gearbeitet, da GParted die Größe der Root-Partition auf einem laufenden System nicht ändern kann (zumindest in meinem Fall).
klingt.net
@HalosGhost Ich habe deine Bearbeitung zurückgesetzt. partprobe -stut nicht, was du denkst. Der Kernel erkennt nicht die Größe einer Partition, die gerade verwendet wird. partprobe -sFunktioniert nur, wenn die Partition während der Größenänderung verwendet wurde (wenn also fdisk den Kernel benachrichtigt hat, ist sie fehlgeschlagen), ist aber nicht mehr aktiv.
Patrick
@Patrick, ich habe die Idee dazu nicht hinzugefügt; Ich habe die Bearbeitung "verbessert", indem ich den Befehl in Backticks eingefügt habe (der Krieg um den Code entzieht sich den Löhnen!).
HalosGhost
Oh, sorry, lies den Namen von dem falschen Ereignis in der Geschichte. @ Qetesh, die dann für Sie gilt :-)
Patrick
1
Es ist möglich, mit "partx -u" für Schritt 2 überhaupt nicht neu zu starten, um den Kernel anzuweisen, die Größe der Partition zu aktualisieren: Funktioniert auch auf aktiven Partitionen und kann überprüft werden, indem /sys/.../sdXY/size vor und überprüft wird nach.
AB
11

Keine der Antworten wird der Macht von LVM gerecht.

(Dies basiert auf @frostchutz Kommentar zur obigen Frage.)

Kommen wir zu den Fakten:

  • OP hat zwei Partitionen, sdb1 und sdb2 ist ein physisches Volume für LVM.
  • sdb1 ist jetzt ntfs. Diesen Platz müssen wir dem homelogischen Datenträger in der linuxvgDatenträgergruppe zuweisen .

LVM-Schritte auf "pragmatische Weise":

  • Erstellen Sie ein physisches Volume auf SDB1: pvcreate /dev/sdb1
  • füge sdb1 hinzu zu linuxvg:vgextend linuxvg /dev/sdb1
  • Erweitern Sie das logische Volume homemit dem gesamten freien Speicherplatz:lvextend -l +100%FREE /dev/linuxvg/home
  • ext4 fs erweitern: resize2f /dev/linuxvg/home

LVM ermöglicht ein hohes Maß an Indirektion. Ein logisches Volume befindet sich in einer Volume-Gruppe, für die möglicherweise mehrere Datenträger verwendet werden.

home -> linuxvg -> (sdb1, sdb2, sdc1)

http://tldp.org/HOWTO/LVM-HOWTO/createvgs.html

MGP
quelle
10

Die Frage wurde nach dem Lesen dieses Blogposts gelöst . Ich werde die Lösung in Kurzform schreiben:

  • Booten von einer Live-CD mit
  • benutze gdisk(wenn du GPT verwendest) sonst könntest du mit guten alten gehenfdisk
  • Notieren Sie in meinem Fall Ihre Partitionseinstellungen gdisk -l /dev/sdb
  • Löschen Sie Ihre Partition mit
  • erstelle eine neue Partition mit genau der gleichen Ausrichtung wie die vorherige (in meinem Beispiel ab Block 2048)
  • Schreiben Sie Ihre neue Partitionstabelle
  • Führen Sie diesen partprobe -sBefehl aus, um die Partitionstabelle ohne Neustart zu aktualisieren
  • Ändere die Größe deines physischen Volumens mit pvresize /dev/sdb1oder wo immer dein pv ist (benutze diese Option, pvsum festzustellen, ob du es nicht weißt)
  • Ändern Sie jetzt die Größe Ihres logischen Volumes lvextend -l +100%FREE /dev/file/of/your/lvin meinem Fall mitsudo lvextend -l +100%FREE /dev/linuxvg/home
  • Verändern Sie die Größe des Dateisystems sudo resize2fs /dev/linuxvg/home
  • Überprüfen Sie zuerst die Konsistenz sudo e2fsck -f /dev/linuxvg/home
  • genießen :)
klingt.net
quelle
Tatsächlich können Sie ungefähr die Hälfte dieser Schritte ausschneiden und dies mit nur einem Neustart tun.
Patrick
GParted weigerte sich, die Größe der Partition zu ändern, da diese gesperrt war (dieses Schlüsselsymbol).
klingt.net
4

Einige gute Antworten schon.

Wenn Sie xfs verwenden, verwenden Sie den Befehl

xfs_growfs /mountpoint

anstatt resize2fs. Sie können dies tun, während dieser Einhängepunkt aktiv ist, z. B. wenn Sie die Root-Partition vergrößert haben und danach keinen Neustart durchführen müssen.

Paul M
quelle