É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 :
- VMware, Proxmox, Hyper‑V, VirtualBox
- Debian 10 → Debian 13+
- Disques MBR (label
dos)
🛑 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 /swapfilechmod 600 /swapfilemkswap /swapfileswapon /swapfile
Rendre le swap permanent
Ajouter dans /etc/fstab :
/swapfile none swap sw 0 0
5️⃣ Vérifications finales
lsblkdf -hfree -h
Vous devriez voir :
/dev/sda1= ~50 Go monté sur//swapfileactif
🟢 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
No comments to display
No comments to display