Déplacer /home vers sa propre partition

5 février 2007

Quand vous avez installé votre Ubuntu (peut-être pour la première fois) sur votre ordinateur vous n’avez probablement pas pensé à placer votre répertoire personnel, alias "/home", sur une partition séparée. Et pourtant, une telle manipulation a de nombreux avantages.

Principalement, vous pouvez réinstaller votre OS, même une distribution Linux différente, sans rien perdre de vos données personnelles et en gardant la même ergonomie dans votre nouveau système. Celui-ci ira sagement s’installer dans la racine "/". Rien de bien grave vous verrez, il est très simple de déplacer votre répertoire personnel. Prenez un café, et allons-y.

Pour commencer, démarrez une session avec un LiveCD d’Ubuntu pour partitionner votre disque dur si vous n’en avez qu’un. Si vous en avez plusieurs, démontez (de manière logicielle, ne démontez pas physiquement votre disque dur!) celui sur lequel vous voulez déplacer /home. Créez alors une partition pour /home : je vous conseille d’utiliser le format ext3, et une taille relativement conséquente étant donné que vous pourrez stocker de manière durable dans ce répertoire.

Je décrirais pas plus en détails la procédure pour créer des partitions avec GParted, celle-ci étant très simple. Mais si vous avez des questions, posez-les ici avant de faire quelque chose dont vous n’êtes pas sûr.

Une fois que vous avez votre nouvelle partition, faisons une place au chaud pour votre /home, commençons par monter la nouvelle partition (nous appellerons temporairement le point de montage "/newhome") :

$ mkdir /mnt/newhome
$ sudo mount -t ext3 /dev/hda5 /mnt/newhome

Remplacez "ext3" par un autre format de partition si vous en avez choisi un autre et remplacez également "hda5" par le label de partition adéquat (donné notamment lors de la création de la partition).

Maintenant, voilà la commande magique. Il va falloir copier votre "/home" vers "/newhome". Or un simple "cp" casserais certains liens, certains fichiers cachés… Il va donc nous falloir une commande plus poussée. Voilà donc :

$ cd /home/
$ find . -depth -print0 | cpio --null --sparse -pvd /mnt/newhome/

Maintenant vérifiez que tout a bien été copié correctement : faites-le avec attention, votre ancien répertoire sera supprimé par la suite. Démontez maintenant "/newhome" :

$ sudo umount /mnt/newhome

Faisons de la place pour votre nouveau répertoire personnel :

$ sudo mv /home /old_home

A cette étape vous n’avez plus de répertoire "/home", créons un nouveau "/home" et montons-le :

$ sudo mkdir /home
$ sudo mount /dev/hda5 /home

Une nouvelle fois, changez dans cette dernière commande "hda5" par votre label de partition.

Vérifiez à ce moment si tout fonctionne, si vous avez bien accès à votre partition et à vos fichiers. Une fois que tout fonctionne, il faut faire en sorte qu’Ubuntu monte automatiquement au démarrage votre "/home". Pour cela, ajoutons une ligne au fichier fstab :

$ sudo gedit /etc/fstab

Ajoutez cette ligne à votre fichier, en modifiant "ext3" et "hda5" en fonction de vos paramètre précédemment définis.

/dev/hda5 /home ext3 nodev,nosuid 0 2

Sauvegardez ce fichier et fermez-le. Redémarrez maintenant votre ordinateur pour tester une nouvelle fois que tout fonctionne bien. Si tel est le cas, vous pouvez supprimer votre ancien répertoire personnel :

$ sudo rm -r /old_home

Et voilà, vous pouvez maintenant changer facilement de système d’exploitation, installer des versions beta tout en conservant votre répertoire personnel pour la tester, tant d’autres choses…

Publicités

