Risposte:
Preparare innanzitutto una nuova partizione (ad esempio con parted
e 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 /var
ed 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 var
e home
che 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 var
filesystem, montalo (usando una directory temporanea) e copia i file dall'attuale /var
al 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 /var
aperti e in uso, l'albero delle directory non può essere semplicemente spostato nel nuovo filesystem. Ricorsivamente ( -r
) copia i file dalla /var
partizione corrente al nuovo filesystem preservando gli attributi di file e gli attributi estesi ( -a, --archive
opzione). 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, --archive
opzione per conservare timestamp, proprietà, modalità, ecc. E la sua -X, --xattrs
opzione 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 /var
aggiungendo la seguente riga a /etc/fstab
. Si noti che 0
viene 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 /var
modo da poter rimuovere in sicurezza il mount-point temporaneo:
sudo rmdir /var.new
I vecchi /var
file 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 /var
directory come suo mount-point). Utilizzare un mount-point temporaneo per montare il filesystem di root in modo che i contenuti della /var
directory 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/
lvcreate
e mkfs.ext4
senza 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/*
.