Comment déplacer votre répertoire de base Linux vers un autre lecteur



Souhaitez-vous transférer votre répertoire personnel Linux vers un autre support de stockage ? Voici une méthode simple, détaillée étape par étape, qui devrait fonctionner avec n’importe quelle distribution. Le déplacement de votre répertoire utilisateur permet de réinstaller Linux sans vous préoccuper de la sécurité de vos fichiers personnels.

Pourquoi opter pour la séparation du répertoire personnel ?

Lors de la configuration d’un nouvel ordinateur ou de l’ajout d’un disque dur à un système existant, il peut être souhaitable de stocker votre répertoire personnel sur un lecteur distinct de l’emplacement par défaut.

Une configuration de plus en plus répandue pour les ordinateurs personnels contemporains consiste à utiliser un disque SSD de capacité modérée pour le système d’exploitation et un disque hybride SSD (SSHD) ou un disque dur classique (HDD) de plus grande capacité pour le stockage des données. Alternativement, vous pourriez avoir un seul disque dur dans votre machine et avoir ajouté un nouveau disque pour étendre votre espace de stockage. Quelles que soient vos motivations, voici une procédure facile et complète pour transférer votre répertoire personnel.

Il est à noter que lors de l’installation d’un système Linux, le programme d’installation de votre distribution offre généralement la possibilité de créer un répertoire personnel séparé. Il suffit habituellement de sélectionner les options de partitionnement, créer une nouvelle partition et la monter sous « /home ». Cependant, si vous avez déjà installé une distribution Linux, ces instructions vous guideront pour déplacer votre répertoire personnel actuel vers un autre emplacement sans rien perdre ni avoir à réinstaller le système d’exploitation.

Avant toute chose, il est crucial de faire une sauvegarde.

Identification du lecteur

Si vous venez d’installer un nouveau lecteur sur un ordinateur Linux ou si vous avez installé Linux sur l’un des lecteurs d’un nouvel ordinateur comportant plusieurs lecteurs, il y a peu de chances que le nouveau lecteur soit détecté après le redémarrage.

La commande fdisk permet de lister les disques et leurs partitions.

sudo fdisk -l

Parcourez les informations affichées jusqu’à ce que vous ayez identifié le nouveau lecteur. Le premier lecteur est désigné par /dev/sda, le second par /dev/sdb, et ainsi de suite, la dernière lettre augmentant à chaque fois. Ainsi, /dev/sde correspondrait au cinquième disque dur du système.

Dans cet exemple, le nouveau lecteur est le deuxième à être installé sur le système. Il faut donc rechercher une entrée pour /dev/sdb.

/dev/sdb est mis en évidence ci-dessus. Vous constaterez qu’il n’y a aucune ligne décrivant une partition. C’est un disque tout neuf, il n’y en a donc pas encore. Nous devons créer cette partition. Pour cela, nous utiliserons fdisk. Si votre disque dur n’est pas /dev/sdb, assurez-vous de remplacer /dev/sdb par l’identifiant réel de votre nouveau disque dur dans la commande.

sudo fdisk /dev/sdb

Lorsque fdisk vous invite à entrer une commande, appuyez sur la lettre p. Cela affichera la table de partition du disque dur. Nous savons qu’il n’y en a pas, mais cela permet d’obtenir des informations utiles sur le lecteur. C’est une bonne occasion de vérifier que le lecteur sur lequel nous allons créer une partition est bien celui avec lequel nous souhaitons travailler.

Ceci nous indique que le lecteur est un disque de 1 To, ce qui correspond à ce que nous attendons sur cette machine de test. Nous pouvons donc continuer.

Création d’une partition

Appuyez sur la lettre n pour une nouvelle partition, puis sur p pour une partition primaire. Lorsque l’on vous demande le numéro de partition, entrez le chiffre 1.

Nous allons créer une seule partition pour l’ensemble du disque. Lorsque vous êtes invité à indiquer le premier secteur, appuyez sur Entrée pour accepter la valeur par défaut. Vous serez ensuite invité à saisir le dernier secteur ; Entrée acceptera la valeur par défaut.

