CyberSDF

Reprenez la main sur votre numérique

Partition /home séparée sur Debian : préparer, copier, basculer

Une partition /home séparée isole les données utilisateurs de la racine : réinstaller Debian ou restaurer un système corrompu préserve vos documents, à condition de ne pas formater cette partition. La procédure qui suit s’appuie sur Debian 13, nom de code trixie, et les pages man parted(8), mke2fs(8), rsync(1), blkid(8), mount(8), resize2fs(8). Aucune commande n’est exécutée pour vous ; chaque étape destructive demande une confirmation et s’inscrit dans un ordre précis, avec sauvegarde vérifiée en amont. Pour situer ce choix de disque dans Debian, consultez la vue d’ensemble de Debian.

Sommaire
  1. À quoi sert une partition /home séparée ?
  2. Avant toute manipulation, la sauvegarde
  3. Quelle Debian et quels outils utiliser ?
  4. Comment rétrécir / pour libérer de l’espace ?
  5. Comment créer la nouvelle partition ?
  6. Comment formater la nouvelle partition en ext4 ?
  7. Comment copier les données existantes avec rsync -aHAX ?
  8. Comment modifier /etc/fstab et basculer ?
  9. Vérification après redémarrage
  10. Ce que la procédure laisse de côté
  11. Aller plus loin dans CyberSDF
Schéma d'une partition /home séparée entre racine, données et swap.

Pour situer le contexte : le guide d’installation Debian 13 amd64, section 6.3.4, décrit cinq schémas de partitionnement, dont Separate /home partition (9 Go minimum, partitions /, /home, swap). Le même guide précise que le partitionneur prend en charge ext2, ext3, ext4, LVM, RAID logiciel et chiffrement. C’est la matière première ; la procédure qui suit ne la remplace pas.

À quoi sert une partition /home séparée ?

Trois usages concrets, cités dans la documentation Debian et les discussions de la communauté sans qu’aucun ne soit une garantie :

  1. Réinstaller Debian sans perdre vos données. Si /home est sur sa propre partition et que vous ne la formatez pas lors de la réinstallation, vos documents, configurations et historiques de messagerie survivent à un changement de version. C’est l’usage le plus cité.
  2. Tester une autre distribution. Vous pouvez installer une distribution différente en montant la même partition /home au même point, à condition de réutiliser le même identifiant utilisateur et le même UID (numéro d’utilisateur) pour que les permissions restent valides.
  3. Séparer les sauvegardes par fréquence. Vous pouvez sauvegarder /home plus souvent que /, ou réciproquement, selon la nature de vos données. Le manuel Debian sur le partitionnement donne cette piste sans la chiffrer.

Ce que la séparation ne fait pas : elle n’isole pas vos fichiers d’un compte utilisateur compromis, elle ne chiffre pas vos données (sauf à ajouter LUKS), elle ne protège pas du vol du disque, elle ne remplace pas une sauvegarde externe vérifiée. La page Permissions et utilisateurs Linux du même site couvre la frontière utilisateur, qui est distincte.

Avant toute manipulation, la sauvegarde

Avant la première commande, ce point est non négociable et la page le redit à chaque étape de modification du disque : une sauvegarde vérifiée de tout ce qui compte. Sans sauvegarde externe, l’opération n’est pas raisonnable, même en suivant exactement la procédure.

Trois sauvegardes coexistent souvent, et c’est leur accumulation qui protège :

Pour mesurer l’environnement de la machine où vous lisez : lsblk -f liste les partitions existantes avec leur système de fichiers. Sur une VM Ubuntu cloud de contrôle, par exemple, la commande renvoie un disque unique sda de 500 Go avec une seule partition ext4 occupant tout l’espace ; home n’est alors pas séparé, ce qui rend la procédure utile, pas déjà appliquée. La même commande, sur votre machine, servira de référence pour décider ce qu’il faut rétrécir.

Quelle Debian et quels outils utiliser ?

La page cible Debian 13, nom de code trixie (version de maintenance 13.7 publiée le 12 septembre 2026, support complet jusqu’au 9 août 2028 et support à long terme jusqu’au 30 juin 2030 selon les notes de publication). Les commandes citées viennent de la branche trixie des pages man Debian.

Les outils utilisés, vérifiés sur la machine de contrôle, et leurs pages man de référence :

Versions effectivement mesurées le 15 septembre 2026 sur la machine de contrôle (Ubuntu 24.04.4 LTS, noyau 6.8.0-106-generic, Bash 5.2.21) :