8 Réponses to “Déplacer /home vers sa propre partition”

  1. Clem Says:

    Bonjour,

    je suis entrain de deplacer mon /home vers une autre partition qui est en partage avec windows (une FAT32) ce tuto parais bien explique mais j’ai toujours un dilemne lors que je lance la ligne suivante:
    $ find . -depth -print0 | cpio –null –sparse -pvd /mnt/newhome/

    deja il faut remplacer, je pense, les – devant null et sparse par — :
    $ find . -depth -print0 | cpio –null –sparse -pvd /mnt/newhome/

    Mais la ou ca coince c’est que cette commande me renvoie un message d’erreur par fichier a deplacer !
    ex:
    cpio: /mnt/newhome//./.gftp/bookmarks: Aucun fichier ou répertoire de ce type

    ou encore:
    cpio: Ne peut créer le répertoire « /mnt/newhome//./.gftp »: Permission non accordée

    Comment puis je resoudre ce probleme svp ?

    PS: j’ai essaye d’executer cette commande en super utilisateur, ce qui n’a rien change au probleme. …

    Merci pour toutes les reponses futures ! 😉

  2. Barista Says:

    Bonsoir Clem !

    Effectivement, il y avait un problème dans les tirets de la première commande : je ne sais pas pourquoi en la prenant depuis mon Terminal elle est apparue comme cela… En tout cas c’est réglé !
    En ce qui concerne ton deuxième problème : il vient bien à mon avis des droits, essaye d’entrer la commande avec l’option sudo comme suit :
    $ find . -depth -print0 | sudo cpio --null --sparse -pvd /mnt/newhome/

  3. Clem Says:

    Merci infiniment ! Ca a merche impec’ !!!

    C’est tres agreable de recevoir une reponse aussi precise, juste et dans un delais si court !!!

    Par contre, lorsque j’execute ceci:
    sudo mv /home /old_home

    cela renvoie:
    mv: ne peut déplacer `/home’ vers `/old_home’: Périphérique ou ressource occupé

    Comment faire ?

    (je suis vraiment debutant … desole … )

    Merci encore !

    Clement.

  4. Barista Says:

    De rien 🙂 !
    S’il te renvoie un message disant que le périphérique est occupé il peut y avoir deux solutions à mon avis :
    1. Il faut retourner à la racine (« / ») de la partition de ton système :
    cd /
    puis déplacer ton ancien /home dans /home_old comme décrit…
    2. Il n’a pas encore terminé de copier ton ancien /home vers le nouveau (ce qui est normal dans le cas d’une copie aussi profonde, d’un répertoire peut-être volumineux) : là il suffirait d’attendre un peu 🙂
    Cela dit je pense vraiment que c’est la première solutions qui marchera…

  5. Clem Says:

    Salut

    J’ai encore quelques enuis … lorsque je redemarre mon ordinateur, apres avoir charge les composants (barre de defilement a 100%) l’ecran passe au noir et deux messages d’erreur apparaissent successivement:

    Le fichier $HOME/.dmrc de l’utilisateur a ete ignore. …

    et le second:

    Votre session n’a meme pas dure 10 secondes …

    Avec en detail:
    Impossible de definir le mode a 0700 sur le repertoire …

    J’ai un peu cherche sur le net pour trouver ce site

    Mais je n’arrive pas a faire le changement d' »owner » (chown) pour le fichier .dmrc ca me renvoit: operation non permise

    Alors je pose la question suivante:
    est il possible de changer le proprietaire de ce fichier en etant pas le proprietaire du disque sur lequel il est stocke ?
    si non, comment changer le proprietaire du disque ? (dans fstab ? )

    Merci !!

    Clem.

  6. Barista Says:

    Je pense que ce qui pose problème ici c’est le format FAT32 de ta partition… Le FAT32 ne supporte pas un certain nombre de choses (hardlinks, journalling, etc.) qui sont utilisées par par Ubuntu. Je te conseille de créer une partition au format ext3 pour ton /home : ça marchera impec’ pour avoir une partition /home et tu éviteras des problèmes à venir…
    Juste au cas où tu veuilles revenir en arrière à ton niveau, voilà une marche à suivre.
    Démarre ton ordinateur avec une session LiveCD, puis entre ces commandes :
    $ sudo mkdir /recovery
    $ sudo mount -t ext3 /dev/hda1 /recovery
    $ sudo cp -R /recovery/home_old /recovery/home

    Remplace hda1 dans la deuxième commande par la partition sur laquelle se trouve actuellement « / » et ton ancien /home.
    Modifies ensuite ton fstab en enlevant la ligne qui concerne la partition de /home que tu a rajouté précédemment.
    Redémarre, et le tour est joué !

  7. Clem Says:

    Merci !!

    J’avais reussi a monter ma partition FAT32 en etant proprietaire (option uid=user_name dans fstab) mais ce ne fonctionnais toujours pas !

    Desormais je comprend pourquoi !!!

    Merci encore pour votre aide !

    Clement.


Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :