Table des matières

, ,

Déplacer son dossier utilisateur (« /home »)

Préambule

Déplacer le dossier HOME est fastidieux et dangereux. Si votre situation le permet vous devriez d'abord envisager de choisir sa localisation au moment de l'installation! Cette manipulation est simplissime: Installer ubuntu manuellement (choisir "faire autre chose" lors de l'installation). Puis, en plus de choisir la taille et l'emplacement du "SWAP" et du "/", indiquer la partition que vous souhaitez utiliser pour le HOME en lui donnant l'étiquette "/HOME"…

Si votre situation nécessite un déplacement du HOME sans réinstaller ubuntu: Les modifications présentées ici ne sont pas triviales. Elles nécessitent un minimum de soin. Afin d'éviter tout problème, faites une sauvegarde de votre répertoire /home (préférablement sur un support externe, comme une partition linux1) d'un disque dur externe ou d'une clé USB ou un DVD-R par exemple) avant toute manipulation ! En cas d'erreur, il est possible que vous perdiez l'intégralité de vos fichiers importants et de votre configuration actuelle ; il est donc important d'en conserver une copie accessible à tout moment.

Public

Si vous avez effectué une installation par défaut, votre répertoire /home se trouve sur la même partition que la racine /. Mais cette situation, qui a des avantages et des inconvénients, peut-être modifiée.

Le dossier /home contient :

Avantages d'un /home séparé

Les avantages d'un /home séparé sont :

Note : depuis Ubuntu 8.04 LTS, il n'est plus indispensable d'avoir un /home séparé pour réinstaller Ubuntu sans perdre son /home. (plus d'informations).

Inconvénients d'un /home séparé

Si le /home séparé vous semble bien adapté à vos besoins (en cas de doute, posez votre question sur ce forum), les 2 démarches ci-dessous vous permettent d'effectuer cette opération, soit avec le terminal, soit en mode (presque) graphique.

Méthode 1 : Démarche en mode (presque) graphique

Procédure avec peu de commentaires

  1. Créer avec votre éditeur de partitions (Gparted par exemple) une partition séparée et l'appeler (étiquette) newhome.
  2. Monter la partition newhome en cliquant dessus dans votre navigateur de fichier (de façon ponctuelle, juste pour pouvoir copier).
  3. Saisir dans un terminal sudo cp -av /home/* /media/newhome/ ce qui copie le contenu de /home (mais pas le /home lui même) sur la nouvelle partition.
  4. Lancer votre gestionnaire de fichiers en mode administrateur (par exemple : ALT+F2 puis gksudo nautilus, ou gksudo nemo pour linux Mint >=14) et neutraliser l'ancien /home en le renommant en /oldhome.
  5. Créer immédiatement via votre gestionnaire de fichiers (en mode administrateur) un nouveau répertoire /home vide, puis dans celui-ci créez un dossier du nom de votre login.
  6. Lancez l'application 'Disques'. Dans celui-ci,
    1. cliquer sur la partition séparée /newhome,
    2. puis sur la roue dentée 'Autres actions',
    3. puis sur 'Modifier les options de montages
    4. Décocher 'Options de montage automatique'
    5. Changez point de montage pour /home
  7. Redémarrer le système. Votre /home pointe maintenant sur une partition séparée.
Si vous déplacez un /home déjà sur une partition séparée, Suivez les points 1 à 3. Ensuite il vous suffit de modifier le fichier /etc/fstab (faites une copie de ce fichier avant modification) avec les droits administrateurs afin de pointer vers le nouveau /home
Vous aurez besoin de connaître l'UUID de la partition du nouveau /home
##liste les partitions et leur UUID##
sudo blkid

##Sauvegarde du fichier /etc/fstab##

sudo cp -a /etc/fstab /etc/fstab.save

##Modifiez le fichier /etc/fstab##

gksudo gedit /etc/fstab

Cherchez la ligne pointant vers l'ancien home et remplacez l'UUID par celui de la partition du nouveau /home. Profitez-en pour changer dans les commentaires le /dev/sdXy par le nouveau (vous pouvez le trouver avec l'utilitaire de disque en cliquant sur la partition voulue) comme dans l'exemple ci-dessous :

#Entry for /dev/sdc1 :
UUID=905ce836-7aa9-4413-853f-126a0eb2587c	/home	ext4	defaults	0	2

Fermez et enregistrez le fichier puis redémarrer votre ordinateur

Procédure très commentée

  1. Installer Gparted par la logithèque Ubuntu, ou software-center (Application / logitèque Ubuntu / Outils système / Outil de partitionnement Gnome), ou par Synaptic (Système / Administration / Gestionnaire de paquet), ou par Apper (si vous êtes dans kubuntu).
  2. Installer Disk-Manager
  3. Lancer Gparted (dans gnome : Système / Administration / Gparted).
  4. Démonter la partition que vous voulez partitionner (clic droit dessus, puis « démonter »). Si c'est la partition Ubuntu sous laquelle vous travaillez au moment de l'opération, vous ne pourrez la démonter, car c'est impossible sur une partition active. Il faut donc se connecter avec un autre disque sous Ubuntu, ou avec un live_cd ou avec un live_usb pour partitionner. Vous pouvez installer Gparted même à partir d'un live_cd / live_usb.
  5. Une fois la partition principale démontée, créer une nouvelle partition avec Gparted :
    • redimensionner (réduisez) la partition initiale (celle qui contient votre système), en faisant un clic droit sur la partition, puis « redimensionner ». Ajustez la taille comme vous l'entendez en faisant glisser à la souris les limites de la partition.
    • Puis créer une partition au format ext4 ou ext3 dans la zone libérée (« non alloué ») : clic dessus, puis « partition / nouveau ». Mettez une étiquette (un nom) à la nouvelle partition, par exemple newhome. C'est cette nouvelle partition qui recevra votre /home.
    • « Edition / appliquez les modifications » : votre nouvelle partition est maintenant créée. Fermez Gparted.
    • Attention, il faut conserver assez de place libre dans la partition d'origine, qui comprend votre système. Cela pour permettre l'installation de nouveaux logiciels, ou simplement des mises à jour Ubuntu. Il faut aussi prévoir de la place libre sur la nouvelle partition, pour pouvoir y ajouter de nouveaux fichiers.
  6. Ressortez de votre live CD, et revenez dans Ubuntu.
  7. Montez temporairement la partition nouvellement créée avec (dans le menu gnome) « raccourci / newhome ». Une icône marquée : « newhome » doit apparaître sur votre bureau. Vous pouvez fermer la fenêtre Nautilus qui est apparue lors du montage, elle ne sert à rien.
  8. Copier votre /home vers la nouvelle partition en lançant dans le terminal (« Applications / accessoires / terminal ») : sudo cp -av /home/. /media/newhome/ Ne copiez pas votre /home avec Nautilus : Nautilus refuse, même en mode administrateur. Important : n'oubliez pas le point « . » à la fin de sudo cp -av /home/. car c'est lui qui permet de copier le CONTENU du /home d'origine, sans le répertoire /home lui-même, qui ne doit PAS être copié.
  9. Vérifier avec Nautilus (par exemple en cliquant sur l'icône « newhome » affichée sur votre bureau) que le contenu votre /home a bien été copié vers /newhome/. Vous devez avoir dans la fenêtre Nautilus un dossier du nom de /toto (si toto est votre nom de compte), mais pas de dossier /home.
  10. Lancer Nautilus en mode administrateur et neutraliser l'ancien /home. Pour cela :
    • appuyer en même temps sur ALT+F2, ce qui fait apparaître la fenêtre « lancer une application ».
    • Saisissez-y gksudo nautilus, et validez. Nautilus demande le mot de passe et se lance en mode administrateur (il peut maintenant toucher aux fichiers systèmes, alors soyez prudent).
    • Dans la partie droite de l'écran, allez sur « système de fichiers », puis clic droit sur /home, et « renommer » en /oldhome. Votre ancien /home est maintenant neutralisé (mais récupérable en cas de besoin). Ne redémarrer pas maintenant Ubuntu : il n'y a plus de /home, et le système ne se lancerait pas (ce problème peut-être contourné, voir plus bas).
    • Recréer immédiatement un /home vide par un clic droit sur le fonds de Nautilus, puis « créer un dossier ». C'est ce /home vide qui accueillera le point de montage (il sera reconnu par le système comme un pointage vers votre compte - « toto » dans l'exemple plus haut - copié sur votre nouvelle partition). Vous avez maintenant un répertoire /oldhome, ainsi qu'un répertoire /home totalement vide, tous deux sur la racine.
  11. Lancer Disk-Manager pour monter votre nouvelle partition dans le /home vide (Gestionnaire de fichiers dans administration)
  12. cliquez sur la partition séparée /newhome qui a accueilli la copie de votre compte issu de /home (ce sera sans doute sda3, mais pas forcément).
    • Cocher la colonne « active » (ce qui permettra à votre nouveau /home de se monter au démarrage).
    • Puis cliquez sur le bouton « modifier ». Dans « point de montage », saisissez /home. Dans options, laissez « defaults ».
  13. Redémarrer Ubuntu. Normalement tout se passe bien. En cas de problème, vous pouvez revenir à l'ancienne installation ainsi :
    • redémarrer avec un live CD ou un live USB,
    • accéder à votre disque système Ubuntu (pas le /newhome) avec Nautilus en mode administrateur (ALT+F2 puis gksudo Nautilus).
    • Effacer le /home vide
    • Renommer /oldhome en /home
    • Effacer le point de montage créé par disk-manager en relançant celui-ci, et en remplaçant le montage /home par /media/newhome/. Vous pouvez aussi aller dans le fichier /etc/fstab avec Nautilus en mode admin, l'ouvrir avec gedit (clic droit sur le fichier), et effacer les 2 lignes concernant le montage du /home sur sda3 (si votre disque /newhome/ est bien sda3), qui sont dans ce genre :
#Entry for /dev/sda3 :
UUID=acda7b4a-xxxxx	/home	ext4	defaults	0	0

Et votre système redémarrera avec l'ancienne configuration et les anciens fichiers se trouvant sur le /home séparé. D'éventuels thèmes ou logiciels précédemment installés devront par contre l'être à nouveau, mais une fois ceci fait, ils démarreront avec la configuration qu'ils avaient antérieurement, car ils la retrouveront sur le /home séparé.

Si le disk manager refuse de se lancer (précisément à cause du renommage de votre /home), utilisez la commande "mount /dev/sda3 /home". Après ça, il devrait se lancer sans problème (ensuite, cliquez sur la partition séparée /home (et non /newhome) et cochez la colonne « active » et passez à l'étape 3.2.13). Si il ne se lance toujours pas, passez à l'étape 4.3.

Méthode 2 : disk-manager

Cette méthode est rapide et simple à exécuter. Elle repose sur l'utilisation de Disk-Manager.

Préalable

Cette opération peut nécessiter de démarrer en LiveCD, dans un premier temps, si une ou des partitions concernées sont actuellement en service

Déplacement du /home

Par prudence, attendez quelques jours pour vérifier que tout va bien, supprimez alors de la racine le dossier /old.home et redimensionnez les différentes partitions pour utiliser l'espace libéré.

Méthode 3 : Démarche avec le terminal

Pré-requis

Pour connaitre le nom de votre partition, lorsque vous aurez redémarré en recovery mode saisissez :

  fdisk -l
N'utilisez pas une partition formatée en FAT ou en NTFS pour cela ! De l'ext3, par exemple, conviendra parfaitement.

Ce mode particulier vous donne les droits administrateurs et permet de travailler sans avoir besoin de /home.

Une fois démarré en mode recovery, vous n'aurez plus ni accès au mode graphique, ni accès à Internet. Il est donc nécessaire d'imprimer cette page, ou alors d'avoir deux ordinateurs pour pouvoir suivre les étapes à réaliser sur une autre machine…
Sur ubuntu 12.10, en recovery mode, la partition "/" est monté en read-only. Pour la monter en read-write, il faut utiliser
mount -o rw,remount /

Si on évite cette manipulation, il est impossible de modifier le fichier /etc/fstab

Étape 1 : Copie

Démarrez en « mode recovery ». Une solution alternative simple : fermez toutes vos fenêtres, puis dans un terminal, exécutez la commande « sudo telinit 1 ».

telinit 1 fait passer le systeme en runlevel 1, sur un serveur distant vous perdrez donc votre connexion SSH, necessitant un reboot materiel, ou le changement d'utilisateur.

Le but est de copier tout ce que vous avez dans /home, dans la nouvelle partition. Pour cela, il faut d'abord "monter" la partition en question :

mkdir /nouveau-home
mount /dev/sda3 /nouveau-home/

Vérifiez que la partition soit bien montée, la commande suivante doit vous afficher « /dev/sda3 » sur « /nouveau-home » :

df -h

Il ne reste plus qu'à lancer la copie du contenu du /home (mais pas du /home lui-même - attention à la syntaxe, c'est le point "." qui copie le contenu) :

cp -a /home/. /nouveau-home/

À la fin de la copie, lancez de nouveau la commande :

df -h

L'espace disponible a dû diminuer. Vous pouvez également vérifier que tout a bien été copié, avec une commande du type :

ls -al /nouveau-home/votre_login/

Étape 2 : Mettre à jour les points de montage

Il faut maintenant indiquer à l'ordinateur qu'à chaque démarrage il faut monter sda3 sur le répertoire /home. Pour cela, nous allons devoir éditer le fichier /etc/fstab. Mais avant nous allons devoir connaitre l'UUID de sda3. Pour cela si vous avez une version antérieure à Karmic Koala:

vol_id /dev/sda3

ou à partir de Karmic Koala :

blkid /dev/sda3

Prenez un papier et un crayon, et notez soigneusement l'uuid que vous renvoie cette commande ou ajoutez automatiquement l'uuid à la fin de /etc/fstab :

blkid /dev/sda3 >> /etc/fstab

Ensuite, éditez le fichier /etc/fstab :

nano /etc/fstab

Et ajoutez/modifier une/cette ligne comme ceci :

UUID=a9504f40-83cd-4260-bbf4-646aa304e699      /home     ext3        defaults        0       2

Remplacez bien sûr l'UUID donnée ici en exemple par le votre. De plus, modifiez ext3 par autre chose si votre nouvelle partition n'a pas été formatée en ext3…

Ici, deux cas peuvent se présenter :

mv /home /home.bak
mkdir /home

Vous pouvez maintenant faire un essai en redémarrant l'ordinateur :

reboot

Étape 3 : Supprimer les anciens fichiers

Tout s'est bien passé, reste à faire un peu de ménage en supprimant les fichiers contenus dans l'ancien /home, puisqu'ils ont tous été copiés sur sda3.

sudo rm -rf /home.bak
Attention : Ne vous trompez pas dans la syntaxe de cette commande ! Tout ce qui se trouvait dans /home va être effacé (ce qui n'est pas un problème puisque tout a été copié dans sda3 si tout s'est correctement déroulé).

Méthode 4 : Démarche avec le terminal ; réutilisation d'un ancien home d'une partition sans copie

avant propos

On va réutiliser un /home qui fonctionne avec une nouvelle installation du système d'exploitation. On supposera que l'on reste sur le même système d'exploitation - y compris la version par exemple 12.04.3 - et que celui est à jour pour augmenter la compatibilité mais selon les cas c'est ou pas nécessaire.

prérequis :

une partition UUID=452584560-4521-12ae-b1d7-32fd221fd2125c contient un /home qui deviendra le futur /home on l'appelle home0 une installation a été faite d'un systeme propre; en particulier cette partition il contient / qui contient /home; on l'appelle home1

but

Le but est alors de virer home1 qui ne contient rien d'intéressant et d'utiliser home0 à la place ;

méthode

Démarrer en root Détruire /home ( éventuellement le renommer avec mv /home /home1 ) Rajouter une ligne dans /etc/fstab du type : UUID=452584560-4521-12ae-b1d7-32fd221fd2125c /home ext3 defaults 0 2 mount -a ; ls /home/ devrait alors vous montrer le contenu de la partition home0

Méthode 5 : Démarche par duplication

  1. Booter avec une live USB afin de pouvoir utiliser des partitions non actives.
  2. Lancer le logiciel GPARTED.
  3. Copier la partition contenant le répertoire /home (Elle peut aussi contenir d'autres répertoires).
  4. Coller la partition dans la nouvelle partition ou dans un espace inoccupé d'une taille au moins équivalente.
  5. Lancer la commande sudo blkid afin de récupérer le UUID qui a été alloué à cette nouvelle partition.
  6. Mettre à jour la ligne du fichier /etc/fstab décrivant le point de montage de la partition /home avec cette valeur de UUID.
  7. Booter

Voir aussi


Contributeurs principaux : Raphaël Doursenaud,daeavelwyn, Hoper ,dindoun.

1)
Comme les systèmes de fichiers de Windows (fat32, exfat, ntfs) n'enregistrent pas les droits des fichiers linux, une sauvegarde sur un de ces systèmes corromprait la sauvegarde.
2)
attention, les configurations de logiciels peuvent ne pas être rétro-compatibles, exemples.