$ parted --version
parted (GNU parted) 3.6
$ rsync --version | head -1
rsync  version 3.2.7  protocol version 31
$ blkid --version
blkid from util-linux 2.39.3  (libblkid 2.39.3, 04-Dec-2023)
$ lsblk --version
lsblk from util-linux 2.39.3

Ces versions sont celles d’Ubuntu 24.04.4 LTS ; elles ne sont pas identiques à celles de Debian 13 trixie (par exemple util-linux 2.41-5 dans trixie), mais les options utilisées ici sont stables depuis plusieurs versions et présentes dans les deux branches.

Comment rétrécir / pour libérer de l’espace ?

Le redimensionnement est l’étape qui perd des données si elle est mal exécutée. Trois prérequis avant la commande :

  1. Une sauvegarde vérifiée du contenu de / et de /home, distincte de la partition que vous allez modifier.
  2. La partition / démontée. En usage normal, / est monté ; il faut donc démarrer sur un support externe (clé USB d’installation Debian en mode rescue, ou live USB Debian) pour que / ne soit pas monté. Sans cela, resize2fs refuse de rétrécir.
  3. Une vérification préalable du système de fichiers : e2fsck -f /dev/sdXN sur la partition à rétrécir. La page man resize2fs(8) indique que cette vérification est nécessaire avant un shrink.

L’ordre des opérations, documenté par parted(8) et resize2fs(8) :

  1. Démarrer sur un support externe (clé USB Debian en mode rescue, par exemple).

  2. Repérer la partition à rétrécir avec lsblk -f et confirmer son système de fichiers.

  3. Lancer e2fsck -f /dev/sdXN.

  4. Rétrécir d’abord le système de fichiers, avec resize2fs /dev/sdXN TAILLE_VOULUE. resize2fs rétrécit le système de fichiers à la taille indiquée ; la taille s’exprime en blocs du système de fichiers (la valeur par défaut), ou avec un suffixe K, M, G, T (binaire).

  5. Rétrécir ensuite la partition avec parted :

    sudo parted /dev/sdX resizepart NUMERO TAILLE
    

    La page man parted(8) Debian trixie précise que resizepart partition end change la fin de la partition sans modifier le système de fichiers présent. C’est pourquoi on rétrécit le système de fichiers avant la partition, jamais l’inverse.

La taille à viser doit laisser de l’espace à /. Une règle simple issue du guide d’installation Debian 13 amd64 : schéma Separate /home partition, avec 9 Go minimum pour /, une partition /home et du swap. Pour un poste avec quelques utilisateurs et des applications courantes, 50 Go à 100 Go pour / laissent de la marge ; pour un serveur, on adapte.

Une commande d’observation avant toute modification :

df -h /

Elle donne la taille utilisée de / et la taille totale ; c’est la taille utilisée plus une marge qui devient la nouvelle taille de /.

Comment créer la nouvelle partition ?

Une fois l’espace libéré apparaît comme espace libre dans lsblk. La création se fait avec parted :

sudo parted /dev/sdX mkpart primary ext4 DEBUT FIN

Trois paramètres vérifiés : primary parce qu’on suppose une table MBR ; pour GPT (cas par défaut sur les disques plus récents), on peut omettre le type ou utiliser parted /dev/sdX mkpart ext4 DEBUT FIN. ext4 est le système de fichiers choisi (on ne le crée pas ici, on l’le label). DEBUT et FIN s’expriment dans l’unité activée dans parted (par exemple en Mio avec unit MiB, ou en pourcentage).

Avant la commande, deux vérifications :

Les commandes ci-dessus modifient la table de partitions. Une erreur de paramètres à cette étape est récupérable tant que la nouvelle partition n’est pas formatée ni montée ; après formatage, une erreur d’alignement ou de chevauchement est plus pénible à corriger.

Comment formater la nouvelle partition en ext4 ?

Le formatage utilise mke2fs (le frontal historique) ou mkfs.ext4 (le frontal spécifique) ; les deux produisent le même système de fichiers ext4 et appellent la même bibliothèque. La page man mke2fs(8) Debian trixie décrit l’outil comme un créateur de système de fichiers ext2, ext3 ou ext4, généralement dans une partition ou un fichier désigné par le périphérique.

Trois options utiles dans le contexte présent :

La commande :

sudo mkfs.ext4 -L home-part -m 1 /dev/sdXN

Une fois le formatage terminé, lsblk -f doit montrer la nouvelle partition avec le label home-part et le type ext4. C’est la sortie que vous attendez avant de continuer.

Comment copier les données existantes avec rsync -aHAX ?

La copie est l’étape qui demande le plus de prudence, parce qu’elle touche toutes les données utilisateur. Quatre règles :

  1. Sauvegarder d’abord, distincte de la partition cible. Une copie qui échoue est récupérable si la source est intacte.

  2. Monter la nouvelle partition sur un point de montage temporaire, par exemple /mnt/newhome.

  3. Copier en préservant attributs, ACL et attributs étendus : rsync -aHAX /home/ /mnt/newhome/. Les options sont documentées par la page man rsync(1) Debian trixie :

    • -a, --archive : mode archive équivalent à -rlptgoD, sans -A, -X, -U, -N ni -H. Sans -H, -A et -X, les hard links, ACL et attributs étendus ne sont pas préservés.
    • -H, --hard-links : preserve hard links.
    • -A, --acls : preserve ACLs (implies –perms).
    • -X, --xattrs : preserve extended attributes.
  4. Vérifier la copie avant de démonter, par différence de taille et par échantillonnage :

    du -sh /home /mnt/newhome
    diff -q /home /mnt/newhome | head
    

Le trailing slash sur /home/ est important : sans lui, rsync copie le répertoire /home lui-même dans /mnt/newhome/, ce qui produit /mnt/newhome/home/ au lieu de remplacer le contenu.

Pour un volume important, la copie prend du temps. rsync affiche la progression ; il est réversible tant que la partition source n’a pas été modifiée.

Comment modifier /etc/fstab et basculer ?

Une fois la copie vérifiée, le basculement tient en quatre étapes :

  1. Recueillir l’identifiant stable de la nouvelle partition. Deux méthodes :

    • Par label : blkid -L home-part ou findfs LABEL=home-part.
    • Par UUID : blkid /dev/sdXN ou lsblk -o NAME,UUID.

    Les UUID sont plus stables que les labels, mais les labels sont plus lisibles. Pour un disque interne, l’un ou l’autre convient ; pour un disque externe qu’on branche à plusieurs machines, l’UUID est plus sûr.

  2. Sauvegarder /etc/fstab. Cette ligne n’est pas optionnelle : si /etc/fstab devient incohérent, le système peut refuser de démarrer.

    sudo cp /etc/fstab /etc/fstab.bak.$(date +%Y%m%d)
    
  3. Ajouter la ligne de montage pour /home. Une ligne type, avec UUID :

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx  /home  ext4  defaults,errors=remount-ro  0  2

Les champs sont documentés par la page man fstab(5) ; 0 pour dump (pas de sauvegarde par dump) et 2 pour pass (fsck après la racine). L’option errors=remount-ro remonte la partition en lecture seule en cas d’erreur, ce qui limite la casse.

Pour utiliser le label à la place de l’UUID, la syntaxe est LABEL=home-part.

  1. Tester la ligne avant redémarrage. La commande findmnt --verify --target /home (de util-linux) vérifie la cohérence de la table et des montages déclarés. Une erreur ici doit être corrigée avant le redémarrage.

Une fois /etc/fstab modifié et vérifié, démonter l’ancien /home (ce qui n’est possible qu’après avoir quitté toute session de cet utilisateur, idéalement après redémarrage sur le support externe) et remonter :

sudo umount /home
sudo mount /home

En usage normal, sur le système en service, on ne démonte pas /home à chaud. La bascule se fait donc au redémarrage, après que systemd a lu /etc/fstab et monté la nouvelle partition sur /home.

Vérification après redémarrage

Trois mesures pour confirmer que la bascule a réussi :

  1. La nouvelle partition est montée sur /home :
findmnt /home

La sortie doit montrer le périphérique attendu (UUID ou /dev/sdXN), le type ext4, et la taille attendue.

  1. Les fichiers sont accessibles et lisibles par l’utilisateur :
ls -la /home/$USER

Les permissions par défaut, sous Debian, sont drwxr-xr-x pour le répertoire personnel et -rw-r--r-- pour les fichiers non cachés, avec propriétaire $USER:$USER. Si l’utilisateur a été recréé avec un UID différent, les fichiers apparaissent comme appartenant à un UID numérique : c’est le signal que chown -R $USER:$USER /home/$USER est nécessaire.

  1. Les écritures fonctionnent :
touch /home/$USER/test-ecriture && rm /home/$USER/test-ecriture

C’est la vérification la plus simple qu’un processus utilisateur peut écrire dans la partition.

Ce que la procédure laisse de côté

Cette procédure documente une démarche validée par la documentation Debian et les pages man. Elle ne prétend pas à trois choses :

Aller plus loin dans CyberSDF