Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 18/02/2026, à 14:08

geole

Transférer /home dans une partition contenant déjà des utilisateurs

Bonjour
Lorsqu'un utilisateur fait  ou refait une installation, il peut oublier d'allouer une partition avec point de montage /home alors qu'auparavant cela existait.    En conséquence, il ne retrouve plus ses données.

Bien entendu, la méthode conseillée est de recommencer l'installation en étant attentif. Cependant il est possible de remettre en état en suivant cette procédure.

Avant propos
On va transférer le /home qui fonctionne, installé dans la même partition que le logiciel, dans une autre partition EXT4.
Prérequis
Une partition formatée en EXT4 probablement stockée dans un autre disque contenant éventuellement déjà des données voir un ancien logiciel qui deviendra le futur /home. On l'appelle Home0. On aura besoin de connaître son nom.
Une installation fonctionnant avec la racine / contenant /home.
But
Le but est alors de virer home et d'utiliser Home0 à la place.
Méthode
Définir la partition Home0 comme point de montage du futur home dans le fichier fstab.
Monter la partition
Pour chaque utilisateur, transférer les données de home dans Home0 lorsqu'elles sont absentes sinon dans $USER/Home1 afin que le choix puisse se faire en conscience. Souvent, il n'y a qu'un utilisateur de défini.
Rebooter.
Réalisation
    Trouver le nom de la partition.
Cette recherche peut se faire en lançant l'une de ces commandes "lsblk -fe7" ou "sudo fdisk -l | sed -e '/loop/,+5d' ". La partition doit être au format ext4. Elle est de grande taille. Normalement elle n'est pas stockée dans le même disque que le logiciel. Son nom est semblable à SDB1 ou NVME0P1. Cette valeur est destinée à remplacer XXXX dans les deux commandes suivantes.
    Mettre à jour le fichier /etc/fstab.

printf 'UUID=%s\t/home\text4\tdefaults\t0\t2' $(lsblk -no UUID /dev/XXXX) | sudo tee -a /etc/fstab

    Monter la partition.

sudo mkdir -v  /mnt/Home0
sudo mount -v /dev/XXXX   /mnt/Home0

    Pour chaque utilisateur:
    Créer l'utilisateur si besoin.

sudo mkdir -v /mnt/Home0/$USER
sudo chown $USER:$USER /mnt/Home0/$USER

    Transférer les données personnelles absentes.

mv  -v --suffix=.old  $HOME/* /mnt/Home0/$USER

Conserver la vieille  configuration.

mv  /mnt/Home0/$USER/.config /mnt/Home0/$USER/.config-OLD

    Transférer les données techniques absentes.

mv -v --suffix=.old  $HOME/.[0-9a-zA-Z]* /mnt/Home0/$USER

Remarque...   A mon avis   les deux commandes ci-dessus          dupliquent la totalité des données.   

    Transférer les données personnelles restantes dans un sous-répertoire.
   

mkdir -v /mnt/Home0/$USER/Home1
    mv -v $HOME/* /mnt/Home0/$USER/Home1 

    Transférer les données techniques restantes dans le même sous-répertoire
   

mv -v $HOME/.[0-9a-zA-Z]* /mnt/Home0/$USER/Home1 

    Supprimer l'utilisateur

rm -r $HOME

  Lorsque tous les utilisateurs sont traités, relancer le système. Cela libérera physiquement l'espace disque encore utilisé par les applications en cours et permettra d'utiliser la nouvelle partition.

Dernière modification par geole (Le 19/02/2026, à 18:37)


Les écrans de l'installateur 26.04 https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity

Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248

Hors ligne

#2 Le 18/02/2026, à 16:53

Watael

Re : Transférer /home dans une partition contenant déjà des utilisateurs

echo UUID=$(sudo blkid  | grep /dev/XXXX |  grep -o ' UUID.*BLOCK' | cut -d'"' -f2) /home ext4 defaults 0 2 | sudo tee -a /etc/fstab

encore non. tongue

lsblk ne nécessite pas d'élévation des droits, et permet un contrôle fin de sa sortie, sans grep|grep|cut.

et pour avoir une présentation formatée, j'utiliserais printf :

printf 'UUID=%s\t/home\text4\tdefaults\t0\t2' $(lsblk -no...) | sudo tee -a /etc/fstab

Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#3 Le 19/02/2026, à 01:41

geole

Re : Transférer /home dans une partition contenant déjà des utilisateurs

Bonsoir,
Ce script provient de la  documentation qui semble détester les lignes de commandes.
J’en ai fait un copier/coller.
Je pense savoir ce que cela fait.
Bien entendu, c’est améliorable.
Mais, tant que des virus ne fabriquent pas des répertoires anormaux, le script devrait fonctinner.

Dernière modification par geole (Le 19/02/2026, à 01:45)


Les écrans de l'installateur 26.04 https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity

Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248

Hors ligne

#4 Le 19/02/2026, à 01:49

Watael

Re : Transférer /home dans une partition contenant déjà des utilisateurs

pourquoi colles-tu la documentation sur le forum ?


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#5 Le 19/02/2026, à 16:50

geole

Re : Transférer /home dans une partition contenant déjà des utilisateurs

Bonjour
Les administrateurs de la documentation font la chasse aux lignes de commandes lorsqu’elles ressemblent à un script.
Ils conseillent de les stocker dans une "forge"  et de citer seulement le lieu.


Les écrans de l'installateur 26.04 https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity

Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248

Hors ligne

#6 Le 19/02/2026, à 16:59

Watael

Re : Transférer /home dans une partition contenant déjà des utilisateurs

hmmm. ne serait-ce pas l'occasion de faire quelques toutes petites corrections ? big_smile


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#7 Le 19/02/2026, à 23:43

krodelabestiole

Re : Transférer /home dans une partition contenant déjà des utilisateurs

geole a écrit :

Ce script provient de la  documentation qui semble détester les lignes de commandes.

la mauvaise foi n'étouffe pas ! roll

pour celles et ceux intéressé·e·s, ça ressemblait à ça :
https://doc.ubuntu-fr.org/tutoriel/depl … 1771407902

au chapitre 11. Méthode 8 : Rapatrier le logiciel et les données utilisateur de la partition contenant le home dans la partition contenant le logiciel de base, j'espère qu'on n'a pas oublié le répertoire Téléchargements !

Hors ligne

#8 Le 20/02/2026, à 00:30

Watael

Re : Transférer /home dans une partition contenant déjà des utilisateurs

de mon point de vue*, ça ne change rien : lsblk permet de s'affranchir de l'élévation des privilèges que requière blkid, et for f in $(ls) c'est insupportable, même en mode POSIX!

--
* il y a des subtilités qui m'échappent, je prêche pour ma paroisse, mon précieux, le shell. mad
wink


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne