#1 Le 05/02/2026, à 18:28
- geole
Extraire le logiciel du "home" dans une autre partition.
Bonjour
Suite à cette discussion
Voici une procédure permettant de
1) Extraire la partie logicielle de tous les utilisateurs de la partition dédiée au /home, dans une nouvelle partition devenant home au reboot
2) Transformer le vieux home en partition de données pour tous les utilisateurs.
3) Conservant le logiciel dans la partition émettrice à titre de sécurité.
La préparation.
Il est nécessaire de fabriquer une partition destinée à recevoir le logiciel stocké chez les utilisateurs. Soit le répertoire snap et les dossiers cachés.
Il est possible de connaître le total de leurs tailles actuelles en lançant cette commande.
S0=$(sudo du --total --summarize -BM /home/*/.* | tail -1 | awk '{print $1}')
for d in /home/*/; do
S0=$((S0+$(sudo du --total --summarize -BM "$d"snap | tail -1 | awk '{print $1}')))
done
echo Cette partition doit être au minima de $S0 MegaOctets
Cette partition devra avoir un label UNIQUE le plus parlant possible. Ce label va permettre de la reconnaître.
Le format de cette partition est au choix de l'utilisateur avec ce conseil
Si la partition est dans un disque dur. le format à retenir est EXT4
Si la partition est dans un SSD ou un NVME, le format performant est F2FS.
Voir quelques cas https://gist.github.com/hurryman2212/46 … cf2bec8c5e https://en.wikipedia.org/wiki/F2FS
La méthode d'installation est la suivante.
Devenir le chef
sudo -i ## Devenir administrateurIndiquer le point de montage de la future partition Data qui est actuellement montée sur /home
Pdm=/media/Data ## Valeur conseillée. Mais modifiable par exemple /media/DATA ou /mnt/Donnees ou ... (Eviter les espaces, les accents et les caractères spéciaux.).Indiquer la valeur de l'étiquette qui a été mise au formatage de la future partition HOME
Lbl=Home ## Valeur exemple. Doit être cette que vous avez utilisée lors du formatage. (Eviter les espaces, les accents et les caractères spéciaux.).Monter la partition
Newhome=$(lsblk --noheadings --output LABEL | grep $Lbl | wc -l) ## Vérification de l'unicité.
if [ $Newhome = 0 ]; then
echo "Aucune partition avec l'étiquette $Lbl n'a été détectée. Il est impossible de poursuivre. Arrêt immédiat."; sleep 60; exit
fi
if [ $Newhome -gt 1 ]; then
echo "Trop de partitions avec l'étiquette $Lbl ont été détectées. Il est impossible choisir. Arrêt immédiat."; sleep 60; exit
fi
if ! mountpoint -q /run/media/$Lbl; then
mkdir -pv /run/media/$Lbl ## création du point de montage
umount -v /dev/disk/by-label/$Lbl ## Au cas où il serait monté ailleurs
mount -v /dev/disk/by-label/$Lbl /run/media/$Lbl ## Montage de la partition.
df -hxtmpfs ## C'est le moment de vérifier si c'est correct avant de poursuivre.
fi
if ! mountpoint -q /run/media/$Lbl; then
echo GROS PROBLEME de montage. On ne peut pas poursuivre.; sleep 60; exit
fiDupliquer
for d in /home/*/; do
Me=${d/#\/home\/}; Me=${Me: : length -1} ## Récupération d'un nom d'utilisateur.
echo Duplication de $Me ; sleep 5 ## Afin d'avoir le temps de lire.
# Vérifier si utilisateur normal
if [ -d "$d.config" ]; then
echo " $d est un vrai utilisateur."
mkdir -pv /run/media/$Lbl/$Me ## Créer un $USER futur.
cp --update=none -v /etc/xdg/user-dirs.conf /home/$Me/.config && sed -i 's/True/False/' /home/$Me/.config/user-dirs.conf ## On va dire que l'O.S. de base n'a pas à modifier le référentiel même lorsque la partition Data est en incident!.
echo Copie des fichiers techniques et du répertoire SNAP
rsync -ax --stats /home/$Me/{.[^.]*,snap} /run/media/$Lbl/$Me
## Préparer les futurs liens symboliques pour ce qui n'a pas été dupliqué
for e in $d*; do
Fic=${e##*/}; ## Récupération d'un nom de fichier
if [ ! "$Fic" = "." ]; then
if [ ! "$Fic" = "snap" ]; then
echo ln -s /media/Data/$Me/"$Fic" /run/media/$Lbl/$Me/
ln -s /media/Data/$Me/"$Fic" /run/media/$Lbl/$Me/
fi
fi
done
chown -R $Me:$Me /run/media/$Lbl/$Me ## L'utilisateur redevient propriétaire de ses données.
else
echo "$d n'est pas un vrai utilisateur."
ln -s /media/Data/"$Me" /run/media/$Lbl/ ## protection pour les espaces
fi
doneC'est maintenant le moment de faire la mise à jour du FSTAB
cp -v /etc/fstab /etc/fstab.old$(date +"-%Y-%m-%d-%H-%M-%S") ## Sauvegarder
sed -i "s/\/home/$(echo $Pdm | sed 's/\//\\\//'g)/" /etc/fstab ; mkdir -v $Pdm ## Mettre l'ancienne partition home en partition de données.
Uuid=$(lsblk --noheadings --output UUID,LABEL | grep $Lbl | awk '{print $1}')
Fstyp=$(lsblk --noheadings --output FSTYPE,LABEL | grep $Lbl | awk '{print $1}')
sed -i "/\/$Lbl /d" /etc/fstab ## Supprimons la description du montage de la partition
sed -i "/$Uuid/d" /etc/fstab ## Supprimons la description du montage de la partition
echo /dev/disk/by-uuid/$Uuid /home $Fstyp defaults 0 1 | tee -a /etc/fstab ## Définir la nouvelle partition comme étant home.
grep -v "#" /etc/fstab ## Un rapide coup d'oeil.
mount -av ## Un rapide test de montage.
ls -alNe reste plus qu'à booter.
Dernière modification par geole (Le 06/02/2026, à 19:41)
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 05/02/2026, à 19:20
- Watael

Re : Extraire le logiciel du "home" dans une autre partition.
#if (( $(lsblk --noheadings --output UUID,LABEL,FSTYPE | grep "$Lbl" | wc -l) >1 )) #parce que NewHome n'est probablement pas réutilisé.
if (( $(lsblk --noheadings --output LABEL | grep -c "$Lbl") >1 ))
then
echo "Trop de partitions avec l'étiquette $Lbl ont été détectées. Il est impossible choisir. Arrêt immédiat."; sleep 60; exit
else
echo "Aucune partition avec l'étiquette $Lbl n'a été détectée. Il est impossible de poursuivre. Arrêt immédiat."; sleep 60; exit
fimais pourquoi toutes ces données dans la sortie de lsblk puisque tu ne cherches qu'un label ?
Connected \o/
Welcome to sHell. · eval is evil.
En ligne
#3 Le 06/02/2026, à 16:35
- geole
Re : Extraire le logiciel du "home" dans une autre partition.
Bonjour,
En fait, je voulais en profiter pour initialiser deux variables Uuid et Fstyp dans la même commande.
Dernière modification par geole (Le 06/02/2026, à 16:35)
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 06/02/2026, à 17:03
- Watael

Re : Extraire le logiciel du "home" dans une autre partition.
ce n'est pas ce que tu faisais, puisque la commande affiche uniquement le compte.
Connected \o/
Welcome to sHell. · eval is evil.
En ligne
#5 Le 06/02/2026, à 17:12
- iznobe

Re : Extraire le logiciel du "home" dans une autre partition.
tu peux éclaircir , en utilisant les options " raccourcies " :
lsblk --noheadings --output UUID,LABEL,FSTYPE
=>
lsblk -no UUID,LABEL,FSTYPEPour ça , vu que awk est utilisé , je suis presque sûr , meme si je ne sais pas comment ![]()
que tu peux ne faire qu ' une commande :
Uuid=$(lsblk --noheadings --output UUID,LABEL | grep $Lbl | awk '{print $1}') Fstyp=$(lsblk --noheadings --output FSTYPE,LABEL | grep $Lbl | awk '{print $1}')
Dernière modification par iznobe (Le 06/02/2026, à 17:21)
Hors ligne
#6 Le 06/02/2026, à 17:21
- geole
Re : Extraire le logiciel du "home" dans une autre partition.
ubuntu@ubuntu:~$ lsblk -no UUID,LABEL,FSTYPE
squashfs
squashfs
squashfs
squashfs
squashfs
squashfs
squashfs
squashfs
squashfs
squashfs
squashfs
squashfs
squashfs
squashfs
squashfs
squashfs
squashfs
squashfs
4AF6-82D3 FAT-UN vfat
5B2A-C436 FAT-UBUNTU vfat
6359581570F973F0 W21H2a ntfs
365667e2-c70f-4c02-bdf3-9220983bfb46 homeSAV ext4
B364-95B8 FAT-DEUX vfat
43E02AD31E884337 W21H2b ntfs
8ebd3b03-229b-412e-86f3-9ff6f84cb526 Home f2fs
6ff8e4b5-b1ee-4f77-81d2-a65b75a488bd UB-16.04 ext4
126b0987-3fc2-4e04-a272-1d8fca895b32 ext4
06C05F3E05406FAC Finances ntfs
f236602d-a7ae-4c7b-ae5f-71eb863db67e swap
e0c5b943-1c02-44a2-bbaf-87ebda5e363b BTRFS-Ubuntu24.04 btrfs
3700-2E4D EFILUBUNTU vfat
79BF-928E ORI exfat
3084-DD5D Ventoy exfat
708bfee0-b027-4539-91b3-a5486b58dd73 writable ext4
F085-06B2 USBVENTOY vfat
5B86-517F SAV-FAT-UN vfat
5295553242618335303 Commun zfs_member
6359581570F973F0 W21H2a-SAVE ntfs
43E02AD31E884337 W21H2b-SAVE ntfs
e687bd71-9824-47b7-b336-d7873a323fc1 UB-25.10-SAVE ext4
e0c5b943-1c02-44a2-bbaf-87ebda5e363b BTRFS-Ubuntu24.04-SAVE btrfs
20c3a52c-b057-4848-aaef-6fe401427366 BTRFS-24.04-SYNCR btrfs
6ff8e4b5-b1ee-4f77-81d2-a65b75a488bd UB-16.04-SAVE ext4
e96182da-935f-4ba6-916f-bcb751c24230 SAV-BACKINTIME ext4
bdb98d5d-d946-4ee4-9335-01d356f32b35 UB-24.04-SAVE ext4
95B7-DCE7 FAT-REFIND vfat
09632147-0ee4-4b8c-b2a6-0aa48dca43ca Data f2fs
F2A7-5ED9 FATISO vfat
e687bd71-9824-47b7-b336-d7873a323fc1 UB-25.10 ext4
bdb98d5d-d946-4ee4-9335-01d356f32b35 UB-24.04 ext4
5295553242618335303 Commun zfs_member
ubuntu@ubuntu:~$ Celle recherchée étant
8ebd3b03-229b-412e-86f3-9ff6f84cb526 Home f2fs
je veux vérifier l unicité, récupérer le type de partition et le UUIUD. Je sais faire en plusieurs commandes...
Dernière modification par geole (Le 06/02/2026, à 17:22)
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
#7 Le 06/02/2026, à 17:23
- iznobe

Re : Extraire le logiciel du "home" dans une autre partition.
ce que je veux dire , c ' est que ça :
Uuid=$(lsblk --noheadings --output UUID,LABEL | grep $Lbl | awk '{print $1}')
et ça :
Uuid=$(lsblk -no UUID,LABEL | grep $Lbl | awk '{print $1}')sortent la même chose .
je n' avais pas mis la commande au complet dans mon message précédent ce n ' était qu ' un bout .
voir script de montage partition data , dans lequel il y a déjà des exemples utilisés avec les options " raccourcies " .
par exemple :
if grep -q "$(lsblk -no uuid "$Part")" /etc/fstab; then
...Dernière modification par iznobe (Le 06/02/2026, à 17:26)
Hors ligne
#8 Le 06/02/2026, à 17:45
- Watael

Re : Extraire le logiciel du "home" dans une autre partition.
read -r fstype uuid label < <(lblk -no fstype,uuid,label | grep "$Lbl$")mais tu ne peux pas faire le compte !
ou alors :
declare -A parts
read -r parts[fs] parts[uu] osef < <(lblk -no fstype,uuid,label | grep "$Lbl$")
((${#parts[*]} != 1 )) && { >&2 echo "trop ou pas assez de partitions"; exit 1;}
echo "fstype=${parts[fs]} uuid=${parts[uu]}"Connected \o/
Welcome to sHell. · eval is evil.
En ligne
#9 Le 06/02/2026, à 17:52
- iznobe

Re : Extraire le logiciel du "home" dans une autre partition.
Attention à ça aussi :
sed -i "/\/$Lbl /d" /etc/fstab ## Supprimons la description du montage de la partition
si $Lbl , vaut disons " ab " , et que tu as comme autre label de partitions : " abc " , " abcd " , alors , les 3 lignes seront supprimées
Hors ligne
#10 Le 06/02/2026, à 18:08
- geole
Re : Extraire le logiciel du "home" dans une autre partition.
NON.
Et j ai du rectifier la commande initialle qui supprimait les lignes contenant "Home"
Maintenant cela ne supprime que les lignes contenant "/Home "
donc avec un SLASH devant et un espace après
Il peut y en avoir plusieurs.... Mais ce n'est pas logique. D'ailleurs pas certain que le boot se passe bien.
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
#11 Le 06/02/2026, à 18:20
- iznobe

Re : Extraire le logiciel du "home" dans une autre partition.
sinon , je ne comprends pas trop pourquoi tu supprimes la partition du fstab .
$Lbl , c ' est le label de la future partition home ou data ?
dans les 2 cas quel intérêt de supprimer la ligne du fstab ?
il y en a une à modifier et l ' autre a ajouter non ?
Ha , peut être , c ' est dans le cas où l ' utilisateur aurait ajouté cette partition via disques comme on l' a vu dans la discussion ?
-------------------------
une erreur / un oublie de positionner une variable dans cette ligne :
sed -i "s/\/home/$(echo $Pdm | sed 's/\//\\\//'g)/" /etc/fstab ; mkdir -v /media/Data ## Mettre l'ancienne partition home en partition de données.
non ?
=>
mkdir -v "$Pdm" Dernière modification par iznobe (Le 06/02/2026, à 18:31)
Hors ligne
#12 Le 06/02/2026, à 18:25
- Watael

Re : Extraire le logiciel du "home" dans une autre partition.
sed -i '\@/'"$Lbl"'\>@d' /etc/fstabc'est limpide, non ?![]()
Dernière modification par Watael (Le 06/02/2026, à 18:33)
Connected \o/
Welcome to sHell. · eval is evil.
En ligne
#13 Le 06/02/2026, à 18:26
- geole
Re : Extraire le logiciel du "home" dans une autre partition.
Oui. Oublié de remettre la variable.
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
#14 Le 06/02/2026, à 18:27
- iznobe

Re : Extraire le logiciel du "home" dans une autre partition.
sed -i '\@/'"$Lbl"'\>@d' /etc/fstabc'est limpide, non ?
lol , c' est censé faire quoi ça ???
Dernière modification par iznobe (Le 06/02/2026, à 18:39)
Hors ligne
#15 Le 06/02/2026, à 18:32
- Watael

Re : Extraire le logiciel du "home" dans une autre partition.
sed -i "s/\/home/$(echo $Pdm | sed 's/\//\\\//'g)/" /etc/fstab ; mkdir -v /media/Data ## Mettre l'ancienne partition home en partition de données.
beurk.
sed -i 's/\/home/'"${Pdm//\//\\\/})"'/' /etc/fstab ; mkdir -v /media/Data ## Mettre l'ancienne partition home en partition de données.Dernière modification par Watael (Le 06/02/2026, à 18:32)
Connected \o/
Welcome to sHell. · eval is evil.
En ligne