Redimensionner la partition racine a chaud sans la démonter

De GeRgOsNet
  • Introduction

Le but de ce tuto (c'est plus une astuce qu'un tuto mais bon, je me suis dit que ça pourrait servir) est de vous montrer comment vous dépatouiller quand la partition racine d'un de vos linux affiche qu'elle est pleine:

df -h 
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
/dev/sda1          5,9G    5,9G  0,2M  100% /

Le noyau linux a beau être très stable, votre système va réagir très mal si votre partition racine est pleine.

D'autre part ce tuto ne vous montrera pas comment redimensionner les partitions autre que la partition racine. Car il m'est impossible de couvrir tout les cas existant en détails vu que chaque système peut avoir un nombre variables de partition et de point de montage différents. Vous devrez faire part de votre propre logique et réflexion afin de libérer de la place derrières (d'un point de vu secteur) la partition racine que vous voulez agrandir. Ceci étant dit en avant.

  • Utilisation

Donc je reprends sur l'example cité plus haut

df -h 
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
/dev/sda1          5,9G    5,9G  0,2M  100% /
fdisk -l /dev/sda 
fdisk -l

Disque /dev/sda : 8 GiB, 8589934592 octets, 16777216 secteurs 
Unités : secteur de 1 × 512 = 512 octets 
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0x78bd6049

La taille du disque ici est de 8Go, ce qui me laisse un peu de manœuvre.

Ok, Commençons par imprimer à nouveau notre table de partition actuelle.

fdisk /dev/sda 

Bienvenue dans fdisk (util-linux 2.25.2).
Les modifications resteront en mémoire jusqu'à écriture.
Soyez prudent avant d'utiliser la commande d'écriture.
 
Commande (m pour l'aide) : p
Disque /dev/sda : 8 GiB, 8589934592 octets, 16777216 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0x78bd6049
 
Device     Boot    Start      End  Sectors  Size Id Type
/dev/sda1           2048 14682111 14680064    6G 83 Linux

Commande (m pour l'aide) :

Ce qui est important c'est de prendre en note le secteur de départ de votre partition, dans notre cas ici : 2048.

On détruit la partition puis on en crée une nouvelle, en précisant point de départ à partir du secteur 2048. Pour cela, nous allons simplement utiliser fdisk encore une fois
fdisk /dev/sda

Bienvenue dans fdisk (util-linux 2.25.2).
Les modifications resteront en mémoire jusqu'à écriture.
Soyez prudent avant d'utiliser la commande d'écriture.
 

Commande (m pour l'aide) : d
Numéro de partition (1,2, 2 par défaut) : 1

La partition 1 a été supprimée.
 
Commande (m pour l'aide) :
Commande (m pour l'aide) : n
Type de partition
  p   primaire (0 primaire, 0 étendue, 4 libre)
  e   étendue (conteneur pour partitions logiques)
Sélectionnez (p par défaut) : p
Numéro de partition (1-4, 1 par défaut) : 1
Premier secteur (2048-16777215, 2048 par défaut) : 2048
Dernier secteur, +secteurs ou +taille{K,M,G,T,P} (2048-16777215, 16777215 par défaut) : +7G
 
Une nouvelle partition 1 de type « Linux » et de taille 7 GiB a été créée.

Commande (m pour l'aide) :

si votre /boot n'est pas sur une autre partition n'oublier pas de rajouter le flag boot a votre partition racine ensuite on valide les changements de la table de partition

Commande (m pour l'aide) : w
La table de partitions a été altérée.
Appel d'ioctl() pour relire la table de partitions.
Échec de relecture de la table de partitions.: Périphérique ou ressource occupé

Le noyau continue à utiliser l'ancienne table. La nouvelle sera utilisée lors du prochain démarrage ou après avoir exécuté partprobe(8) ou kpartx(8) À ce stade, le système doit être redémarré afin que le noyau relise et applique la nouvelle table de partition. on va tout de même forcer un fsck sur la prochaine réinitialisation pour s'assurer que la partition est saine avant son montage.


  • Redimension :

après le redémarrage on va informer le système de fichier de ce changement de taille

resize2fs /dev/sda1

Puis un dernier redémarrage et voila

  • Test et conclusion
df -h
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
/dev/sda1          6,9G    5,9G  1G  89% /