Antworten:
Bereiten Sie zuerst eine neue Partition vor (zB mit parted
und 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 /var
und 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 var
und home
die 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 var
Dateisystem, hängen Sie es (unter Verwendung eines temporären Verzeichnisses) ein und kopieren Sie Dateien vom aktuellen /var
in 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 /var
geöffnet und verwendet werden, kann der Verzeichnisbaum nicht einfach in das neue Dateisystem verschoben werden. Rekursives ( -r
) Kopieren von Dateien von der aktuellen /var
Partition in das neue Dateisystem unter Beibehaltung von Dateiattributen und erweiterten Attributen ( -a, --archive
Option). 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 rsync
mit der -a, --archive
Option kopiert werden , Zeitstempel, Eigentumsrechte, Modi usw. -X, --xattrs
beizubehalten 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 /var
werden soll, indem Sie die folgende Zeile hinzufügen /etc/fstab
. Beachten Sie, dass dies 0
als Durchlaufnummer (letztes Feld) verwendet wird, damit das Dateisystem fsck
nach 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, /var
sodass der temporäre Bereitstellungspunkt sicher entfernt werden kann:
sudo rmdir /var.new
Die alten /var
Dateien 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 /var
Verzeichnisses als Einhängepunkt „maskiert“ ). Verwenden Sie einen temporären Einhängepunkt, um das Root-Dateisystem einzuhängen, sodass der Inhalt des ursprünglichen /var
Verzeichnisses ü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/
lvcreate
und mkfs.ext4
ohne 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.
/var
wiederherzustellen: von einer Live-CD starten, die Partition auf dem installierten System mounten/
undrm -rf /var/*
.