Risposte:
Preparare innanzitutto una nuova partizione (ad esempio con partede mkfs).
Supponiamo che la partizione sia / dev / sda5
Montare la nuova partizione:
mkdir /var2
mount /dev/sda5 /var2
Sincronizza la tua var attuale:
rsync -a /var/ /var2
Aggiungi la voce a / etc / fstab
/dev/sda5 /var ext4 defaults 2 2
Reboot.
Se ti capita di dover tornare indietro, il tuo vecchio / var commenta semplicemente la voce in fstab.
/in un'altra posizione sul sistema corrente mentre è in esecuzione (ma dopo il riavvio). Quindi puoi ottenere il vecchio /vared eliminarlo se vuoi
blkid -o list -s UUID, ma penso che devi correre con sudo
Quando ho rilevato un nuovo server virtuale fornito dalla società di hosting del mio datore di lavoro, non c'era abbastanza spazio libero nel filesystem di root. Fortunatamente, avevano utilizzato Logical Volume Manager (LVM) per suddividere il disco virtuale e c'era spazio libero sufficiente per creare nuovi volumi. Ho creato volumi logici extra per vare homeche erano state directory regolari nel filesystem di root. Poiché il provider di server virtuali non ha fornito un'interfaccia simile a KVM tramite la quale ho potuto accedere al server in modalità utente singolo, ho utilizzato un metodo molto simile a quello delineato da Aleksander (questa risposta include dettagli aggiuntivi per il recupero dello spazio su disco in oltre ai comandi specifici di LVM).
Crea un volume logico per il nuovo varfilesystem, montalo (usando una directory temporanea) e copia i file dall'attuale /varal nuovo filesystem:
# 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
Poiché i processi in esecuzione avranno file /varaperti e in uso, l'albero delle directory non può essere semplicemente spostato nel nuovo filesystem. Ricorsivamente ( -r) copia i file dalla /varpartizione corrente al nuovo filesystem preservando gli attributi di file e gli attributi estesi ( -a, --archiveopzione). Un utente prudente potrebbe prima creare un'istantanea LVM del volume corrente prima di copiarlo, ma si tratta di dettagli troppo fuori tema per questa domanda.
sudo cp -ra /var/ /var.new/
In alternativa, i file possono essere copiati rsync, con la sua -a, --archiveopzione per conservare timestamp, proprietà, modalità, ecc. E la sua -X, --xattrsopzione per preservare gli attributi estesi come le etichette di sicurezza usate da AppArmor e SELinux:
sudo rsync -raX /var/ /var.new/
Configurare il nuovo filesystem da utilizzare come nuovo mount-point /varaggiungendo la seguente riga a /etc/fstab. Si noti che 0viene utilizzato come numero di passaggio (ultimo campo) in modo che il file system non venga controllato automaticamente ( fsck) dopo un certo numero di riavvii.
/dev/mapper/VolGroup00-var /var ext4 defaults 0 0
Poiché non è possibile passare alla modalità utente singolo, riavviare il computer per utilizzare questo nuovo volume come /var.
Dopo il riavvio della macchina, il nuovo filesystem verrà montato in /varmodo da poter rimuovere in sicurezza il mount-point temporaneo:
sudo rmdir /var.new
I vecchi /varfile occuperanno ancora spazio sulla partizione di root ma non sono facilmente accessibili mentre è montato un altro filesystem /var(sono "mascherati" dal nuovo filesystem usando la /vardirectory come suo mount-point). Utilizzare un mount-point temporaneo per montare il filesystem di root in modo che i contenuti della /vardirectory originale siano disponibili tramite un percorso alternativo.
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/
lvcreatee mkfs.ext4senza spiegare cosa sono o perché vengono utilizzati. Forse puoi semplicemente dire che è per creare la nuova partizione in quanto non sono l'argomento principale della risposta.
/var: iniziare da un livecd, montare la partizione sul sistema installato/erm -rf /var/*.