Antworten:
Bereiten Sie zuerst eine neue Partition vor (zB mit partedund mkfs).
Angenommen, die Partition ist / dev / sda5
Hängen Sie die neue Partition ein:
mkdir /var2
mount /dev/sda5 /var2
Synchronisiere deine aktuelle Var:
rsync -a /var/ /var2
Fügen Sie den Eintrag zu / etc / fstab hinzu
/dev/sda5 /var ext4 defaults 2 2
Starten Sie neu.
Wenn Sie Ihr altes / var zurücksetzen müssen, kommentieren Sie einfach den Eintrag in fstab aus.
/während des Betriebs (aber nach dem Neustart) eine Bereitstellung an einem anderen Speicherort auf dem aktuellen System vornehmen. Dann können Sie am alten erhalten /varund es löschen, wenn Sie
blkid -o list -s UUID, aber ich denke , Sie mit sudo ausführen müssen
Als ich einen neuen virtuellen Server übernahm, der von der Hosting-Firma meines Arbeitgebers bereitgestellt wurde, war nicht genügend Speicherplatz im Root-Dateisystem verfügbar. Glücklicherweise hatten sie den Logical Volume Manager (LVM) verwendet , um die virtuelle Festplatte zu unterteilen, und es war genügend freier Speicherplatz verfügbar, um neue Volumes zu erstellen. Ich habe extra logische Volumes erstellt für varund homedie waren reguläre Verzeichnisse im Root-Dateisystem. Da der Anbieter von virtuellen Servern keine KVM-ähnliche Schnittstelle zur Verfügung stellte, über die ich im Einzelbenutzermodus auf den Server zugreifen konnte, verwendete ich eine sehr ähnliche Methode wie die von Aleksander (diese Antwort enthält zusätzliche Details zur Wiederherstellung des Speicherplatzes in Zusatz zu LVM-spezifischen Befehlen).
Erstellen Sie ein logisches Volume für das neue varDateisystem, hängen Sie es (unter Verwendung eines temporären Verzeichnisses) ein und kopieren Sie Dateien vom aktuellen /varin das neue Dateisystem:
# Create a new 60GB logical volume in the `VolGroup00` group called `var`.
sudo lvcreate -L 60GB -n var VolGroup00
# Create an ext4 filesystem on this new `var` volume.
sudo mkfs.ext4 /dev/VolGroup00/var
# Mount this filesystem at a temporary mount-point.
sudo mkdir /var.new
sudo mount /dev/VolGroup00/var /var.new
Da bei laufenden Prozessen Dateien /vargeöffnet und verwendet werden, kann der Verzeichnisbaum nicht einfach in das neue Dateisystem verschoben werden. Rekursives ( -r) Kopieren von Dateien von der aktuellen /varPartition in das neue Dateisystem unter Beibehaltung von Dateiattributen und erweiterten Attributen ( -a, --archiveOption). Ein vorsichtiger Benutzer erstellt möglicherweise zuerst einen LVM-Snapshot des aktuellen Volumes, bevor er kopiert, aber das ist zu viel Off-Topic-Detail für diese Frage.
sudo cp -ra /var/ /var.new/
Alternativ können die Dateien rsyncmit der -a, --archiveOption kopiert werden , Zeitstempel, Eigentumsrechte, Modi usw. -X, --xattrsbeizubehalten und die erweiterten Attribute wie die von AppArmor und SELinux verwendeten Sicherheitsetiketten beizubehalten:
sudo rsync -raX /var/ /var.new/
Konfigurieren Sie das neue Dateisystem, das als neuer Einhängepunkt verwendet /varwerden soll, indem Sie die folgende Zeile hinzufügen /etc/fstab. Beachten Sie, dass dies 0als Durchlaufnummer (letztes Feld) verwendet wird, damit das Dateisystem fscknach einer bestimmten Anzahl von Neustarts nicht automatisch überprüft wird ( ).
/dev/mapper/VolGroup00-var /var ext4 defaults 0 0
Da ein Wechsel in den Einzelbenutzermodus nicht möglich ist, starten Sie den Computer neu, um dieses neue Volume als zu verwenden /var.
Nach dem Neustart des Computers wird das neue Dateisystem bereitgestellt, /varsodass der temporäre Bereitstellungspunkt sicher entfernt werden kann:
sudo rmdir /var.new
Die alten /varDateien belegen weiterhin Speicherplatz auf der Root-Partition, sind jedoch nicht leicht zugänglich, während ein anderes Dateisystem eingehängt ist /var(sie werden vom neuen Dateisystem unter Verwendung des /varVerzeichnisses als Einhängepunkt „maskiert“ ). Verwenden Sie einen temporären Einhängepunkt, um das Root-Dateisystem einzuhängen, sodass der Inhalt des ursprünglichen /varVerzeichnisses über einen alternativen Pfad verfügbar ist.
sudo mkdir /old-root
sudo mount /dev/mapper/VolGroup00-root /old-root/
sudo rm -rf /old-root/var/*
sudo umount /old-root/
sudo rmdir /old-root/
lvcreateund mkfs.ext4ohne zu erklären, was und warum verwendet werden. Vielleicht können Sie einfach sagen, dass dies für die Erstellung der neuen Partition ist, da sie nicht das Hauptthema der Antwort sind.
/varwiederherzustellen: von einer Live-CD starten, die Partition auf dem installierten System mounten/undrm -rf /var/*.