Linux – Comment déplacer le dossier /home dans une autre partition
Vous utilisez Ubuntu et vous remarquez que votre espace de stockage est plein ? Il est possible de déplacer le dossier /home vers une autre partition afin d'alléger la partition système.
Le répertoire /home contient généralement toutes les données de l'utilisateur comme des documents, des images, de la musique et autres fichiers.
Pour les versions Serveur il est possible également de déplacer le dossier /home.
Le déplacement du dossier home est réalisé en ligne de commande , nous sommes connecté à la machine en SSH avec l'outil Putty.
Sommaire
A propos du dossier /home
Dans le cas d'une installation par défaut, le répertoire /home se trouve dans la même partition que la racine /.
Si votre disque dur se remplit il faut trouver une solution pour que le répertoire /home soit sur une autre partition de votre disque.
L'avantage c'est que si votre partition "racine" rencontre un problème, vos documents eux ne seront pas impactés.
Les partitions
Dans certains cas , et notamment chez certains hébergeurs. Il est possible de créer différentes partition à l'installation.
Par exemple chez OVH vous pouvez créer différentes partitions logiques.
La partition est donc formatée et initialisée.
Pour la suite du tutoriel nous partons du principe que la partition est opérationnelle.
N'hésitez pas à lire mon tutoriel pour créer et redimensionner une partition linux.
Etape 1 - Identifier les partitions
La première étape c'est d'identifier le nom des partitions.
Il faut saisir la commande suivante
sudo fdisk -l
Dans mon cas la partition qui m'intéresse c'est celle qui fait 245 GO elle est identifiée comme /dev/sdb1
Pour identifier le point de montage nous allons utiliser la commande suivante :
df -h
Nous remarquons que la partition /dev/sdb1 est montée dans /tutos
Maintenant que tout est clair nous allons pouvoir préparer la migration du dossier /home.
Etape 2 - Préparation du dossier Home
Copier le dossier Home
Pour ne pas perde les données nous allons déplacer les données du dossier Home dans la nouvelle partition.
La commande suivante copie les fichiers dans le dossier /tutos qui se trouve dans notre nouvelle partition sdb1 .
sudo cp -rp /home/* /tutos
Nous pouvons vérifier que les données sont copiés grâce à la commande LS
Renommer le dossier Home
Par mesure de sécurité nous allons renommer le dossier home en home.old (les fichiers et dossiers sont conservés)
sudo mv /home /home.old
Nous avons ainsi la version originale du dossier Home.
Créer un nouveau dossier Home
Nous allons créer un dossier /home vierge puisqu'il n'existe plus il a été renommé à l'étape précédente.
sudo mkdir /home
Le dossier est créé nous pouvons passer à l'étape suivante.
Etape 3 - Monter le /home dans la nouvelle partition
Pour monter notre dossier Home dans la nouvelle partition nous devons tout d'abord la démonter. En effet rappelez vous nous avions monté au début la partition dans le dossier tutos.
La commande suivante permet de démonter la partition, nous nous plaçons à la racine du serveur.
cd / sudo umount /dev/sdb1
Puis nous allons monter notre partition dans le dossier /home créé précédemment.
sudo mount /dev/sdb1 /home/
Nous pouvons vérifier que la partition est correctement montée :
df /dev/sdb1
Nous vérifions ainsi que nos dossiers sont présent dans le dossier /home
La prochaine étape consiste à monter la partition au démarrage de la machine pour éviter de refaire les manipulations.
Etape 4 - Identifier l'UUID de la partition
Pour éviter les erreur au démarrage du serveur nous devons identifier le UUID de la partition grâce à la commande suivante
ls -l /dev/disk/by-uuid/
Soit pour notre exemple
Une fois l'UUID trouvée sélectionnez la valeur puis faîte un clic droit (ça correspond à un copier) puis collez la dans un fichier texte.
Etape 4 - Modification du fichier FSTAB
Cette quatrième étape consiste à modifier le fichier FSTAB. Il permet de monter les partitions au démarrage du serveur.
Par précaution il faut faire une copie du fichier.
sudo cp /etc/fstab /etc/fstab.old
Nous pouvons modifier le fichier FSTAB grâce à l'outil NANO ou VI
sudo nano /etc/fstab
Nous allons ajouter la ligne suivante :
UUID:VotreUUID /home ext4 default 0 2
Ce qui signifie que la partition /dev/sdb1 (identifiée par son UUID) au format ext4 est montée par défaut dans le dossier /home
Une fois modifié il faut faire la touche CTRL + X puis faire Y et Entrée
Enfin valider l'enregistrement avec la touche entrée.
Vous pouvez redémarrer votre serveur puis vérifier que tout est OK avec la commande suivante
df /dev/sdb1
Commentaires
Le 3 avril 2022 à 18 h 17 min, Prophet_of_56 a dit :
Désolé mais ce tuto ne fonctionne pas pour moi. Les applications/scripts qui on besoin de créer des dossiers dans le /home ne le trouve pas !
Le 14 mars 2022 à 16 h 24 min, joleclodo a dit :
Un peu obsolète pour un tuto de 2022.
- il vaut mieux utiliser lsblk plutôt que fdisk -l
- le fichier fstab ne doit plus utiliser la notation /dev/sdX car ce nommage n'est pas persistant, il est alloué dynamiquement peut changer d'un démarrage à l'autre. Il faut désormais utiliser le nommage par label ou par UUID.
Pour cela on utilise les commandes: lsblk -f ou blkid
ou encore:
ls -l /dev/disk/by-label
ls -l /dev/disk/by-uuid/
Pour les disques en GPT
ls -l /dev/disk/by-partlabel/
ls -l /dev/disk/by-partuuid/
dans le fstab on remplace la notation /dev/sdX par la valeur trouvée avec les commandes précédentes, préfixée de:
LABEL=
ou
UUID=
et pour les disques en GPT
PARTLABEL=
ou
PARTUUID=
à noter aussi que la valeur de la dernière colonne dans le fstab pour le /home devrait être 2 et pas 0.
Le 4 avril 2022 à 0 h 10 min, prophet_of_56 a dit :
Merci beaucoup pour votre commentaire ! Cela m'a beaucoup aidé et m'a permis de réparé mon déplacement du /home. J'ai modifié le fichier fstab en utilisant UUID comment vous l'avez conseillé ! MERCI <3
Le 4 avril 2022 à 10 h 59 min, Tutos-Info a dit :
merci beaucoup pour votre retour, nous allons modifier le tutoriel.
Laisser un commentaire