Frage Wie erweitere ich eine ext4 Partition und ein Dateisystem?


Ich habe eine 400GB Festplatte mit einer 320GB ext4 Partition. Ich möchte die ext4-Partition vergrößern, um den linken Speicherplatz (80 GB freien Speicherplatz) zu verwenden.

+--------------------------------+--------+
|             ext4               |  Free  |
+--------------------------------+--------+

Wie könnte ich das tun?

Ich habe Leute gesehen, die benutzt haben resize2fs aber ich verstehe nicht, ob die Größe der Partition geändert wird.

Eine andere Lösung wäre zu verwenden fdisk aber ich möchte meine Partition nicht löschen und Daten verlieren. Wie kann ich die Partition einfach vergrößern, ohne eine Datei zu verlieren?

Hinweis: Ich spreche von einer nicht bereitgestellten Datenpartition ohne LVM, und ich habe Sicherungskopien, aber ich möchte vermeiden, dass Zeit für die Wiederherstellung aufgewendet wird.


31
2018-05-21 07:49


Ursprung


Diese Art von Frage wurde mehrmals gestellt und beantwortet. Hast du das Archiv hier konsultiert? - mdpc


Antworten:


Sie müssen mit der unmounted Partition beginnen. Wenn Sie es nicht abmelden können (z. B. ist es Ihre Root-Partition oder etwas anderes, das das System ausführen muss), verwenden Sie etwas wie System-Rettungs-CD stattdessen.

  1. Lauf parted, oder gparted Wenn Sie eine GUI bevorzugen, ändern Sie die Größe der Partition, um den zusätzlichen Speicherplatz zu nutzen. ich bevorzuge gparted Es gibt Ihnen eine schöne grafische Darstellung, die der Ihrer Frage sehr ähnlich ist.

  2. resize2fs /dev/whatever

  3. e2fsck /dev/whatever (nur um herauszufinden, ob Sie auf der sicheren Seite sind)

  4. Remount deine Partition.

Während ich dies noch nie gesehen habe, sichern Sie zuerst Ihre Daten!


30
2018-05-21 08:03



Das resize2fs Manpage sagt: Wenn das Dateisystem gemountet ist, kann es verwendet werden, um die Größe des eingehängten Dateisystems zu erweitern, vorausgesetzt, der Kernel unterstützt die Online-Größenanpassung. (Zum jetzigen Zeitpunkt unterstützt der Linux 2.6-Kernel eine Online-Größenanpassung für Dateisysteme, die mit ext3 und ext4 eingebunden wurden.).  Die Größenänderung eines angehängten Dateisystems ist jedoch eine gefährlichere Operation, da der Kernel leicht einfrieren oder abstürzen kann, während er selten ausgeübten Code ausführt, wodurch Ihr Dateisystem in einem schlechten Zustand bleibt. - 200_success
Richtig - aber Sie möchten nicht mit Ihrer Partitionstabelle mit dem angehängten Dateisystem rumspielen. Deshalb habe ich mit dem fs unmounted angefangen. - Flup
Für ext4 könnte sein resize4fs statt auf RHEL 5. - Zac Thompson
Das Wachstum der Partition mit Ihrem Root-Dateisystem sollte gut funktionieren, solange: 1. Sie ändern die Startsektornummer nicht. 2. Sie starten nach dem Ändern der Partitionstabelle neu, bevor Sie den nächsten Schritt ausführen. - kasperd
parted weigert sich, die Größe einer ext4-Partition auf CentOS 6 zu ändern. - reinierpost


Ja, Sie können EXT4 fs online erstellen, wenn die Partition bereits sortiert ist. Hast du die Partition sortiert? Hast du LVM?

sudo resize2fs /dev/drive_to_grow

fdisk wird die Größe der Partition ändern, stimmt, aber wenn dies eine Root-Partition ist (oder wenn es sich um eine gemountete Partition handelt), muss sie zuerst deaktiviert werden. Also wahrscheinlich offline!

Wie bei allem, was mit Festplatten- / fs-Operationen zu tun hat, empfehle ich dringend, einen Sicherungsprozess zu haben, der getestet und gut verstanden wird.


14
2018-05-21 08:01



