Wie kann man eine XFS-Festplatte vergrößern?

3690
Edik Mkoyan

Hier ist der Datenträger, es handelt sich um einen Thin-Vmware-Datenträger, der von 300 auf 800 GB erweitert wurde

 * -Disk: 1 Beschreibung: SCSI-Diskette physikalische id: 0.1.0 Businfo: scsi @ 2: 0,1,0 Logischer Name: / dev / sdb Größe: 800 GB (858 GB) Fähigkeiten: partitioniert partitioniert: dos Konfiguration: Sektorgröße = 512 Signatur = 4268053f  

Hier ist der

df -h
Ausgabe

/ dev / sdb1 300G 27G 273G 9% / Daten 

und es bleibt unverändert, wenn ich das tue

[evn-mrs-slave] ~> xfs_growfs -d / data meta-data = / dev / sdb1 isize = 256 agcount = 4, agsize = 19660736 blks = sectsz = 512 attr = 2 Daten = Größe = 4096 Blöcke = 78642944, imaxpct = 25 = sunit = 0 swidth = 0 blks Benennung = Version 2 bsize = 4096 ASCII-ci = 0 log = interne Größe = 4096 Blöcke = 38399, Version = 2 = sectsz = 512 sunit = 0 blks, Lazy-count = 1 Echtzeit = keine extsz = 4096 Blöcke = 0, rtextents = 0 Datengröße unverändert, überspringen
3
Sie müssen die * Partition * vergrößern, bevor Sie das * Dateisystem * vergrößern können. Das * Dateisystem * befindet sich innerhalb der * Partition *, und die * Partition * ist immer noch '300GiB` groß, obwohl die Festplatte jetzt `800GiB` groß ist. Deltik vor 8 Jahren 2
Ich denke, das ist eher eine Antwort als ein Kommentar. Xavierjazz vor 8 Jahren 0
Kannst du zeigen, wie das geht? Edik Mkoyan vor 8 Jahren 0
@Xavierjazz: [Ich habe ein bisschen gearbeitet.] (Http://superuser.com/a/1001486/83694) Deltik vor 8 Jahren 2

1 Antwort auf die Frage

5
Deltik

Sie müssen die Partition vergrößern, bevor Sie das Dateisystem vergrößern können . Das Dateisystem befindet sich innerhalb der Partition und die Partition ist immer noch 300GiBgroß, obwohl die Festplatte jetzt 800GiBgroß ist.

Größe einer Partition ändern

Partitionen können nicht in der Größe geändert werden. Sie können jedoch gelöscht und anschließend neu erstellt werden. Wenn eine Partition gelöscht wird, befinden sich die zugrunde liegenden Daten noch im Takt. Es ist nicht zu schwierig, eine Partition zu löschen und neu zu erstellen, aber die Berechnung muss genau richtig ausgeführt werden. Andernfalls wird das Dateisystem in der Partition durch eine falsche Ausrichtung oder eine zu geringe Größe beschädigt.

Normalerweise ziehe ich es nicht vor, GUIs zu verwenden, aber die Größenänderung von Partitionen über die Befehlszeile ist anfällig für menschliches Versagen, indem die Partitionstabelle (normalerweise msdosoder gpt), der Partitionsanfang, das Partitionsende und die richtige Größe berücksichtigt werden.

WARNUNG: Bevor Sie fortfahren, sollten Sie eine Sicherungskopie Ihres XFS-Dateisystems erstellen, indem Sie dieses Verfahren verwenden (wobei /dev/sdg1sich das XFS-Dateisystem befindet und /path/to/backup.xfswo Sie Ihren XFS-Dump speichern möchten):

mount /dev/sdg1 /mnt xfsdump -f /path/to/backup.xfs -L MySession -M MyMedia /mnt 

Wenn etwas schief geht, können Sie eine neue XFS-Partition wiederherstellen:

mount /dev/sdg1 /mnt # … where /dev/sdg1 is a new XFS partition xfsrestore -f /path/to/backup.xfs /mnt 

Einfacher Weg

GParted führt alle Berechnungen für Sie durch:

Screenshot of GParted's partition resize feature

Es ist sehr selbsterklärend und erweitert sogar das XFS-Dateisystem.
Dies ist im Allgemeinen ein sicheres Verfahren.

fdisk Weg

Verwenden Sie fdiskdiese Option, um die Partition zu löschen und neu zu erstellen. Vollständiges Beispiel:

root@node53 [~]# fdisk /dev/sdg  Welcome to fdisk (util-linux 2.25.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command.   Command (m for help): p Disk /dev/sdg: 991.5 MiB, 1039663104 bytes, 2030592 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: FAFC7A8C-52CB-4FF2-9746-391D50BF729C  Device Start End Sectors Size Type /dev/sdg1 2048 1050623 1048576 512M Linux filesystem 

Beachten Sie die StartPosition " " ( in diesem Beispiel den 2048th- Sektor). Sie müssen dies als ersten Sektor eingeben, wenn Sie die Partition neu erstellen.

Command (m for help): d Selected partition 1 Partition 1 has been deleted.  Command (m for help): n Partition number (1-128, default 1): 1 First sector (34-2030558, default 2048): 2048 Last sector, +sectors or +size (2048-2030558, default 2030558): 2030558 

fdiskverwendet standardmäßig den größten zusammenhängenden freien Speicherplatz. (In diesem Beispiel handelt es sich um den 2030558th- Sektor.)

Created a new partition 1 of type 'Linux filesystem' and of size 990.5 MiB.  Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks. 

Jetzt haben Sie eine größere Partition, die ein kleineres XFS-Dateisystem enthält. Diese Befehle erweitern das XFS-Dateisystem:

root@node53 [~]# mount -v /dev/sdg1 /mnt mount: /dev/sdg1 mounted on /mnt.  root@node53 [~]# xfs_growfs /mnt meta-data=/dev/sdg1 isize=256 agcount=4, agsize=32768 blks = sectsz=512 attr=2, projid32bit=1 = crc=0 finobt=0 data = bsize=4096 blocks=131072, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=0 log =internal bsize=4096 blocks=853, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 131072 to 253563 

Boom, du hast eine erweiterte XFS-Partition:

root@node53 [~]# df -hT /mnt Filesystem Type Size Used Avail Use% Mounted on /dev/sdg1 xfs 988M 26M 962M 3% /mnt 

xfsdump Weg (nur Weg, um XFS zu verkleinern)

Hast du ein Backup gemacht, als ich es dir gesagt habe? Ja? Gut! Ich ziehe es xfsrestorevor, xfsdumps auf neuen Partitionen wiederherzustellen . Der Vorteil ist, dass Sie XFS-Dateisysteme mit dieser Methode tatsächlich verkleinern können, der Nachteil ist jedoch, dass alle Daten neu geschrieben werden müssen, was langsamer ist.

Sie können die fdiskobige Methode tatsächlich verwenden, um die Partition neu zu erstellen. Führen Sie nach dem Beenden fdiskstattdessen Folgendes aus:

root@node53 [~]# mkfs.xfs -f /dev/sdg1 meta-data=/dev/sdg1 isize=256 agcount=4, agsize=63391 blks = sectsz=512 attr=2, projid32bit=1 = crc=0 finobt=0 data = bsize=4096 blocks=253563, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=0 log =internal log bsize=4096 blocks=853, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 root@node53 [~]# mount -v /dev/sdg1 /mnt mount: /dev/sdg1 mounted on /mnt. root@node53 [~]# xfsrestore -f /path/to/backup.xfs /mnt xfsrestore: using file dump (drive_simple) strategy xfsrestore: version 3.1.4 (dump format 3.0) - type ^C for status and control xfsrestore: searching media for dump xfsrestore: examining media file 0 xfsrestore: dump description:  xfsrestore: hostname: andie xfsrestore: mount point: /mnt xfsrestore: volume: /dev/sdg1 xfsrestore: session time: Mon Nov 16 14:44:20 2015 xfsrestore: level: 0 xfsrestore: session label: "MySession" xfsrestore: media label: "MyMedia" xfsrestore: file system id: c5981472-9b75-4fad-9bd8-d1bd04086f8d xfsrestore: session id: 092b0cf3-120d-43c1-b8ce-23300abf558e xfsrestore: media id: 3cc0f4db-665f-40fd-ac54-493625f712f5 xfsrestore: using online session inventory xfsrestore: searching media for directory dump xfsrestore: reading directories xfsrestore: 1 directories and 0 entries processed xfsrestore: directory post-processing xfsrestore: restore complete: 0 seconds elapsed xfsrestore: Restore Summary: xfsrestore: stream 0 /path/to/backup.xfs OK (success) xfsrestore: Restore Status: SUCCESS