Réponses:
Préparez d'abord une nouvelle partition (par exemple avec parted
et mkfs
).
Disons que la partition est / dev / sda5
Montez la nouvelle partition:
mkdir /var2
mount /dev/sda5 /var2
Synchronisez votre var actuelle:
rsync -a /var/ /var2
Ajoutez l'entrée dans / etc / fstab
/dev/sda5 /var ext4 defaults 2 2
Redémarrez.
Si vous avez besoin de revenir en arrière, votre ancien / var commente simplement l'entrée dans fstab.
/
à un autre emplacement sur le système actuel pendant son fonctionnement (mais après le redémarrage). Ensuite, vous pouvez retrouver l'ancien /var
et le supprimer si vous le souhaitez
blkid -o list -s UUID
, mais je pense que vous devez exécuter avec sudo
Lorsque j'ai repris un nouveau serveur virtuel qui avait été provisionné par la société d'hébergement de mon employeur, il n'y avait pas assez d'espace libre dans le système de fichiers racine. Heureusement, ils avaient utilisé Logical Volume Manager (LVM) pour subdiviser le disque virtuel et il y avait suffisamment d'espace libre disponible pour créer de nouveaux volumes. J'ai créé des volumes logiques supplémentaires pour var
et home
qui avaient été des répertoires réguliers dans le système de fichiers racine. Étant donné que le fournisseur de serveur virtuel n'a pas fourni d'interface de type KVM par laquelle je pouvais accéder au serveur en mode mono-utilisateur, j'ai utilisé une méthode très similaire à celle décrite par Aleksander (cette réponse inclut des détails supplémentaires pour récupérer l'espace disque dans en plus des commandes spécifiques à LVM).
Créez un volume logique pour le nouveau var
système de fichiers, montez-le (à l'aide d'un répertoire temporaire) et copiez les fichiers du système actuel /var
vers le nouveau système de fichiers:
# 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
Étant donné que les processus en cours d'exécution auront des fichiers /var
maintenus ouverts et en cours d'utilisation, l'arborescence de répertoires ne peut pas simplement être déplacée vers le nouveau système de fichiers. Récursivement ( -r
) copiez les fichiers de la /var
partition actuelle vers le nouveau système de fichiers tout en préservant les attributs de fichier et les attributs étendus ( -a, --archive
option). Un utilisateur prudent peut d'abord créer un instantané LVM du volume actuel avant de copier, mais c'est trop de détails hors sujet pour cette question.
sudo cp -ra /var/ /var.new/
Alternativement, les fichiers peuvent être copiés rsync
, avec son -a, --archive
option pour conserver les horodatages, la propriété, les modes, etc. et son -X, --xattrs
option pour préserver les attributs étendus tels que les étiquettes de sécurité utilisées par AppArmor et SELinux:
sudo rsync -raX /var/ /var.new/
Configurez le nouveau système de fichiers à utiliser comme nouveau point de montage pour /var
en ajoutant la ligne suivante à /etc/fstab
. Notez qu'il 0
est utilisé comme numéro de passe (dernier champ) afin que le système de fichiers ne soit pas vérifié automatiquement ( fsck
) après un certain nombre de redémarrages.
/dev/mapper/VolGroup00-var /var ext4 defaults 0 0
Comme il n'est pas possible de passer en mode mono-utilisateur, redémarrez l'ordinateur pour utiliser ce nouveau volume en tant que /var
.
Après le redémarrage de la machine, le nouveau système de fichiers sera monté /var
afin que le point de montage temporaire puisse être supprimé en toute sécurité:
sudo rmdir /var.new
Les anciens /var
fichiers occuperont toujours de l'espace sur la partition racine mais ils ne sont pas facilement accessibles pendant qu'un autre système de fichiers est monté sur /var
(ils sont «masqués» par le nouveau système de fichiers en utilisant le /var
répertoire comme point de montage). Utilisez un point de montage temporaire pour monter le système de fichiers racine afin que le contenu du /var
répertoire d' origine soit disponible par un autre chemin.
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
et mkfs.ext4
sans expliquer ce que sont ou pourquoi sont utilisés. Vous pouvez peut-être simplement dire que c'est pour faire la nouvelle partition car ils ne sont pas le sujet principal de la réponse.
/var
: partir d'un livecd, monter la partition sur le système installé/
etrm -rf /var/*
.