Wenn du benutzt fdisk Vergewissern Sie sich, dass Sie MBR und nicht GPT verwenden (z. B. mit Hybrid-MBR). - stek29
Auf meinem debian XEN Server habe ich mein logisches Volumen mit verändert lvextend +40G /dev/vg0/volumeName, dann als Root in der VM angemeldet und eingetragen resize2fs /dev/xvda2 welche wächst das laufende Root-Dateisystem zum neuen max. Ich bin mir nicht sicher, ob das nötig war, aber ich habe die VM nach dieser Aktion neu gestartet. Alles scheint in Ordnung zu sein. - rubo77
@ rubo77 Nein, keine Notwendigkeit für einen Neustart, - Chris


Beachten Sie, dass auf einigen VDS-Servern eine nicht primäre Root-Partition vorhanden sein kann und die Größe des erweiterten Partitionscontainers zuerst geändert werden muss

Zum Beispiel haben Sie gerade Ihren Plan aktualisiert und haben so etwas wie:

Disk /dev/vda: 83886080s
Number  Start    End        Size       Type      File system  Flags
1      2048s    194559s    192512s    primary   ext2         boot
2      196606s  51197951s  51001346s  extended
5      196608s  51197951s  51001344s  logical   ext4

Hier / dev / vda2 - ist Ihr erweiterter Container. Und / dev / vda5 - Hauptpartition, die wir auf den vollen verfügbaren Platz skalieren müssen.

Der einfachste Weg:

apt-get -y install parted
parted /dev/vda unit s print all # print current data for a case
parted /dev/vda resizepart 2 yes -- -1s # resize /dev/vda2 first
parted /dev/vda resizepart 5 yes -- -1s # resize /dev/vda5
partprobe /dev/vda # re-read partition table
resize2fs /dev/vda5 # get your space

4
2018-02-26 22:53



Was mir wirklich geholfen hat, war zu sehen, dass man sich festlegen kann END zur negativen Zahl. In der Regel kennen Sie die genaue Größe der Größe einer resizierenden Partition nicht - Sie wissen nicht, wie sie eingestellt wird END Argument von resizepart. Einstellen auf -1s wird die Größe der Partition auf max. - srigi


Parted funktioniert nicht auf ext4 auf Centos. Ich musste fdisk verwenden, um die Partition zu löschen und neu zu erstellen, die (ich validierte) funktioniert, ohne Daten zu verlieren. Ich folgte den Schritten bei http://geekpeek.net/resize-filesystem-fdisk-resize2fs/. Hier sind sie, kurz gesagt:

$ sudo fdisk /dev/sdx 
> c
> u
> p
> d
> p
> w
$ sudo fdisk /dev/sdx 
> c
> u
> p
> n
> p
> 1
> (default)
> (default)
> p
> w

3
2017-12-05 22:27



Willkommen bei Serverfehler! Bitte fassen Sie die Schritte in der Antwort selbst zusammen, um sich vor Linkfäule zu schützen. - 200_success
Benutzte diesen Prozess, benutzte aber gdisk zum Erstellen der Partition. Dadurch konnte ich die Daten speichern und eine Partition erstellen, die> 2 TB war - pcnate


parted können resize Partitionen und ihre Dateisysteme.


2
2018-05-21 07:55



Danke, ich habe das grafische verwendet und es unterstützt keine Größenänderung von Partitionen. Ich habe die Option auf dem CLI-Programm gesehen, aber könnten Sie mir sagen, wie man es sicher benutzt, ohne Daten zu verlieren? Im resize NUMBER START END, sind START und END die Sektornummern? Woher soll ich das wissen? - mimipc
Es wird immer empfohlen, Ihre Daten zu sichern, bevor Sie riskante Operationen wie das Ändern der Größe einer Partition ausführen. parted unterstützt eine Auswahl von Einheiten - zum Beispiel die s Suffix für Sektoren, B oder GB für Bytes, % für Prozentsatz der Gerätegröße und cyl für Zylinder. - 200_success


