
Ich habe einen kleinen VPS-Server mit 40 GB Speicherplatz. Ich habe zusätzliche 40 GB gekauft und möchte nun /
die Partitionsgröße erweitern.
Meine Partitionen sehen folgendermaßen aus:
/dev/vda1
ist /boot
und /dev/vda5
ist mein /
. Mein VPS-Anbieter hat hinzugefügt /dev/vda2
. Ich bin nicht sicher, ob das richtig ist, aber ich habe versucht, zu entfernen /dev/vda5
und /dev/vda2
zu erstellen /dev/vda5
, aber ich habe diese Option nicht, ich kann nur Geräte mit der ID 2-4 neu erstellen und nicht 5, wo mein /
ist.
Antwort1
Es gibt ein Dienstprogramm namens growpart
, das Partitionen sicher vergrößert, sobald Ihr Anbieter Ihre virtuelle Festplatte erweitert hat. Der einzige Trick in Ihrem Fall ist, dass sie unnötigerweise eine erweiterte/logische DOS-Partition erstellt haben, als sie nicht benötigt wurde. Daher müssen Sie die Größe der erweiterten Partition und dann der darin enthaltenen logischen Partition ändern.
sudo apt install cloud-guest-utils
Das growpart
Dienstprogramm akzeptiert die Datenträger- und Partitionsnummer als separate Argumente. Um die Größe zu ändern, /dev/vda2
schreiben Sie also:
sudo growpart /dev/vda 2
/dev/vda2
Ändern Sie zuerst die Größe der erweiterten Partition und ändern Sie dann die Größe /dev/vda5
auf die gleiche Weise.
sudo growpart /dev/vda 2
sudo growpart /dev/vda 5
Jetzt sollten Sie in der Lage sein, die Größe Ihres Dateisystems zu ändern. Wenn es ext4 ist, resize2fs /dev/vda5
funktioniert es. Verwenden Sie für XFS xfs_growfs /
.
Antwort2
Aus Ihrer fdisk
Ausgabe geht hervor, dass Sie tatsächlich eine 80 GB-Festplatte mit 40 GB habenerweitertPartition ( /dev/vda2
), die innerhalb einer 40 GBlogischPartition /dev/vda5
, die Ihr /
Dateisystem enthält. Die erweiterte Partition enthält eigentlich keine Dateien, sie ist nur ein „Container“ für logische Partitionen, der es ermöglicht, die unten erwähnte Grenze von 4 Partitionen zu überwinden. Dann gibt es 40 GB nicht zugewiesenen Speicherplatz, der fdisk
in keiner Weise angezeigt wird.
Möglicherweise haben Sie mehrere Möglichkeiten, diesen nicht zugeordneten Speicherplatz zu verwenden. Ich gehe davon aus, dass Sie LVM nicht verwenden, da das Verfahren in diesem Fall völlig anders wäre, da LVM über eigene Tools zum Ändern der Volumegröße verfügt. In Ihrer fdisk
Ausgabe wird jedoch keine LVM-Partition erwähnt.
Ich würde nicht empfehlen, Partitionen zu löschen und neu zu erstellen, fdisk
da dies immer das Risiko eines Datenverlusts birgt. Wenn Sie also auf Nummer sicher gehen möchten, können Sie Folgendes versuchen:
Die erste Möglichkeit besteht darin, zwei 40 GB große Partitionen zu haben und Ihre Dateien intelligent zwischen diesen beiden aufzuteilen. Wenn Sie beispielsweise viele große Dateien in speichern /home
, können Sie die neue Partition für verwenden /home
und alles andere außer /home
bleibt auf der alten Partition. Gehen Sie dazu wie folgt vor:
verwenden
fdisk
, um eine weitere primäre Partition (sie wird wahrscheinlich als angezeigt/dev/vda3
!) in diesem nicht zugeordneten Speicherplatz zu erstellen und sie als neues Linux-Dateisystem mit zu formatierenmkfs /dev/vda3
. Insgesamt können maximal 4 primäre oder erweiterte Partitionen vorhanden sein, von denen höchstens eine erweitert sein darf, sodass Platz für eine weitere Partition bleibt. Es ist kein empfohlenes Partitionslayout, bei dem eine primäre Partitionnachdie erweiterte Partition, aber es wird wahrscheinlich funktionieren.Benennen Sie Ihr
/home
Verzeichnis um/old_home
(stellen Sie sicher, dass es momentan nicht verwendet wird. Führen Sie dies also als Root aus, ohne dass ein normaler Benutzer angemeldet ist) und erstellen Sie ein neues/home
Verzeichnis mit demselben Eigentümer und denselben Berechtigungen wie das alte.mounten Sie das
/dev/vda3
Dateisystem/home
mit dem Befehl:mount /dev/vda3 /home
. Wenn dies erfolgreich ist, sollten Sie es bearbeiten,/etc/fstab
damit das neue Dateisystem beim Systemstart richtig automatisch gemountet wird. Wahrscheinlich/etc/fstab
enthält Ihr derzeit zwei Zeilen für vda1 und vda5, etwa so (ich denke mir das gerade aus, Ihr könnte anders sein):/dev/vda5 / ext4 defaults 0 1
/dev/vda1 /boot ext4 defaults 0 2
Fügen Sie eine ähnliche Zeile für vda3 hinzu, die beispielsweise lautet:
/dev/vda3 /home ext4 defaults 0 2
(Wenn Ihre Datei etwas anderes als „ext4“ oder „defaults“ enthält, kopieren Sie diese Parameter einfach in die neue Zeile). Schreiben Sie nun eine beliebige Datei in das neue
/home
Verzeichnis und starten Sie das System neu. Wenn die Datei, die Sie in das Verzeichnis gelegt haben, nach dem Neustart/home
noch vorhanden ist, bedeutet dies, dass/home
sie beim Booten korrekt gemountet wurde.Nun könnt Ihr alles von
/old_home
nach verschieben/home
und das leere/old_home
Verzeichnis anschließend löschen.
Ich halte diese Methode für die sicherste und einfachste und habe sie schon oft verwendet. Allerdings hat sie den Nachteil, dass man tatsächlich 2 x 40 GB statt einzelner 80 GB Speicherplatz hat, was manchmal gut und manchmal schlecht sein kann – wenn man beispielsweise vermeiden möchte, dass die Systemfestplatte versehentlich mit Benutzerdateien vollgestopft wird, ist es besser, /home
eine separate Partition zu haben.
Eine weitere Möglichkeit besteht darin, GNU zu verwendengetrenntProgramm zum Ändern der Größe Ihrer vda2- und vda5-Partitionen (zuerst vda2 und dann vda5, da erstere letztere enthält) auf 80 GB. parted
wurde speziell dafür entwickelt, Partitionen ohne Datenverlust zu ändern, was fdisk
nicht garantiert werden kann. Ich bin sicher, parted
dass es sich im Debian-Repository befindet, sodass Sie es mit installieren können apt
.
Nachdem Sie die Partitionsgröße geändert haben, verwenden Sie den Befehl resize2fs /dev/vda5
, um Ihr /
Dateisystem auf volle 80 GB zu erweitern.
Antwort3
Normalerweise würden Sie in diesem Fall verwenden fdisk /dev/vda
.
- Notieren Sie sich die Startsektoren der Partitionen 2 und 5.
- Entfernen Sie Partition 5.
- Entfernen Sie Partition 2.
- Erstellen Sie Partition 2 mit dem alten Startsektor und dem neuen Endsektor neu (Standardwert). Dies ist eineerweitertPartition.
- Erstellen Sie Partition 5 mit dem alten Startsektor und dem neuen Endsektor (Standardwert) neu. Dies ist einelogischPartition.
Nachdem die Tabelle geschrieben und aktiviert wurde (z. B. durch einen Neustart), müssen Sie das Dateisystem bei /dev/vda5
Verwendung resize2fs
oder was auch immer für das Dateisystem auf dieser Partition geeignet ist, noch erweitern.
Stellen Sie vor allem sicher, dass Sie über eine gute Sicherungskopie verfügen, bevor Sie dies versuchen.