Tuto : Ajouter une partition /home ou /var ou autre après installation
Table des matières
Il peut arriver d'installer une distribution avec une seule partition (la partition / appelée racine). Or, après installation, on souhaiterait séparer notre dossier utilisateur /home dans une autre partition.
Cet article décrit la création de cette partition et le déplacement des données associées. Cela fonctionne quelque soit la partition qu'on souhaite ajouter (/var ...)
Ce tuto a été réalisé pour une demande de séparer post installation son /home. Dans le cas de serveurs, on réfléchira correctement au partitionnement avant
Démarrer le système avec un Live CD de son choix.
Pour mon cas, j'ai inséré un deuxième disque dur dans mon ordinateur. Il s'appelle /dev/sdb
On créé une partition dessus :
Dans cet exemple, ma future partition /home sera sdb1. Elle sera identifiée en tant que tel dans la suite.
On formate la partition en ext4 :
On monte sa racine dans /mnt (exemple ici si la racine est sda2) :
Ensuite la nouvelle partition /home précédemment créée dans un point de montage temporaire de notre arborescence :
On vérifie que la partition est bien montée et en lecture écriture :
Le résultat doit ressembler à ceci :
Plusieurs méthodes peuvent être employées : archive tar ou utilisation de cp ou utilisation de rsync.
Je vais montrer ici l'utilisation avec rsync.
En une seule commande, on va copier les données de /home vers la partition nouvelle :
On attend que la console nous redonne la main.
Grâce aux options (et notamment -a) on va conserver les permissions, les liens symboliques et plein d'autres attributs.
Une fois fait, vérifier que tout s'est bien copié (à coup de ls )
Ou bien en regardant la taille des dossiers :
Maintenant que nos données sont déplacées, il faut créer une entrée dans le fichier fstab pour que la nouvelle partition soit montée au démarrage du système.
Voici mon fichier fstab avant la modification.
On sauvegarde son ancien fichier fstab via :
Ensuite on édite le fichier fstab et on ajoute la ligne de la partition /home :
On ajoute un commentaire et la ligne qui va bien :
Maintenant, il ne reste plus qu'à démonter la nouvelle partition /home de son point de montage temporaire :
Et de supprimer les données de l'ancien /home afin de libérer de la place sur la partition racine :
On supprime aussi le point de montage temporaire en s'assurant qu'il ne soit plus monté (la commande ne doit rien renvoyer) :
Puis on supprime ce point de montage temporaire :
Enfin redémarrer :
Constater que tout fonctionne
Introduction
Il peut arriver d'installer une distribution avec une seule partition (la partition / appelée racine). Or, après installation, on souhaiterait séparer notre dossier utilisateur /home dans une autre partition.
Cet article décrit la création de cette partition et le déplacement des données associées. Cela fonctionne quelque soit la partition qu'on souhaite ajouter (/var ...)
Ce tuto a été réalisé pour une demande de séparer post installation son /home. Dans le cas de serveurs, on réfléchira correctement au partitionnement avant
Prérequis
Démarrer le système avec un Live CD de son choix.
La préparation des partitions
Pour mon cas, j'ai inséré un deuxième disque dur dans mon ordinateur. Il s'appelle /dev/sdb
On créé une partition dessus :
Dans cet exemple, ma future partition /home sera sdb1. Elle sera identifiée en tant que tel dans la suite.
On formate la partition en ext4 :
Code BASH :
mkfs.ext4 /dev/sdb1
On monte sa racine dans /mnt (exemple ici si la racine est sda2) :
Code BASH :
mount /dev/sda2 /mnt
Ensuite la nouvelle partition /home précédemment créée dans un point de montage temporaire de notre arborescence :
Code BASH :
mkdir /mnt/hometmp mount /dev/sdb1 /mnt/hometmp
On vérifie que la partition est bien montée et en lecture écriture :
Code BASH :
mount | grep hometmp
Le résultat doit ressembler à ceci :
Code BASH :
/dev/sdb1 on /mnt/hometmp type ext4 (rw)
Déplacer les données
Plusieurs méthodes peuvent être employées : archive tar ou utilisation de cp ou utilisation de rsync.
Je vais montrer ici l'utilisation avec rsync.
En une seule commande, on va copier les données de /home vers la partition nouvelle :
Code BASH :
rsync -avzh /mnt/home/ /mnt/hometmp/
On attend que la console nous redonne la main.
Grâce aux options (et notamment -a) on va conserver les permissions, les liens symboliques et plein d'autres attributs.
Une fois fait, vérifier que tout s'est bien copié (à coup de ls )
Ou bien en regardant la taille des dossiers :
Code BASH :
du -s /mnt/home du -s /mnt/hometmp
Créer le point de montage dans le fstab
Maintenant que nos données sont déplacées, il faut créer une entrée dans le fichier fstab pour que la nouvelle partition soit montée au démarrage du système.
Voici mon fichier fstab avant la modification.
Code BASH :
more /mnt/etc/fstab # / was on /dev/sda2 during installation UUID=b29e1091-170a-450b-a843-3ca511e8131a / ext4 noatime,nodiratime 0 1 # swap was on /dev/sda1 during installation UUID=c6cb3562-4ae0-41bb-affa-da051ab6e2b5 none swap sw 0 0 proc /proc proc defaults 0 0 shm /dev/shm tmpfs nodev,nosuid,noexec 0 0
On sauvegarde son ancien fichier fstab via :
Code BASH :
cp -p /mnt/etc/fstab /mnt/etc/fstab.old
Ensuite on édite le fichier fstab et on ajoute la ligne de la partition /home :
Code BASH :
nano -w /mnt/etc/fstab
On ajoute un commentaire et la ligne qui va bien :
Code BASH :
# Partition /home /dev/sdb1 /home ext4 defaults 0 2
Démontage et suppression de l'ancien /home
Maintenant, il ne reste plus qu'à démonter la nouvelle partition /home de son point de montage temporaire :
Code BASH :
umount /mnt/hometmp
Et de supprimer les données de l'ancien /home afin de libérer de la place sur la partition racine :
Code BASH :
rm -rf /mnt/home/*
On supprime aussi le point de montage temporaire en s'assurant qu'il ne soit plus monté (la commande ne doit rien renvoyer) :
Code BASH :
mount | grep hometmp
Puis on supprime ce point de montage temporaire :
Code BASH :
rm -r /mnt/hometmp
Enfin redémarrer :
Code BASH :
reboot
Constater que tout fonctionne