Ich habe zwei logische Volumes, eines ist als / gemountet, das andere ist als / home gemountet.
Ich möchte sie kombinieren, weil der /
Speicherplatz ständig knapp wird. (Ja, ich weiß, was den ganzen Platz belegt. Nein, ich kann ihn nicht entfernen.)
Ich bin bereit, die Maschine für ein oder zwei Tage auszuschalten, um das zu tun.
Betriebssystem: Linux xxxxx 2.6.32-279.22.1.el6.x86_64 #1 SMP Wed Feb 6 03:10:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
(CentOS)
/
Lautstärke erhöhen, ist das nicht der Sinn von LVM?Antworten:
Ich bin fertig und die Neupartitionierung hat funktioniert. Da jedoch in beiden Handbüchern Bereiche fehlen, werde ich zusammenfassen, was ich getan habe. Bitte beachten Sie, dass ich meinen Benutzernamen durch
zzzz
und den Namen meines Computers durch ersetzt habexxxxxxx
. Sofern nicht anders angegeben, sollten alle Befehle als root ausgeführt werden.Zuerst habe ich gesichert:
Dadurch wird eine komprimierte Sicherung des Verzeichnisses / home erstellt und auf meinem externen Laufwerk abgelegt. (Beachten Sie, dass Ihr externes Laufwerk einen anderen Pfad hat.)
Jetzt müssen Sie im Einzelbenutzermodus neu starten.
Wenn sich Ihr Computer wieder einschaltet, müssen Sie nach einem Bildschirm wie diesem suchen:
Drücken Sie eine beliebige Taste, um dies zu unterbrechen. Sie sollten einen Bildschirm wie diesen sehen:
Drücken Sie a, dann Leertaste und geben Sie ein
single
. Drücke Enter.Sie sollten eine Eingabeaufforderung wie diese sehen:
Geben Sie die folgenden Befehle ein:
Es sollte Ihnen zeigen
Size
,Used
undAvail
. Wir interessieren uns fürUsed
.Notieren Sie, wie viel Speicherplatz von Ihrem Home-Volume belegt ist. Wir werden das später brauchen.
Erinnern Sie sich, wie viel Platz Ihr Heimvolume verbraucht hat? Verdopple das und gib es diesem Befehl. Zum Beispiel hatte ich 15 Gigabyte von meinem Home-Verzeichnis verwendet, so dass ich es auf 30 Gigabyte dimensionierte.
Warnung : Im nächsten Schritt können Daten verloren gehen. Stellen Sie sicher, dass Sie eine Größe eingeben, die größer als der vorherige Befehl ist. Fügen Sie sicherheitshalber 5 Gigabyte hinzu.
Weisen Sie die Root-Partition an, den gesamten Speicherplatz zu verwenden, den wir gerade freigegeben haben.
Kopieren Sie Ihre Daten in die Root-Partition
(Übrigens
-a
ist das wichtig, da sonst alles im Besitz von root ist und Sie das nicht wollen.)Überprüfen Sie kurz, ob die Daten korrekt kopiert wurden:
Jetzt entfernen wir die Home-Partition und weisen root an, den neuen Speicherplatz wieder zu belegen.
Zu diesem Zeitpunkt habe ich einen großen Fehler gemacht, aus dem Sie lernen können. Ich habe neu gestartet, und als das System wieder hochgefahren ist, hat es sich geweigert, meine Root-Partition als Lese- / Schreibzugriff bereitzustellen, da meine / home-Partition nicht bereitgestellt werden konnte. Also, bevor wir neu starten, tippen wir
Eine dieser Zeilen weist das System an, die / home-Partition einzuhängen. Stellen Sie ein
#
davor. Drücken Sie Strg-O, Enter, Strg-X. Jetzt können Sie neu starten.(Hypothetisch ist der Befehl zum Mounten der Root-Partition, wenn Sie vergessen haben, fstab wie ich zu bearbeiten.
mount -n -o remount -t ext2 /dev/vg_xxxxxxxx/lv_root /
)quelle
/home
. Solange Sie die Bereitstellung/home
aufheben können , können Sie sie entfernen. Ich bin jedoch nicht wirklich qualifiziert, Sie durch den Prozess zu führen. Dies ist etwas, über das Sie eine neue Frage stellen sollten.WARNUNG: Sichern Sie alle wichtigen Daten, bevor Sie etwas unternehmen!
Sie müssten alle Daten von der / home-Partition auf eine andere Partition, eine lokale Partition oder ein externes Laufwerk verschieben oder an einen anderen Ort, an dem genügend Speicherplatz vorhanden ist.
Entfernen Sie die / home lv und erweitern Sie dann die / (root) lv
Kopieren Sie die Daten zurück in das Verzeichnis / home
Bearbeiten 1
Die obige Antwort geht davon aus, dass Sie nicht genügend Speicherplatz in der Root-Partition haben, um die Daten in der Home-Partition abzulegen.
Ist dies nicht der Fall, hängen Sie die Home-Partition einfach an einer anderen Stelle ein und kopieren Sie die Daten. Beispiel:
Entfernen Sie dann einfach die Home-Partition und erweitern Sie die Root-Partition
quelle
Sie können dies auch ohne externen Speicher tun, von dem aus
/
Sie die Bereitstellung aufheben müssen/home
.Dies ist kein besonders riskantes Verfahren, wenn Sie vorsichtig sind. Dennoch gilt der Standard: Erstellen Sie zuerst Sicherungen und testen Sie sie.
Ich werde
foo
für den Namen der Datenträgergruppe undroot
undhome
als logische Datenträgernamen verwenden. Dadurch werden die Pfade für logische Volumesfoo/root
undfoo/home
sowie die Gerätepfade/dev/mapper/foo-root
und erstellt/dev/mapper/foo-home
. Ich gehe davon aus, dass sie sich in derselben Volume-Gruppe befinden, da dies sonst komplizierter wird und vom physischen Volume-Layout der beiden Volume-Gruppen abhängt.Zuerst aushängen
/home
und ausführene2fsck -f /dev/mapper/foo-home
. Verkleinern Sie dann zuerst das Dateisystem und entsprechend das logische Volume. Führenresize2fs /dev/mapper/foo-home NNNN
wo NNNN die Anzahl der Blöcke ist , dass Sie innerhalb des Volumens beibehalten möchten (Sie kB oder MB oder GB statt mit dem Suffix verwenden könnenK
,M
oderG
). Nachdem das Dateisystem schrumpft, schrumpft das logische Volumen mitlvresize -L MMMM foo/home
dem MMMM ist eine Anzahl von Megabyte (beachten Sie, dass die Standardeinheit verschieden istresize2fs
, aber Sie die gleichen Suffixe verwenden könnenK
,M
,G
). Verkleinern Sie das logische Volume nicht weiter als bis zum Dateisystem. Dies ist der einzige gefährliche Schritt in diesem Verfahren.In der Volumengruppe ist jetzt nicht verwendeter Raum. Führen Sie
lvresize -l +100%FREE foo/root
den Befehl aus , damit das Root-Volume den gesamten freien Speicherplatz in der Volume-Gruppe abruft. Führen Sie dannresize2fs /dev/mapper/foo-root
(ohne Größenparameter) aus, um das Dateisystem auf das gesamte logische Volume zu vergrößern. Die Vergrößerung kann durchgeführt werden, während das Volume geladen ist.Sie haben jetzt Platz, um einige Dateien zu kopieren. Wenn Sie nicht genug Platz für alles haben, bewegen Sie sich so weit wie möglich und wiederholen Sie den Vorgang.
Sobald Sie alle Dateien kopiert haben
/home
, können Sie sie zerstören. Stellen/home
Sie sicher, dass leer ist (wenn Sie die Dateien verschoben haben) oder dass alle darin enthaltenen Dateien/home
kopiert wurden/root
(wenn Sie die Dateien kopiert haben). Führen Sie den folgenden Befehl aus, um das nicht mehr benötigte logische Volume zu zerstörenlvremove foo/home
. Zuletzt vergrößern Sie das Root-Volume mitlvresize -l 0%FREE foo/root
und das Dateisystem mitresize2fs /dev/mapper/foo-home
.quelle
OK, ich befand mich in genau der gleichen Position. Anscheinend erstellt CentOS standardmäßig ein kleines Root-Volume und füllt den Rest Ihres Speicherplatzes mit
/home
. Ich habe mein Setup sogar zuerst in einer VM getestet, aber mit der kleineren Festplatte hat CentOS das Home-Volume nicht erstellt. Ich habe dieses Problem aufgegriffen, bevor ich räumlich eingeschränkt wurde, und mir auch überlegt, wie ich nicht in den Einzelbenutzermodus wechseln muss. Wie folgt:Holen Sie sich den Zugriff auf die Maschine, ssh ist in Ordnung (vorausgesetzt, Nicht-Root-Benutzer).
cd /
Sie befinden sich also nicht im Basisverzeichnissudo -s
Wir werden die Wurzel für all das seinlsof /home
Stellen Sie sicher, dass niemand das Home-Volume verwendet, sollte nicht seinmv
,,tar
oder ähnlich den Inhalten von zu Hause an einem anderen Ortlvremove centos/home
/etc/fstab
und kommentieren oder entfernen Sie die Zeile für/home
/home
- Sie sind jetzt an einer sicheren Position. Ein Neustart sollte hier in Ordnung seinlvresize -l +100%FREE centos/root
xfs_growfs /dev/centos/root
unter CentOS 7 könnten andere verwendenresize2fs
df -h
hast du es geschafftHoffe das erleichtert es jemandem. Es ist wirklich erstaunlich, was man heutzutage live auf Dateisystemen machen kann.
quelle