Erhöhte Festplattengröße in einer virtuellen Maschine, aber gdisk möchte den neuen Speicherplatz nicht verwenden

Erhöhte Festplattengröße in einer virtuellen Maschine, aber gdisk möchte den neuen Speicherplatz nicht verwenden

Ich habe eine VM mit einer virtuellen Festplatte (sichtbar als /dev/sdb) mit einer Größe von 10G

Der Administrator hat die Größe der virtuellen Festplatte auf 60 GB erhöht.

Ich habe die Maschine neu gestartet und sehe jetzt, dass die Festplatte größer ist.

root@DMZMHLX3:~# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
...
sdb      8:16   0   60G  0 disk 
└─sdb1   8:17   0   10G  0 part /app
...

Nun möchte ich eine weitere Partition hinzufügen:

gdisk teilt mir mit, dass die Festplatte eine Größe von 60 GB hat, der letzte nutzbare Sektor jedoch ein Sektor ist, der der alten 10-GB-Festplattenabbildgröße entspricht:

root@DMZMHLX3:~# gdisk -l /dev/sdb
GPT fdisk (gdisk) version 1.0.1

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/sdb: 125829120 sectors, 60.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): FCE659D1-3690-4C3C-93EC-79B51EE8556D
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 20971486
Partitions will be aligned on 2048-sector boundaries
Total free space is 4029 sectors (2.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048        20969471   10.0 GiB    8300  

Der letzte nutzbare Sektor sollte etwa 125829120 und nicht 20971486 sein.

Obwohl sich die Größe des Disk-Images erhöht hat und die VM die Änderung erkennt, weiß ich nicht, wie ich den neu verfügbaren Speicherplatz nutzen soll.

fdisk zeigt mir:

root@DMZMHLX3:~# fdisk -l /dev/sdb
GPT PMBR size mismatch (20971519 != 125829119) will be corrected by w(rite).
Disk /dev/sdb: 60 GiB, 64424509440 bytes, 125829120 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
Disklabel type: gpt
Disk identifier: FCE659D1-3690-4C3C-93EC-79B51EE8556D

Device     Start      End  Sectors Size Type
/dev/sdb1   2048 20969471 20967424  10G Linux filesystem

Es erkennt eine Nichtübereinstimmung:

GPT PMBR-Größenkonflikte (20971519 != 125829119) werden von w(rite) korrigiert. Beim Versuch, fdisk zu schreiben, schlägt jedoch Folgendes fehl:

Command (m for help): w
GPT PMBR size mismatch (20971519 != 125829119) will be corrected by w(rite).
fdisk: failed to write disklabel: Invalid argument
root@xxx:~# 

Wie kann ich dieses Problem beheben?

Das ultimative Ziel ist, die Größe der vorhandenen Partition zu erhöhen, aber selbst wenn ich nur neue Partitionen hinzufügen kann, wäre ich schon glücklich

Antwort1

Entsprechend derDie Größenänderung der Partition fdisk schlägt mit einem ungültigen Argument fehlposten, es scheint, dass Sie verwendengetrennt(zB sudo parted -l) und lass es „Fix" das Problem mit der Partitionstabelle, die nicht die gesamte Festplatte abdeckt oder was auch immer.

Sobald die Korrektur mit diesem Tool angewendet wurde, um das Problem zu beheben, können Sie einfach mit dem Befehl fortfahren sudo fdisk /dev/sdb1und ihn sudo resize2fs /dev/sdb1anschließend ausführen, um die Änderungen anzuwenden.

Wichtig: Vergessen Sie nicht, vollständige Systemsicherungen durchzuführen, bevor Sie Änderungen an der Festplattenpartition vornehmen.

Ich konnte das Problem ziemlich einfach lösen. Ich installierte parted und als ich es ausführte, wurde mir mitgeteilt, dass die Partitionstabelle nicht die gesamte Festplatte abdeckte (natürlich). Ich wurde also gefragt, ob ich das Problem beheben oder abbrechen soll, worauf ich mit „Beheben“ antwortete.

Das hat anscheinend geholfen, da ich die Partition mithilfe von auf die volle Größe ändern konnte sudo fdisk /dev/vda, danach musste ich jedoch ausführen, sudo resize2fs /dev/vda3damit die Änderungen angewendet wurden.

Quelle

Zusätzlich gibt es Ratschläge von anderen zumDie Größenänderung der Partition fdisk schlägt mit einem ungültigen Argument fehlPosten Sie in Form von Antworten und Kommentaren, die Sie möglicherweise auch nützlich und hilfreich finden.


Unterstützende Ressourcen

Antwort2

Die Post Erweitern einer Partition auf einer VMware-Festplatte unter Linux hat dieses Verfahren:

  • Reparieren Sie die GPT-Tabelle mit parted:sudo parted -l
  • Stoppen Sie alle Dienste, die auf diese Datenträger zugreifen, und hängen Sie den Datenträger aus. Beispiel:

    sudo systemctl stop jenkins.service
    sudo systemctl stop apache2.service
    sudo umount /dev/sdb1
    

    Dieser Schritt kann vermieden werden, indem Sie wie unten beschrieben von der GParted-Festplatte booten.

  • Erweitern Sie die Partition von fdisk:sudo fdisk /dev/sdb


Da das Vergrößern der Festplatte innerhalb der VM das Stoppen aller Dienste erfordert, die die Festplatte verwenden könnten, kann dies vermieden werden, indem die VM mit GParted.

Der Artikel Verwenden Sie GParted, um die Festplattengröße einer nativen Linux-Partition zu erhöhen beschreibt den gesamten Vorgang im Detail.

Antwort3

Der Grund hierfür liegt darin, dass GPT eine Sicherungskopie der Partitionstabelle am Ende der Festplatte platziert, so dass die Sicherung nicht automatisch dorthin geht, auch wenn die Festplatte ein „neues Ende“ hat, und die nutzbaren Blöcke auf den alten „Bereich“ beschränkt bleiben.

Sie können die GPT einfach „zappen“ (löschen) ( xund dann zin gdisk) und dann eine neue mit denselben Partitionseinträgen erstellen (indem Sie denselben Anfang und optional dasselbe Ende eingeben).

Wenn Sie per UEFI booten, sollte es kein Problem sein, auch den schützenden MBR zu löschen, da kein Bootcode vorhanden sein sollte, der beibehalten werden muss.

EDIT: Eigentlich scheint es, dass Sie einfach xund dann ein können gdisk.

verwandte Informationen