|
Table des matières
Sujet intéressant inspiré du site Ubuntu Déplacer le /homeSi à l’installation d’Ubuntu, on a créé une seule partition Linux (en dehors du Swap), le /home est dans l’arborescence de la racine. L’inconvénient est que si l’on réinstalle Ubuntu ou une nouvelle version, on perd tous ses documents et ses réglages. On a donc tout intérêt à avoir une partition séparée pour son /home. La présente page indique comment faire pour rattraper la chose en séparant le /home de la racine. Solution 1 (tirée directement du site Ubuntu, réservée aux gens à l'aise)PréambuleLes modifications présentées ici ne sont pas triviales. Elles nécessitent un minimum de soin. Afin de palier tout problème, faire une sauvegarde du répertoire /home (préférablement sur un support externe, comme un disque dur USB, une clé USB, un CD-ROM ou un DVD-ROM; ne surtout copier pas le /home dans /tmp, ce répertoire temporaire étant vidé à chaque redémarrage de l’ordinateur) avant toute manipulation! Je répète : faire une sauvegarde des documents importants! En cas d’erreur, il est possible que de perdre l’intégralité des fichiers personnels importants et de la configuration actuelle; il est donc important d’en conserver une copie accessible à tout moment. Si on n’est pas sûr de réussir ces manipulations, ne pas les faire! PublicSi l’installation effectuée était celle par défaut, le répertoire /home se trouve sur la même partition que la racine /. A l’usage, on peut ressentir le besoin de lui dédier sa propre partition ou même pourquoi pas un autre disque dur. La procédure ci-dessous permet d’effectuer cette opération. DémarcheTout d’abord, préparer une nouvelle partition (disons que c’est sdb1 et qu’elle est de type ext3) et la monter dans un endroit quelconque (autre que /home, par exemple, /media/nouveauhome) sudo mkdir /media/nouveauhome sudo mount /dev/sdb1 -t ext3 /media/nouveauhome Passer en console virtuelle init 1 dans un tty (CTRL+ALT+F1) : sudo telinit 1 Attention, on se retrouve en environnement mono-utilisateur, et root seulement, donc ne pas faire de bêtises! Rappel : Étant désormais en root, nul besoin de la commande sudo! Déplacer alors les données du /home actuel dans le nouveau : mv /home/* /media/nouveauhome/ ou si on a beaucoup de place, ou que l’on est plus prudent et moins courageux: sudo cp -a /home/. /media/nouveauhome/ # cp -a pour conserver les permissions (-p), les liens (-d) et la hiérarchie (-r) Une fois le déplacement terminé, modifier le fichier /etc/fstab grâce à l’éditeur de son choix. On utilisera ici nano, mais n’importe quel éditeur comme vim ou emacs ferait l’affaire. sudo nano /etc/fstab Ajouter une ligne du type : /dev/sdb1 /home ext3 defaults 0 2 Supprimer (ou commenter, cela vaut mieux) l’ancienne ligne (si elle existait) contenant : /dev/le_home_actuel /home ext3 defaults 0 2 Démonter la nouvelle partition : umount /dev/sdb1 Remonter toutes les partitions selon fstab : mount -a Et retourner au mode graphique : telinit 2 ou Alt+F7. Si tout s’est bien passé, le home a été déplacé sur sa propre partition ! Sinon, c’est le moment de sortir les sauvegardes ! Nota: Si on est passé par la copie pour mettre les fichiers dans le nouveau home, vérifier que le transfert a bien été effectué, pour effacer les anciens fichiers ensuite. Solution 2 (dûment validée)PréambuleAu lieu de travailler directement sur le système Linux installé et en activité, il est plus prudent de démarrer en LiveCD pour faire le changement. Cette solution utilisant un LiveCD n’offre pas de difficulté particulière. Procédure- Démarrer un LiveCD Ubuntu. - Créer avec GParted la partition destinée au futur /home en format Ext3, dans un espace disque dégagé auparavant. On supposera que c’est sdb1 comme ci-dessus. - On suppose que le /home actuel est dans la partition racine sda1, c’est donc le répertoire /sda1/home du disque dur. On suppose qu’il y a un second disque dur (sdb) avec une partition vide sdb1 au format ext3. - Créer un répertoire sdb1 en /media et monter la partition en /media/sdb1 sudo mkdir /media/sdb1 sudo mount /dev/sdb1 /media/sdb1 - Monter la partition comprenant le /home à déplacer (supposé ici sda1) et afficher son contenu sudo mkdir /media/sda1 sudo mount /dev/sda1 /media/sda1 cd /media/sda1 ls - Rappel: En LiveCD, l’arborescence directe est celle du CD-ROM. L’arborescence du disque dur est en /media/sda1 pour la racine et en /media/sdb1 pour le futur /home. - Déplacer alors les données du /home actuel du disque dans le nouveau : sudo cp -a /media/sda1/home/. /media/sdb1/ # cp -a pour conserver les permissions ( -p ), les liens ( -d ) et la hiérarchie ( -r ). Attention le . à la fin du répertoire de départ est important - Une fois le déplacement terminé, vérifier le contenu de /sdb1 cd /media/sdb1 ls - Par sécurité, changer provisoirement le nom de l’ancien /home cd // sudo mv /media/sda1/home /media/sda1/old_home - Modifier le fichier /etc/fstab du système Linux du PC grâce à l’éditeur nano ou sinon gedit (le fstab assure la gestion des points de montage des partitions). sudo nano /media/sda1/etc/fstab - Ajouter dans le fstab les deux lignes du type : # /dev/sdb1 /dev/sdb1 /home ext3 defaults 0 2 Dans les fstab actuels, on voit apparaître les UUID (ces paramètres proviennent de l’installation d’Ubuntu) qui définissent les zones de disque correspondant aux partitions, ces UUID peuvent être remplacés par /dev/sda(i) ou sdb(i). Il est quand même conseillé de remplacer /dev/sdb1 par son UUID que l’on trouve par la commande ls -l /dev/disk/by-uuid/ - Supprimer (ou commenter, cela vaut mieux) l’ancienne ligne (si elle existait) contenant : /dev/le_home_actuel /home ext3 defaults 0 2 - Redémarrer en Ubuntu normal. Si tout marche, penser à supprimer le répertoire /old_home. En cas de problème, redémarrer en LiveCD et vérifier la cohérence du fichier fstab. Nota Si le changement de /home est effectué à l’occasion d’une installation de nouvelle version d’Ubuntu (l’avantage évident est que l’on garde ici les dossiers de données et paramètres personnels), il est inutile d’effacer l’ancien /home s’il était inclus sous la racine, il sera écrasé à l’installation. Nota Pour certaines commandes, il faut se mettre en root, ce qui était fait d’office dans la première solution. Ceci peut se faire en entrant sudo -s, on devient super-utilisateur jusqu’à annulation (Ctl+D). Si sudo ne suffit pas, passer par su après avoir défini le mot de passe root (Système/Administration/Utilisateurs et groupes) et attribué tous les droits au root (Privilèges utilisateurs). Solution 3Cette solution reprend l’idée de la solutiom précédente en passant ici par une compression tar.gz qui est plus rapide que la copie de tous les fichiers du /home.
sudo mkdir /media/sdb1 sudo mount /dev/sdb1 -t ext3 /media/sdb1
sudo mount /dev/sdb1 /media/sdb1
tar -czvf /home /media/sdb1/new_home.tar.gz
cd /media/sdb1
tar -xzvf new_home.tar.gz
cd new_home
find . -type f -exec mv {} /media/sdb1 \;
sudo mkdir /media sda1 # qui contient le /home actuel sudo mkdir /media sdb1 # qui sera le nouveau /home sudo mount /dev/sda1 /media/sda1 sudo mount /dev/sdb1 /media/sdb1
gksudo gedit /media/sda1/etc/fstab
# /dev/sdb1 /dev/sdb1 /home ext3 relatime 0 2
sudo mv /media/sda1/home /media/sda1/old_home
|