Bien que fdisk confirme la création d’une partition Linux de 1 To, qui correspond à la partition numéro 1, rien n’a encore été modifié sur le disque dur. Tant que vous n’avez pas donné à fdisk la commande d’écriture des modifications sur le lecteur, celui-ci reste intact. Une fois que vous êtes certain que vous êtes satisfait de vos choix, appuyez sur la lettre w pour écrire les modifications sur le disque.

La partition a été écrite dans /dev/sdb. Vérifions ce qui vient d’être fait. Nous allons utiliser fdisk une nouvelle fois sur /dev/sdb.

sudo fdisk /dev/sdb

Appuyez sur la lettre p pour afficher la table de partition, et vous constaterez qu’une partition est désormais indiquée pour le lecteur. Comme il s’agit de la première partition sur ce lecteur, elle est nommée /dev/sdb1. Une seconde partition serait nommée /dev/sdb2, et ainsi de suite.

Nous ne souhaitons apporter aucune modification à la partition, donc appuyez sur la lettre q pour quitter.

Création d’un système de fichiers sur la partition

Nous devons créer un système de fichiers sur la partition. Cela se fait aisément avec la commande mkfs. Notez qu’il est nécessaire d’indiquer le numéro de la partition dans la commande. Assurez-vous de bien taper /dev/sdb1 (la partition) et non /dev/sdb (le lecteur).

sudo mkfs -t ext4 /dev/sdb1

Le système de fichiers sera créé, et vous serez ramené à l’invite de commande.

Montage du nouveau disque

Pour utiliser le nouveau lecteur, il est nécessaire de monter la partition de celui-ci sur un point de montage dans le système de fichiers. En réalité, pour être exact, nous ne montons ni le lecteur ni la partition, mais le système de fichiers situé sur la partition, en le rattachant à l’arborescence du système de fichiers de votre machine.

Le point /mnt est un emplacement aussi approprié que n’importe quel autre. Il ne s’agit que d’un point de montage temporaire qui nous permet de copier des données sur le nouveau lecteur. Nous allons utiliser la commande mount pour monter le système de fichiers de la première partition de /dev/sdb sur /mnt.

sudo mount /dev/sdb1 /mnt

Si tout s’est bien passé, vous devriez revenir à l’invite de commande sans message d’erreur. Voyons s’il est possible de changer de répertoire pour aller dans notre système de fichiers nouvellement monté.

cd /mnt

Oui, c’est possible. Voyons ce qui s’y trouve.

ls -ahl

Nous sommes bien dans notre nouveau système de fichiers. Le répertoire par défaut « lost + found » n’est pas nécessaire, nous pouvons donc le supprimer.

sudo rm -rf lost+found

Copie de votre répertoire personnel

Nous devons copier l’ensemble du contenu de l’ancien répertoire personnel vers le système de fichiers nouvellement monté. L’utilisation des options r (récursif) et p (préserver) permet de s’assurer que les sous-répertoires sont également copiés, et que les propriétés, les permissions et les autres attributs des fichiers sont conservés.

sudo cp -rp /home/* /mnt

Une fois la copie terminée, utilisez ls pour vérifier que vos données se trouvent là où vous les attendez dans le nouveau système de fichiers. Autrement dit, si /mnt était votre répertoire personnel, tout est-il présent et correct ?

ls
ls dave

Vous souhaiterez probablement faire une vérification plus poussée que celle que nous avons faite sur la machine de test utilisée pour rédiger cet article. Par sécurité, nous allons renommer et conserver votre ancien répertoire /home jusqu’à ce que vous soyez certain de pouvoir le supprimer en toute sécurité.

sudo mv /home /home.orig

Nous allons maintenant créer un nouveau répertoire personnel vide.

sudo mkdir /home

Nous utiliserons ce nouveau répertoire personnel vide comme point de montage de notre système de fichiers sur le nouveau disque dur. Il faut donc le démonter de /mnt et le remonter sur /home. Notez que la commande umount ne comporte pas de « n » après le « u ».

sudo umount /dev/sdb1
sudo mount /dev/sdb1 /home/

Test du nouveau répertoire personnel

Voyons maintenant quels sont les attributs de la partition /dev/sdb1 :

df /dev/sdb1

L’affichage nous montre le nom du système de fichiers, la taille de la partition et l’espace utilisé et disponible, et surtout, son point de montage. Il s’agit à présent de notre répertoire /home. Cela signifie que nous devrions pouvoir y accéder exactement comme nous le ferions dans l’ancien répertoire /home.

Si nous nous déplaçons vers un emplacement quelconque du système de fichiers, nous devrions être en mesure de retourner vers /home en utilisant le raccourci ~ (tilde).

cd /
cd ~
pwd
ls

cd /home
ls
cd dave
ls
ls -a

Nous pouvons nous déplacer dans le système de fichiers vers /home en utilisant des commandes explicites, mais aussi en utilisant le raccourci ~. Les dossiers, fichiers et fichiers « dotfiles » que nous attendions sont tous présents. Tout semble correct.

S’il manquait quelque chose, nous pourrions le copier à partir du répertoire /home.orig, auquel nous avons toujours accès à la racine du système de fichiers. Mais tout va bien.

Il faut désormais que /dev/sdb1 soit monté automatiquement à chaque démarrage de votre ordinateur.

Modification de fstab

Le fichier « fstab » contient des descriptions des systèmes de fichiers qui doivent être montés au démarrage. Avant d’y apporter des modifications, nous allons faire une copie de sauvegarde afin de pouvoir revenir en arrière en cas de problème.

sudo cp /etc/fstab /etc/fstab.orig

Nous pouvons maintenant éditer le fichier fstab.

sudo gedit /etc/fstab

Vous devez ajouter une ligne à la fin du fichier pour monter notre nouveau répertoire /home. Si vos identifiants de lecteur et de partition sont différents de ceux utilisés dans cet exemple, remplacez /dev/sdb1 par les vôtres.

Saisissez le nom de la partition au début de la ligne, puis appuyez sur Tab.
Saisissez le point de montage, /home, et appuyez sur Tab.
Saisissez la description du système de fichiers, ext4, et appuyez sur Tab.
Saisissez les valeurs par défaut des options de montage et appuyez sur Tab.
Saisissez le chiffre 0 pour l’option de vidage du système de fichiers et appuyez sur Tab.
Saisissez le chiffre 0 pour l’option de vérification du système de fichiers.

Enregistrez le fichier fstab.

Redémarrage du système

Nous devons redémarrer le système afin de vérifier que tout s’est déroulé comme prévu et que votre connexion au nouveau répertoire /home est transparente.

Dans le cas contraire, vous avez toujours une solution de repli, avec votre répertoire d’origine /home et le fichier fstab, que vous pourrez restaurer si nécessaire. Grâce aux précautions que nous avons prises – en copiant le répertoire /home et les fichiers fstab – vous pouvez facilement remettre votre système dans l’état où il se trouvait avant de commencer.

sudo reboot now

Vérifications finales

Une fois le système redémarré, vérifions que votre répertoire /home se trouve bien sur votre nouveau disque dur, et que votre système n’a pas (miraculeusement) recommencé à utiliser l’ancien répertoire /home.

df /dev/sdb1

Parfait, il est monté sur /home. Mission accomplie.

Une fois que vous êtes absolument certain de ne plus avoir besoin de la copie de sauvegarde de votre ancien répertoire /home, vous pouvez la supprimer :

cd /
sudo rm -rf home.orig/

Et bien sûr, si vous vous rendez compte qu’un élément n’a pas été copié de l’ancien /home vers le nouveau, vous pouvez le récupérer à partir de la sauvegarde que vous avez faite avant de commencer.

La sérénité retrouvée

Maintenant que votre répertoire /home est distinct du reste de la partition du système d’exploitation, vous pouvez réinstaller votre système d’exploitation sans que vos données ne soient impactées. Il vous suffit de modifier le fichier fstab afin de monter votre deuxième lecteur sur /home.

De plus, comme l’ensemble de vos fichiers « dotfiles » se trouve dans votre répertoire /home, lorsque vous lancerez vos différentes applications, elles retrouveront tous vos paramètres, préférences et données.

Cela simplifie les réinstallations et réduit les risques liés aux mises à niveau.