Sie können verwenden fdisk oder cfdisk um die Partition zu ändern (oder neu zu erstellen) (nur sicher sein, dass Sie ihre Startgrenze nicht ändern), dann neu starten und resize2fs. Aber im Allgemeinen ist es vorzuziehen, LVM-2 anstelle von MBR / GPT zu verwenden, da es Ihnen ermöglicht, diese Änderungen ohne Neustart des Kernels einzubringen.


2
2018-05-21 08:00





Nur um zu verdeutlichen, wie ich das für jeden mache, der diesen Thread noch liest.
Wenn es sich um die Boot-Partition handelt, für die Sie die Größe ändern möchten, müssen Sie von einem bootcd- oder bootusb- "rescue" -Laufwerk booten, das nur ein Live Linux ist. Auf diese Weise können Sie Linux auf einem anderen Computer als dem Laufwerk ausführen, auf dem Sie Änderungen vornehmen möchten.

Ich denke, die beste "Rettungs" CD oder USB in diesem Fall wäre eine bootfähige gparted USB oder CD
Fälle, in denen Sie ein Rettungsbild benötigen
1. Die zu erweiternde Partition ist die letzte Partition, aber Sie haben von ihr gebootet und können sie nicht aushängen.
sda1 = Boot (oder Swap)
sda2 = tauschen (oder booten)
sda3 = /
Unbenutzter Platz

  1. Wenn die zu erweiternde Partition NICHT die letzte Partition ist, müssen Sie zum Verschieben oder Ändern der Größe der Partitionen gparted boot image verwenden.
    sda1 = boot
    sda2 = / (zu erweiternde Partition ist nicht zuletzt)
    sda3 = tauschen
    ungenutzter Platz

Wenn Sie eine gemountete Partition, die nicht die "root" -Partition (/) ist, wie / home, die eine andere Partition ist, ändern möchten, müssen Sie kein Rescue-Image verwenden. Dies gilt insbesondere, wenn es sich um die letzte Partition handelt.
sda1 = boot
sda2 = /
sda3 = / home
ungenutzter Platz
-oder-
sda1 = /
sda2 = / home
ungenutzter Platz

Dies ist die Situation, die ich habe, wenn ich ein Image von einem kleineren Laufwerk oder einer SSD nehme und es auf eine größere SSD verschiebe.

In diesem Fall müssen Sie einfach / home aushängen, während Sie es erweitern. Um jedoch die Verbindung zu trennen, müssen Sie sicherstellen, dass Sie nicht bei einem Benutzerkonto angemeldet sind, dessen Heimatverzeichnis darin enthalten ist. Da sich das Stammverzeichnis des Benutzers "root" direkt unter dem System root / befindet, wie in / root, können Sie, wenn Sie sich bei root anmelden können, den Eintrag "/ home" aushängen

Ich logge mich von einer GUI (KDE / Gnome / etc) -Sitzung ab und benutze [STRG] + [ALT] + [F1], um eine Shell-Sitzung aufzurufen.
Wenn Sie sich gerade von einem Benutzerabmelden abgemeldet haben, kann es 20-30 Sekunden dauern, bis Linux alle Dateien geschlossen hat, so dass Sie möglicherweise Fehler erhalten, wenn Sie versuchen, umount / home zu schließen.
1. umount / home (Ich versuche diesen Befehl, wenn es für bis zu 30 Sekunden fehlschlägt, dann schaue dir andere Sessions an, um zu sehen, ob ich irgendwo "cd / home / xxx" bin.)
2. parted / dev / sda
   ein. Größe ändern x (x = Partition, die Sie die Größe ändern möchten, verwenden Sie "p", um eine Liste der Partitionen zu erhalten)
   b. Geben Sie den letzten Sektor von resize = "-1" ein (minus 1 bedeutet 1 Sektor vom Ende der Festplatte)
   c. q (wird geteilt)
3 resize2fs / dev / sda "x" (x = Partition wird in der Größe verändert. Dies bringt auch das Dateisystem zurück)
4. df -m (Ich überprüfe / Home, um zu überprüfen, ob die Größe geändert wurde)
Ich habe nie Dateien verloren oder das Laufwerk mit dieser Methode beschädigt.

Viel Glück


0
2017-12-05 03:20



Und dennoch machen Sie keine Backups. - Deer Hunter