Ich habe einen Remote Dedicated Server ohne Online-Kontrollfeld, um die Größe der Partitionen nach der ersten Betriebssysteminstallation zu ändern. Daher verwende ich die auf Debian basierende Rettungsumgebung, um die nicht gemounteten Partitionen zu manipulieren. Das Problem ist, dass ich ein bisschen dumm bin, wenn es um die Manipulation von Partitionen auf Remote-Laufwerken geht. Ich habe versucht, das Befehlszeilentool GNU Parted zu verwenden, da GParted keine Option ist und fdisk nutzlos ist, da das Laufwerk mit GPT formatiert ist, nur um herauszufinden, dass der Befehl zur Größenänderung ab Version 2.4 entfernt wurde. Nachfolgend finden Sie eine Liste meiner Partitionen aus dem Druckbefehl von Parted:
Number Start End Size File system Name Flags
1 20.5kB 1049kB 1029kB primary bios_grub
2 2097kB 21.0GB 21.0GB ext4 primary
3 21.0GB 2000GB 1979GB ext4 primary
4 2000GB 2000GB 536MB linux-swap(v1) primary
Ich muss herausfinden, wie ich Partition Nr. 3 auf etwa 1,2 TB verkleinern und dann Partition Nr. 2 erweitern kann, um das zu füllen, was verschoben wurde, als Partition Nr. 3 verkleinert wurde. Meine Partition Nr. 2 ist voll und die Partition Nr. 3 hat noch Platz übrig.
Antwort1
Das gewünschte Ergebnis ist möglicherweise möglich oder nicht, je nachdem, was derzeit gemountet ist (und sein muss) und ob Sie von einem anderen Medium booten können, um Mount-Probleme zu umgehen. Folgende Faktoren sind hierbei zu berücksichtigen:
- Denken Sie immer an den Unterschied zwischen einemPartition(eine einfache Datenstruktur, die den Start- und Endpunkt eines Speicherplatzblocks definiert, normalerweise zusammen mit anderen Dingen wie einem Typcode) und einemDateisystem(eine komplexere Datenstruktur, die in einer Partition oder einem anderen Container gespeichert ist, wie z. B. ein logisches Volume eines LVM). Wenn Sie diesen Unterschied noch nicht vollständig verstehen, halten Sie jetzt inne und informieren Sie sich darüber.
- Sie können die Größe eines gemounteten ext2/3/4-Dateisystems vergrößern, aber meines Wissens nach können Sie die Größe eines gemounteten ext2/3/4-Dateisystems nicht verkleinern. Das
resize2fs
Dienstprogramm erledigt diese Aufgabe über die Befehlszeile. - Um die Größe einer Partition zu ändern, müssen Sie die Partition möglicherweise löschen und an ihrer Stelle eine neue erstellen. Die Start- und Endpunkte müssen möglicherweise mit Sektorgenauigkeit angegeben werden, was
parted
standardmäßig nicht der Fall ist. Sie müssen festlegen,unit s
um dies zu erreichen; oder Sie können verwendengdisk
, was standardmäßig Sektorgenauigkeit bietet. (gdisk
Aber selbst richtet Partitionen standardmäßig automatisch auf 2048 Sektorwerte aus, daher müssen Sie die Ausrichtung möglicherweise mit derd
Option im Expertenmenü anpassen.) - Bei Dateisystemgrößenänderungen bleibt der Startpunkt des Dateisystems normalerweise unverändert. Wenn Sie also den Startpunkt einer Partition verschieben müssen, müssen Sie dies mit
dd
oder einem anderen Tool tun, um den gesamten Inhalt des Dateisystems zu verschieben. Abhängig von der Richtung der Verschiebung muss dies möglicherweise vor oder nach dem Löschen der ursprünglichen Partition erfolgen, und die neue Partition muss möglicherweise vor oder nach dem Verschieben erstellt werden. Wenn der Verschiebevorgang den ursprünglichen Speicherort überlappt, müssen SiesehrGehen Sie dabei vorsichtig vor, damit Sie keine Partitionsdaten zerstören! - Seien Sie sehr vorsichtig mit den Endpunkten von Partitionen und Dateisystemen. Wenn Sie ein Dateisystem verkleinern und dann eine neue Partition erstellen, die nur ein wenig zu klein ist, können Sie wichtige Daten verlieren. Ich empfehle, das Dateisystem kleiner als beabsichtigt zu verkleinern, eine neue Partition zu erstellen und
resize2fs
das Dateisystem dann auf die Größe der neuen umgebenden Partition zu vergrößern. Dieses Verfahren minimiert die Wahrscheinlichkeit einer Größeninkongruenz. - Denken Sie daran, dass Sie nach der Änderung der Partitionstabelle möglicherweise einen Neustart durchführen müssen, damit der Kernel die neue Tabelle verwendet.
Aufgrund dieser Probleme kann der Versuch, das Gewünschte ohne die Hilfe von GParted oder einem anderen Tool zur Koordination von Partitions- und Dateisystemänderungen zu erreichen, äußerst riskant sein. Esdürfenkann gemacht werden, aber ein Fehler bei der Angabe eines Sektorwerts kann dazu führen, dass Ihre Festplatte völlig wertlos ist. Die Tatsache, dass Sie diesbezüglich um Hilfe bitten, macht mich vorsichtig, Ihnen überhaupt den Versuch vorzuschlagen; das Risiko, ein Produktionssystem zu zerstören, ist für jemanden, der so etwas noch nie gemacht hat, einfach zu groß. Wenn Sie keine andere Möglichkeit haben, empfehle ich Ihnen dringend, Ihren Server lokal neu zu erstellen und an der Kopie zu üben, bevor Sie es auf Ihrem Remote-Server versuchen.
Möglicherweise möchten Sie einige Alternativen in Betracht ziehen:
- Verwenden Sie GParted-- Wenn Sie von einem externen Medium booten können, können Sie GParted verwenden. Sie sagen, dies sei ein Remote-Server. Viele dieser Systeme bieten einen BMC, mit dem Sie virtuelle USB-Laufwerke anschließen und über ein Java-Applet eine virtuelle Konsole anzeigen können. Die Verwendung dieser Funktion ist extrem langsam, sollte es Ihnen jedoch ermöglichen, GParted auszuführen und Ihre Änderungen viel einfacher und sicherer vorzunehmen.
- Erstellen zusätzlicher Partitionen-- Sie können möglicherweise eine Partition verkleinern und dann, anstatt die andere zu verschieben und zu vergrößern, eine neue Partition erstellen. Sie verschieben dann Daten aus einem Unterverzeichnis in die neue Partition und mounten sie an Stelle dieses Unterverzeichnisses. Dieser Ansatz teilt im Grunde den Unterschied; Sie müssen immer noch eine Partition verkleinern, vermeiden aber die gefährlichere und schwierigere Verschiebungsoperation.
- Symlinks verwenden-- Sie können Ihr Ziel möglicherweise erreichen, indem Sie einige Dateien von Ihrer zu vollen Partition auf die weniger volle Partition verschieben und sie dann mithilfe symbolischer Links über die gewünschten Pfade zugänglich machen. Dies ist wahrscheinlich der sicherste Ansatz.
- Neu installieren-- Wenn Sie über eine entsprechende Sicherung verfügen, können Sie das System sichern, mit einem besseren Setup neu installieren und Ihre Originaldaten wiederherstellen.
- Machen Sie es vor Ort-- Wenn Sie physischen Zugriff auf Ihre Server haben oder Hilfe vor Ort haben, können Sie (oder Ihre Hilfe) dies persönlich erledigen, genau wie bei einem Desktop-System, indem Sie einen USB-Stick zur Ubuntu-Installation verwenden. Je nachdem, wie wichtig dies ist und wo sich der Server in Bezug auf Sie befindet, kann es sogar eine Reise wert sein, um die Arbeit zu erledigen.
- Hinzufügen eines Datenträgers-- Sie könnten, sofern möglich, das Hinzufügen einer Festplatte in Erwägung ziehen und einen Teil Ihrer Daten darauf verschieben.
In Zukunft möchten Sie vielleicht in Betracht ziehen,Logische Datenträgerverwaltung (LVM),wodurch derartige Manipulationen viel einfacher und sicherer werden. LVM erfordert eine beträchtliche Lernkurve, aber wenn Sie die Grundlagen erst einmal verstanden haben, ist es eine große Hilfe, da Sie sich keine Gedanken über das Verschieben von Partitionen machen müssen. Dateisysteme werden wie Dateien in einem Dateisystem gespeichert. Wenn Sie also eins verkleinern, können Sie ein anderes in den freien Speicherplatz erweitern, ohne den Startpunkt zu ändern. LVM hilft Ihnen auch dabei, Speicherplatz in Form neuer Festplatten hinzuzufügen.
Antwort2
Als vorübergehende Lösung habe ich einen Artikel gelesen, in dem es hieß, dass 70 % des belegten Speicherplatzes vom Webserver stammten, genauer gesagt von /var/www. Also habe ich Folgendes getan:
cd /var
mv www /home
ln -s /home/www www
ll
lrwxrwxrwx 1 root root 9 Oct 18 12:33 www -> /home/www/
Wie gesagt, eine vorübergehende Lösung, aber mein Stammverzeichnis ist jetzt nur noch zu 30 % statt zu 100 % voll. Bis ich die Partitionsgröße ändern kann, wird das also funktionieren.