Étendre une partition sur Debian (MBR) sans perte de données

Ce guide explique comment étendre une partition / (root) sous Debian lorsque le disque virtuel a été agrandi dans l’hyperviseur, mais que la partition principale est bloquée par une partition étendue contenant le swap (sda2 + sda5).

Fonctionne pour :


🛑 Avant de commencer

Vérifier que le disque virtuel a déjà été agrandi dans l’hyperviseur :


lsblk

Vous devez voir par ex. :

sda    50G    └─sda1 23G


1️⃣ Désactiver le swap existant


swapoff -a

2️⃣ Modifier la table de partitions avec fdisk

Lancer fdisk :


fdisk /dev/sda

Dans fdisk, effectuer exactement les actions suivantes :

1. Supprimer l’ancienne swap (sda5)
d
5
2. Supprimer la partition étendue (sda2)
d
2
3. Supprimer la partition root (sda1)

⚠️ Sans danger tant que le secteur de début est conservé.

d
1
4. Recréer /dev/sda1 sur tout le disque
n
p
1
2048 ← le même secteur de début qu’avant
<Entrée> ← fin par défaut = fin du disque
5. Remettre le drapeau boot
a
1
6. Sauvegarder et quitter
w

Un redémarrage peut être nécessaire :


reboot

3️⃣ Étendre le système de fichiers ext4

Une fois la machine revenue :


resize2fs /dev/sda1

Le système de fichiers s’adapte alors à la nouvelle taille (50 Go dans cet exemple).

Vérifier :


df -h

4️⃣ Créer un swap via un fichier (recommandé)

Un swapfile est plus simple et plus flexible qu’une partition swap.

Création du fichier swap :


fallocate -l 1G /swapfile && chmod 600 /swapfile && mkswap /swapfile && swapon /swapfile
Rendre le swap permanent

Ajouter dans /etc/fstab :

echo '/swapfile none swap sw 0 0' >> /etc/fstab

ou

/swapfile none swap sw 0 0

5️⃣ Vérifications finales


lsblk && df -h && free -h

Vous devriez voir :


🟢 Résultat final

Votre système Debian utilise maintenant toute la taille du disque agrandi, sans perte de données, avec un swap propre et moderne via fichier.


✨ Bonus : résolution du problème “commandes sbin introuvables”

Si des commandes comme fdisk, parted, ip, reboot… n’étaient plus accessibles :

Ajouter ceci dans /root/.bashrc :


export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Puis :


source /root/.bashrc

Revision #4
Created 2026-02-16 14:42:55 UTC by Maxime
Updated 2026-05-05 08:48:40 UTC by Maxime