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/sdb1
und ihn sudo resize2fs /dev/sdb1
anschließ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/vda3
damit die Änderungen angewendet wurden.
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) ( x
und dann z
in 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 x
und dann e
in können gdisk
.